diff --git a/_multibuild b/_multibuild index fcc7b97..9e55412 100644 --- a/_multibuild +++ b/_multibuild @@ -1,3 +1,4 @@ + primary test diff --git a/pyparsing-3.0.7.tar.gz b/pyparsing-3.0.7.tar.gz deleted file mode 100644 index 2ef8b4c..0000000 --- a/pyparsing-3.0.7.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea -size 884709 diff --git a/pyparsing-3.0.9.tar.gz b/pyparsing-3.0.9.tar.gz new file mode 100644 index 0000000..3792ec9 --- /dev/null +++ b/pyparsing-3.0.9.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb +size 1999906 diff --git a/python-pyparsing.changes b/python-pyparsing.changes index efc85c8..314cfa2 100644 --- a/python-pyparsing.changes +++ b/python-pyparsing.changes @@ -1,3 +1,63 @@ +------------------------------------------------------------------- +Fri Jul 15 12:23:12 UTC 2022 - Ben Greiner + +- Split primary flavor in multibuild for possible inclusion into + Ring0 +- Remove hardcoded primary_python variable. + +------------------------------------------------------------------- +Thu Jul 14 14:39:02 UTC 2022 - Ben Greiner + +- Update to version 3.0.9 + * Added Unicode set BasicMultilingualPlane (may also be + referenced as BMP) representing the Basic Multilingual Plane + (Unicode characters up to code point 65535). Can be used to + parse most language characters, but omits emojis, wingdings, + etc. Raised in discussion with Dave Tapley (issue #392). + * To address mypy confusion of pyparsing.Optional and + typing.Optional resulting in error: "_SpecialForm" not callable + message reported in issue #365, fixed the import in + exceptions.py. Nice sleuthing by Iwan Aucamp and Dominic + Davis-Foster, thank you! (Removed definitions of OptionalType, + DictType, and IterableType and replaced them with + typing.Optional, typing.Dict, and typing.Iterable throughout.) + * Fixed typo in jinja2 template for railroad diagrams, thanks for + the catch Nioub (issue #388). + * Removed use of deprecated pkg_resources package in railroad + diagramming code (issue #391). + * Updated bigquery_view_parser.py example to parse examples at + https://cloud.google.com/bigquery/docs/reference/legacy-sql +- Release 3.0.8 + * API CHANGE: modified pyproject.toml to require Python version + 3.6.8 or later for pyparsing 3.x. Earlier minor versions of 3.6 + fail in evaluating the version_info class (implemented using + typing.NamedTuple). If you are using an earlier version of + Python 3.6, you will need to use pyparsing 2.4.7. + * Improved pyparsing import time by deferring regex pattern + compiles. PR submitted by Anthony Sottile to fix issue #362, + thanks! + * Updated build to use flit, PR by MichaΕ‚ GΓ³rny, added + BUILDING.md doc and removed old Windows build scripts - nice + cleanup work! + * More type-hinting added for all arithmetic and logical operator + methods in ParserElement. PR from Kazantcev Andrey, thank you. + * Fixed infix_notation's definitions of lpar and rpar, to accept + parse expressions such that they do not get suppressed in the + parsed results. PR submitted by Philippe Prados, nice work. + * Fixed bug in railroad diagramming with expressions containing + Combine elements. Reported by Jeremy White, thanks! + * Added show_groups argument to create_diagram to highlight + grouped elements with an unlabeled bounding box. + * Added unicode_denormalizer.py to the examples as a + demonstration of how Python's interpreter will accept Unicode + characters in identifiers, but normalizes them back to ASCII so + that identifiers print and π•‘π“»α΅’π“ƒπ˜ and 𝖕𝒓𝗂𝑛ᡗ are all + equivalent. + * Removed imports of deprecated sre_constants module for catching + exceptions when compiling regular expressions. PR submitted by + Serhiy Storchaka, thank you. +- Use python-base bundled pip as frontend for flit-core + ------------------------------------------------------------------- Thu Feb 3 21:16:53 UTC 2022 - Arun Persaud @@ -71,7 +131,7 @@ Wed Nov 24 14:03:24 UTC 2021 - Matthias Fehring * Fixed bug in which Dict classes did not correctly return tokens as nested ParseResults * Documented API-changing side-effect of converting ParseResults - to use __slots__ to pre-define instance attributes. + to use __slots__ to pre-define instance attributes. * Fixed bug in railroad diagramming where the vertical limit would count all expressions in a group, not just those that would create visible railroad elements. @@ -824,8 +884,8 @@ Tue Nov 11 17:34:18 UTC 2014 - Greg.Freemyer@gmail.com and prettified output. Now instead of importing the pprint module and then writing "pprint.pprint(result)", you can just write "result.pprint()". This method also accepts addtional positional and - keyword arguments (such as indent, width, etc.), which get passed - through directly to the pprint method + keyword arguments (such as indent, width, etc.), which get passed + through directly to the pprint method (see http://docs.python.org/2/library/pprint.html#pprint.pprint). - Removed deprecation warnings when using '<<' for Forward expression @@ -843,25 +903,25 @@ Tue Nov 11 17:34:18 UTC 2014 - Greg.Freemyer@gmail.com - ParseResults emulates the change in list vs. iterator semantics for methods like keys(), values(), and items(). Under Python 2.x, these - methods will return lists, under Python 3.x, these methods will + methods will return lists, under Python 3.x, these methods will return iterators. - ParseResults now has a method haskeys() which returns True or False depending on whether any results names have been defined. This simplifies - testing for the existence of results names under Python 3.x, which + testing for the existence of results names under Python 3.x, which returns keys() as an iterator, not a list. - ParseResults now supports both list and dict semantics for pop(). If passed no argument or an integer argument, it will use list semantics and pop tokens from the list of parsed tokens. If passed a non-integer - argument (most likely a string), it will use dict semantics and + argument (most likely a string), it will use dict semantics and pop the corresponding value from any defined results names. A - second default return value argument is supported, just as in + second default return value argument is supported, just as in dict.pop(). - Fixed bug in markInputline, thanks for reporting this, Matt Grant! - - Cleaned up my unit test environment, now runs with Python 2.6 and + - Cleaned up my unit test environment, now runs with Python 2.6 and 3.3. ------------------------------------------------------------------- @@ -873,9 +933,9 @@ Mon Sep 23 08:45:12 UTC 2013 - hpj@urpla.net Tue Sep 17 13:15:51 UTC 2013 - speilicke@suse.com - Update to version 2.0.1: - - Removed use of "nonlocal" that prevented using this version of - pyparsing with Python 2.6 and 2.7. This will make it easier to - install for packages that depend on pyparsing, under Python + - Removed use of "nonlocal" that prevented using this version of + pyparsing with Python 2.6 and 2.7. This will make it easier to + install for packages that depend on pyparsing, under Python versions 2.6 and later. Those using older versions of Python will have to manually install pyparsing 1.5.7. - Fixed implementation of <<= operator to return self; reported by @@ -883,7 +943,7 @@ Tue Sep 17 13:15:51 UTC 2013 - speilicke@suse.com and Mathias! - Changes from version 2.0.0: - Rather than release another combined Python 2.x/3.x release - I've decided to start a new major version that is only + I've decided to start a new major version that is only compatible with Python 3.x (and consequently Python 2.7 as well due to backporting of key features). This version will be the main development path from now on, with little follow-on @@ -896,13 +956,13 @@ Tue Sep 17 13:15:51 UTC 2013 - speilicke@suse.com ------------------------------------------------------------------- Tue Sep 17 12:45:24 UTC 2013 - dmueller@suse.com -- remove nonsensical tarball +- remove nonsensical tarball ------------------------------------------------------------------- Wed Mar 13 09:04:46 UTC 2013 - dmueller@suse.com - update to 1.5.7: - * NOTE: This is the last release of pyparsing that will try to + * NOTE: This is the last release of pyparsing that will try to maintain compatibility with Python versions < 2.6. The next release of pyparsing will be version 2.0.0, using new Python syntax that will not be compatible for Python version 2.5 or @@ -915,40 +975,40 @@ Wed Mar 13 09:04:46 UTC 2013 - dmueller@suse.com purportedly has been a performance issue under PyPy. * Fixed bug in ParseResults.__dir__ under Python 3, reported by Thomas Kluyver, thank you Thomas! - * Added ParserElement.inlineLiteralsUsing static method, to + * Added ParserElement.inlineLiteralsUsing static method, to override pyparsing's default behavior of converting string literals to Literal instances, to use other classes (such as Suppress or CaselessLiteral). - * Added new operator '<<=', which will eventually replace '<<' for + * Added new operator '<<=', which will eventually replace '<<' for storing the contents of a Forward(). '<<=' does not have the same operator precedence problems that '<<' does. * 'operatorPrecedence' is being renamed 'infixNotation' as a better description of what this helper function creates. 'operatorPrecedence' is deprecated, and will be dropped entirely in a future release. - * Added optional arguments lpar and rpar to operatorPrecedence, so that + * Added optional arguments lpar and rpar to operatorPrecedence, so that expressions that use it can override the default suppression of the grouping characters. - * Added support for using single argument builtin functions as parse + * Added support for using single argument builtin functions as parse actions. Now you can write 'expr.setParseAction(len)' and get back the length of the list of matched tokens. Supported builtins are: sum, len, sorted, reversed, list, tuple, set, any, all, min, and max. A script demonstrating this feature is included in the examples directory. - * Fixed a bug in the definition of 'alphas', which was based on the - string.uppercase and string.lowercase "constants", which in fact - *aren't* constant, but vary with locale settings. This could make + * Fixed a bug in the definition of 'alphas', which was based on the + string.uppercase and string.lowercase "constants", which in fact + *aren't* constant, but vary with locale settings. This could make parsers locale-sensitive in a subtle way. Thanks to Kef Schecter for - his diligence in following through on reporting and monitoring + his diligence in following through on reporting and monitoring this bugfix! * Fixed a bug in the Py3 version of pyparsing, during exception - handling with packrat parsing enabled, reported by Catherine + handling with packrat parsing enabled, reported by Catherine Devlin - thanks Catherine! - * Fixed typo in ParseBaseException.__dir__, reported anonymously on + * Fixed typo in ParseBaseException.__dir__, reported anonymously on the SourceForge bug tracker, thank you Pyparsing User With No Name. * Fixed bug in srange when using '\x###' hex character codes. - * Addeed optional 'intExpr' argument to countedArray, so that you + * Addeed optional 'intExpr' argument to countedArray, so that you can define your own expression that will evaluate to an integer, - to be used as the count for the following elements. Allows you + to be used as the count for the following elements. Allows you to define a countedArray with the count given in hex, for example, by defining intExpr as "Word(hexnums).setParseAction(int(t[0],16))". @@ -988,7 +1048,7 @@ Thu Jun 30 08:33:22 UTC 2011 - saschpe@suse.de in Python 3. * Fixed bug when using packrat parsing, where a previously parsed expression would duplicate subsequent tokens - * Fixed bug in srange, which accepted escaped hex characters of the + * Fixed bug in srange, which accepted escaped hex characters of the form '\0x##', but should be '\x##'. Both forms will be supported for backwards compatibility. * Added the Verilog parser to the provided set of examples, under the @@ -1001,7 +1061,7 @@ Thu Jun 30 08:33:22 UTC 2011 - saschpe@suse.de parse time performance. * Slight performance improvement in transformString, removing empty strings from the list of string fragments built while scanning the - source text, before calling ''.join. Especially useful when using + source text, before calling ''.join. Especially useful when using transformString to strip out selected text. * Enhanced form of using the "expr('name')" style of results naming, in lieu of calling setResultsName. If name ends with an '*', then @@ -1011,8 +1071,8 @@ Thu Jun 30 08:33:22 UTC 2011 - saschpe@suse.de - Changes from version 1.5.5: * Typo in Python3 version of pyparsing, "builtin" should be "builtins". - Changes from version 1.5.4: - * Fixed __builtins__ and file references in Python 3 code, thanks to - Greg Watson, saulspatz, sminos, and Mark Summerfield for reporting + * Fixed __builtins__ and file references in Python 3 code, thanks to + Greg Watson, saulspatz, sminos, and Mark Summerfield for reporting their Python 3 experiences. - Spec file cleanup: * Regenerated with py2pack, much simpler spec file diff --git a/python-pyparsing.spec b/python-pyparsing.spec index 9a72fe9..295d438 100644 --- a/python-pyparsing.spec +++ b/python-pyparsing.spec @@ -19,41 +19,58 @@ %define modname pyparsing # in order to avoid rewriting for subpackage generator %define mypython python -%{?!python_module:%define python_module() python-%{**} python3-%{**}} %global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "primary" +# this one is built in Ring0 +%define pprefix %{primary_python} +%define pythons %{primary_python} +%endif +%if "%{flavor}" == "" +# The rest is in Ring1 +%define pprefix python +%if 0%{?suse_version} >= 1550 || 0%{?sle_version} == 150500 +BuildRequires: python3-base >= 3.6 +%{expand:%%define skip_%{primary_python} 1} +%else +%define python_module() no-build-without-multibuild-flavor +# no non-primary python in <=15.4 +ExclusiveArch: do-not-build +%endif +%endif %if "%{flavor}" == "test" +%define pprefix python %define psuffix -test %bcond_without test %else -%define psuffix %{nil} %bcond_with test %endif -%define skip_python2 1 -Name: python-pyparsing%{psuffix} -Version: 3.0.7 +%{?!python_module:%define python_module() python3-%{**}} +Name: %{pprefix}-pyparsing%{?psuffix} +Version: 3.0.9 Release: 0 Summary: Grammar Parser Library for Python License: GPL-2.0-or-later AND MIT AND GPL-3.0-or-later URL: https://github.com/pyparsing/pyparsing/ Source: https://files.pythonhosted.org/packages/source/p/pyparsing/pyparsing-%{version}.tar.gz BuildRequires: %{python_module base} +BuildRequires: %{python_module flit-core} BuildRequires: fdupes BuildRequires: python-rpm-macros -# work around boo#1186870 -Provides: %{mypython}%{python_version}dist(pyparsing) = %{version} BuildArch: noarch %if %{with test} BuildRequires: %{python_module jinja2} BuildRequires: %{python_module pytest} BuildRequires: %{python_module railroad-diagrams} %endif -%ifpython2 -Provides: %{mypython}-parsing = %{version} -Obsoletes: %{mypython}-parsing < %{version} -%endif +# SECTION boo#1186870: we are a dependency of python-packaging which is used by pythondistdeps.py normally creating this entry +#!BuildIgnore: python3-packaging +Provides: %{mypython}%{python_version}dist(%{modname}) = %{version} %if "%{python_flavor}" == "python3" || "%{python_provides}" == "python3" -Provides: %{mypython}3dist(pyparsing) = %{version} +Provides: %{mypython}3-%{modname} = %{version}-%{release} +Provides: %{mypython}3dist(%{modname}) = %{version} +Obsoletes: %{mypython}3-%{modname} < %{version}-%{release} %endif +# /SECTION %python_subpackages %description @@ -64,20 +81,22 @@ code uses to construct the grammar directly in Python code. %prep %setup -q -n %{modname}-%{version} -# do not require setuptools -# https://github.com/pyparsing/pyparsing/pull/133 -sed -i -e 's:from setuptools :from distutils.core :g' setup.py +%if !%{with test} %build -%python_build +%{python_expand # use pythonXX-base bundled pip as PEP517 frontend for flit-core +mkdir -p build +$python -m venv build/buildenv --system-site-packages +} +export PATH=$PWD/build/buildenv/bin:$PATH +%pyproject_wheel %install -%if ! %{with test} -%python_install -# ensure egg-info is a directory -%{python_expand rm -rf %{buildroot}%{$python_sitelib}/*.egg-info -cp -r pyparsing.egg-info %{buildroot}%{$python_sitelib}/pyparsing-%{version}-py%{$python_version}.egg-info -} +export PATH=$PWD/build/buildenv/bin:$PATH +%pyproject_install +# fix venv install path +mv %{buildroot}/$PWD/build/buildenv %{buildroot}%{_prefix} +rm -r %{buildroot}/home %python_expand %fdupes %{buildroot}%{$python_sitelib} %endif @@ -91,7 +110,7 @@ cp -r pyparsing.egg-info %{buildroot}%{$python_sitelib}/pyparsing-%{version}-py% %license LICENSE %doc CHANGES README.rst %{python_sitelib}/pyparsing -%{python_sitelib}/pyparsing-%{version}-py*.egg-info/ +%{python_sitelib}/pyparsing-%{version}*-info %endif %changelog