From 54eb2557eae91723e1a0bca114ddd453a7dacce9eed5326aecaa76e77014f666 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Sun, 7 Jan 2024 20:12:10 +0000 Subject: [PATCH] - update to 0.9.2: * Added GitHub Actions integration. Tests and coverage are run in the cloud after every checkin. Thanks to [Dan Pope](https://github.com/lordmauve) for gently walking me through this! * Fixed metadata in the `pyproject.toml` file. * Dropped support for Python 3.5. (I assumed I already had, but it was still listed as being supported in the project metadata.) * Added badges for testing, coverage, and supported Python versions. * API change: the `Parser` attribute `breadcrumbs` has been renamed to `stack`. It was previously undocumented anyway, though as of 0.9.1 it's now documented. The previous name `breadcrumbs` has been kept as an alias for now, but will be removed before 1.0. * Added the `line_number` and `source` attributes to the `Parser` object, for the convenience of pragma handlers. * Refactored `parser_include` slightly. No change to functionality or behavior, just a small code cleanup pass. * Added a "lines per second" output metric to the benchmark program. * From this point forward, Perky only supports reading and writing files in [UTF-8](https://en.wikipedia.org/wiki/UTF-8). If you need to work with a different encoding, you'll have to handle loading it form and saving it to disk yourself. You'll have to use `loads` and `dumps` to handle converting between Perky string format and native Python objects. * Optimized Perky some more. It's roughly 11% faster than 0.8.1. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-perky?expand=0&rev=4 --- perky-0.5.5.tar.gz | 3 -- perky-0.9.2.tar.gz | 3 ++ python-perky.changes | 73 ++++++++++++++++++++++++++++++++++++++++++++ python-perky.spec | 14 +++++---- 4 files changed, 84 insertions(+), 9 deletions(-) delete mode 100644 perky-0.5.5.tar.gz create mode 100644 perky-0.9.2.tar.gz diff --git a/perky-0.5.5.tar.gz b/perky-0.5.5.tar.gz deleted file mode 100644 index 6537ebf..0000000 --- a/perky-0.5.5.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7998a8131fd2313ce948e27e290e49764837d99dd6133e2ee88f05e12561aaa1 -size 18162 diff --git a/perky-0.9.2.tar.gz b/perky-0.9.2.tar.gz new file mode 100644 index 0000000..3900b39 --- /dev/null +++ b/perky-0.9.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02e5ebe84c5beaff6c8254497c75793b7dbaca903941c82035958ddb1bb66178 +size 33843 diff --git a/python-perky.changes b/python-perky.changes index da7a6ba..97a1461 100644 --- a/python-perky.changes +++ b/python-perky.changes @@ -1,3 +1,76 @@ +------------------------------------------------------------------- +Sun Jan 7 20:10:29 UTC 2024 - Dirk Müller + +- update to 0.9.2: + * Added GitHub Actions integration. Tests and + coverage are run in the cloud after every checkin. + Thanks to [Dan Pope](https://github.com/lordmauve) + for gently walking me through this! + * Fixed metadata in the `pyproject.toml` file. + * Dropped support for Python 3.5. (I assumed I already + had, but it was still listed as being supported + in the project metadata.) + * Added badges for testing, coverage, + and supported Python versions. + * API change: the `Parser` attribute `breadcrumbs` has been + renamed to `stack`. It was previously undocumented anyway, + though as of 0.9.1 it's now documented. The previous name + `breadcrumbs` has been kept as an alias for now, but will + be removed before 1.0. + * Added the `line_number` and `source` attributes to the + `Parser` object, for the convenience of pragma handlers. + * Refactored `parser_include` slightly. No change to + functionality or behavior, just a small code cleanup pass. + * Added a "lines per second" output metric to the + benchmark program. + * From this point forward, Perky only supports reading and + writing files in + [UTF-8](https://en.wikipedia.org/wiki/UTF-8). + If you need to work with a different encoding, you'll have + to handle loading it form and saving it to disk yourself. + You'll have to use `loads` and `dumps` to handle converting + between Perky string format and native Python objects. + * Optimized Perky some more. It's roughly 11% faster than 0.8.1. + - You can now pass an `encoding` keyword argument + into `pragma_include`. This is now the only way + to specify the encoding used to decode files + loaded from disk by `pragma_include`. + - Removed the (undocumented) `encoding` attribute + of Perky's `Parser` object. + - Removed the `encoding` parameter for `loads`. + - The `encoding` parameter for `load` is now only + used by `load` itself when loading the top-level + Perky file. + * Perky now explicitly performs its `isinstance` checks using + `collections.abc.MutableMapping` and `collections.abc.MutableSequence` + instead of `dict` and `list`. This permits you to use + your own mapping and sequence objects that *don't* inherit from + `dict` and `list`. + * Renamed `PerkyFormatError` to `FormatError`. The old name is + supported for now, but please transition to the new name. + The old name will be removed before 1.0. + * The "transformation" submodule is now deprecated and unsupported. + Please either stop using it or fork and maintain it yourself. + This includes `map`, `transform`, `Required`, + `nullable`, and `const`. + * Perky now has a proper unit test suite, which it passes with 100% + coverage--except for the unsupported `transform` submodule. + * While working towards 100% coverage, also cleaned up the code + a little in spots. + - Retooled `LineTokenizer`: + - Changed its name from `LineParser` is now `LineTokenizer`. + It never parsed anything, it just tokenized. + - Made its API a little more uniform: now, the + only function that will raise `StopIteration` is `__next__`. + - The other functions that used to maybe raise `StopIteration` + now return a tuple of `None` values when the iterator is empty. + This means you can safely write `for a, b, c in line_tokenizer:`. + - `bool(lt)` is now accurate; if it returns `True`, + you can call `next(lt)` or `lt.next_line()` or `lt.tokens()` + and be certain you'll get a value back. + - Replaced `RuntimeError` exceptions with more appropriate + exceptions (`ValueError`, `TypeError`). + ------------------------------------------------------------------- Mon Jul 18 19:28:02 UTC 2022 - Matej Cepl diff --git a/python-perky.spec b/python-perky.spec index 8126b9b..00ab1d3 100644 --- a/python-perky.spec +++ b/python-perky.spec @@ -1,7 +1,7 @@ # # spec file for package python-perky # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,13 +18,15 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-perky -Version: 0.5.5 +Version: 0.9.2 Release: 0 Summary: A parser for the perky text file format License: MIT URL: https://github.com/larryhastings/perky/ Source: https://files.pythonhosted.org/packages/source/p/perky/perky-%{version}.tar.gz -BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module flit} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module wheel} BuildRequires: fdupes BuildRequires: python-rpm-macros BuildArch: noarch @@ -39,10 +41,10 @@ problem as "INI" files, "TOML" files, and "JSON" files. sed -i '1{/\/usr\/bin\/env python*/d;}' perky/utility.py perky/__init__.py %build -%python_build +%pyproject_wheel %install -%python_install +%pyproject_install %python_expand %fdupes %{buildroot}%{$python_sitelib} %check @@ -53,6 +55,6 @@ sed -i '1{/\/usr\/bin\/env python*/d;}' perky/utility.py perky/__init__.py %doc README.md %license LICENSE %{python_sitelib}/perky/ -%{python_sitelib}/perky-%{version}*-info +%{python_sitelib}/perky-%{version}.dist-info %changelog