diff --git a/_multibuild b/_multibuild index fcc7b97..9e55412 100644 --- a/_multibuild +++ b/_multibuild @@ -1,3 +1,4 @@ + primary test diff --git a/python-pyparsing.changes b/python-pyparsing.changes index ffcd8b3..e3bd92a 100644 --- a/python-pyparsing.changes +++ b/python-pyparsing.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Jul 15 12:23:12 UTC 2022 - Ben Greiner + +- Split primary flavor in multibuild for possible inclusion into + Ring0 + ------------------------------------------------------------------- Thu Jul 14 14:39:02 UTC 2022 - Ben Greiner @@ -124,7 +130,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. @@ -877,8 +883,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 @@ -896,25 +902,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. ------------------------------------------------------------------- @@ -926,9 +932,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 @@ -936,7 +942,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 @@ -949,13 +955,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 @@ -968,40 +974,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))". @@ -1041,7 +1047,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 @@ -1054,7 +1060,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 @@ -1064,8 +1070,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 60f197b..f5ec38d 100644 --- a/python-pyparsing.spec +++ b/python-pyparsing.spec @@ -19,17 +19,41 @@ %define modname pyparsing # in order to avoid rewriting for subpackage generator %define mypython python -%{?!python_module:%define python_module() python3-%{**}} + +# this must be hardcoded until obs can read it from a prjconf definition +%if 0%{suse_version} >= 1550 +%define primary_python python310 +%else +%define primary_python python3 +%endif %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 +%{expand:%%define skip_%{primary_python} 1} +BuildRequires: python3-base >= 3.6 +%else +# no non-primary python in <=15.4 +ExclusiveArch: do-not-build +%define python_module() no-build-without-multibuild-flavor +%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} + +%{?!python_module:%define python_module() python3-%{**}} +Name: %{pprefix}-pyparsing%{?psuffix} Version: 3.0.9 Release: 0 Summary: Grammar Parser Library for Python @@ -45,10 +69,13 @@ BuildRequires: %{python_module jinja2} BuildRequires: %{python_module pytest} BuildRequires: %{python_module railroad-diagrams} %endif -# SECTION work around boo#1186870: we are a dependency of python-packaging which is used by pythondistdeps.py normally creating this entry -Provides: %{mypython}%{python_version}dist(pyparsing) = %{version} +# 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}3dist(%{modname}) = %{version} +Provides: %{mypython}3-%{modname} = %{version}-%{release} +Obsoletes: %{mypython}3-%{modname} < %{version}-%{release} %endif # /SECTION BuildArch: noarch