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