- requires jinja2 for testing
- requires railroad-diagrams for testing
- update to 3.0.6:
* Added suppress_warning() method to individually suppress a warning
on a specific ParserElement. Used to refactor original_text_for
to preserve internal results names, which, while undocumented, had
been adopted by some projects.
* Fix bug when delimited_list was called with a str literal instead
of a parse expression.
- changes from 3.0.5:
* Added return type annotations for col, line, and lineno.
* Fixed bug when warn_ungrouped_named_tokens_in_collection warning
was raised when assigning a results name to an original_text_for
expression. (Issue #110, would raise warning in packaging.)
* Fixed internal bug where ParserElement.streamline() would not
return self if already streamlined.
* Changed run_tests() output to default to not showing line and
column numbers. If line numbering is desired, call with
with_line_numbers=True. Also fixed minor bug where separating
line was not included after a test failure.
- changes from 3.0.4:
* 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.
* 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.
- changes from 3.0.3:
* Fixed regex typo in one_of fix for as_keyword=True.
* Fixed a whitespace-skipping bug, Issue #319, introduced as part
of the revert of the LineStart changes.
* Added header column labeling > 100 in with_line_numbers - some
input lines are longer than others.
- changes from 3.0.2:
* Reverted change in behavior with LineStart and StringStart, which
changed the interpretation of when and how LineStart and
StringStart should match when a line starts with spaces. In 3.0.0,
the xxxStart expressions were not really treated like expressions
in their own right, but as modifiers to the following expression
when used like LineStart() + expr, so that if there were whitespace
on the line before expr (which would match in versions prior to
3.0.0), the match would fail.
3.0.0 implemented this by automatically promoting LineStart() +
expr to AtLineStart(expr), which broke existing parsers that did
not expect expr to necessarily be right at the start of the line,
but only be the first token found on the line. This was reported
as a regression in Issue (gh#pyparsing/pyparsing/issues#317).
In 3.0.2, pyparsing reverts to the previous behavior, but will
retain the new AtLineStart and AtStringStart expression classes,
so that parsers can chose whichever behavior applies in their
specific instance.
* Performance enhancement to one_of to always generate an internal
Regex, even if caseless or as_keyword args are given as True
(unless explicitly disabled by passing use_regex=False).
* IndentedBlock class now works with recursive flag. By default,
the results parsed by an IndentedBlock are grouped. This can be
disabled by constructing the IndentedBlock with grouped=False.
- changes from 3.0.1
* Fixed bug where Word(max=n) did not match word groups less than
length 'n'. Thanks to Joachim Metz for catching this!
* Fixed bug where ParseResults accidentally created recursive
contents. Joachim Metz on this one also!
* Fixed bug where warn_on_multiple_string_args_to_oneof warning
is raised even when not enabled.
- changes from 3.0.0
* A consolidated list of all the changes in the 3.0.0 release
can be found in docs/whats_new_in_3_0_0.rst.
(https://github.com/pyparsing/pyparsing/blob/master/docs/whats_new_in_3_0_0.rst)
- disable build for python2, not supported anymore
OBS-URL: https://build.opensuse.org/request/show/933496
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyparsing?expand=0&rev=77
. Each bug with Regex expressions
. And expressions not properly constructing with generator
. Traceback abbreviation
. Bug in delta_time example
. Fix regexen in pyparsing_common.real and .sci_real
. Avoid FutureWarning on Python 3.7 or later
. Cleanup output in runTests if comments are embedded in test string
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyparsing?expand=0&rev=72
- Updated the shorthand notation that has been added for repetition
expressions: expr[min, max], with '...' valid as a min or max value
- The defaults on all the `__diag__` switches have been set to False,
to avoid getting alarming warnings. To use these diagnostics, set
them to True after importing pyparsing.
- Fixed bug introduced by the use of __getitem__ for repetition,
overlooking Python's legacy implementation of iteration
by sequentially calling __getitem__ with increasing numbers until
getting an IndexError. Found during investigation of problem
reported by murlock, merci!
- Changed [...] to emit ZeroOrMore instead of OneOrMore.
- Removed code that treats ParserElements like iterables.
- Change all __diag__ switches to False.
- update to 2.4.1.1:
- API change adding support for `expr[...]` - the original
code in 2.4.1 incorrectly implemented this as OneOrMore.
Code using this feature under this relase should explicitly
use `expr[0, ...]` for ZeroOrMore and `expr[1, ...]` for
OneOrMore. In 2.4.2 you will be able to write `expr[...]`
equivalent to `ZeroOrMore(expr)`.
- Bug if composing And, Or, MatchFirst, or Each expressions
using an expression. This only affects code which uses
explicit expression construction using the And, Or, etc.
classes instead of using overloaded operators '+', '^', and
so on. If constructing an And using a single expression,
you may get an error that "cannot multiply ParserElement by
0 or (0, 0)" or a Python `IndexError`.
- Some newly-added `__diag__` switches are enabled by default,
which may give rise to noisy user warnings for existing parsers.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyparsing?expand=0&rev=64
- drop nose_to_unittest.patch
- drop _service
* Adds a pyparsing.__compat__ object for specifying compatibility with
future breaking changes.
* Conditionalizes the API-breaking behavior, based on the value
pyparsing.__compat__.collect_all_And_tokens. By default, this value
will be set to True, reflecting the new bugfixed behavior.
* User code that is dependent on the pre-bugfix behavior can restore
it by setting this value to False.
* Updated unitTests.py and simple_unit_tests.py to be compatible with
"python setup.py test".
* Fixed bug in runTests handling '\n' literals in quoted strings.
* Added tag_body attribute to the start tag expressions generated by
makeHTMLTags, so that you can avoid using SkipTo to roll your own
tag body expression:
* indentedBlock failure handling was improved
* Address Py2 incompatibility in simpleUnitTests, plus explain() and
Forward str() cleanup
* Fixed docstring with embedded '\w', which creates SyntaxWarnings in Py3.8.
* Added example parser for rosettacode.org tutorial compiler.
* Added example to show how an HTML table can be parsed into a
collection of Python lists or dicts, one per row.
* Updated SimpleSQL.py example to handle nested selects, reworked
'where' expression to use infixNotation.
* Added include_preprocessor.py, similar to macroExpander.py.
* Examples using makeHTMLTags use new tag_body expression when
retrieving a tag's body text.
* Updated examples that are runnable as unit tests
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyparsing?expand=0&rev=62
* Update CHANGES to include note on fixing issue #65; generalized the note about the decaf language example; added sample code from the statemachine examples.
* Unit test to test fix for issue #65
* Fix inconsistency between Keyword(caseless=True) and CaselessKeyword (issue #65)
* Fix typo: 'chemcialFormulas.py' -> 'chemicalFormulas.py'
* Convert exception logging to use ParseException.explain()
* Add experimental ParseException.explain() method, to return a multiline string showing the parse expressions leading to a parsing failure
* Clean up CHANGES notes for new examples
* Add document signoff and library book state examples;
* Update statemachine demo code to Py3
* Update Lucene grammar example, but remove from Travis-CI acceptance scripts
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyparsing?expand=0&rev=57
- Update to 2.3.0:
* Updates to migrate source repo to GitHub
* Fix deprecation warning in Python 3.7 re: importing collections.abc
* Fix Literal/Keyword bug raising IndexError instead of ParseException
* Added simple_unit_tests.py, as a collection of easy-to-follow unit
* tests for various classes and features of the pyparsing library.
* Primary intent is more to be instructional than actually rigorous
* testing. Complex tests can still be added in the unitTests.py file.
* New features added to the Regex class
- Fix URL to point to existing github
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyparsing?expand=0&rev=43
- Bumped minor version number to reflect compatibility issues with
OneOrMore and ZeroOrMore bugfixes in 2.1.10. (2.1.10 fixed a bug
that was introduced in 2.1.4, but the fix could break code
written against 2.1.4 - 2.1.9.)
- Updated setup.py to address recursive import problems now
that pyparsing is part of 'packaging' (used by setuptools).
Patch submitted by Joshua Root, much thanks!
- Fixed KeyError issue reported by Yann Bizeul when using packrat
parsing in the Graphite time series database, thanks Yann!
- Fixed incorrect usages of '\' in literals, as described in
https://docs.python.org/3/whatsnew/3.6.html#deprecated-python-behavior
Patch submitted by Ville Skyttä - thanks!
- Minor internal change when using '-' operator, to be compatible
with ParserElement.streamline() method.
- Expanded infixNotation to accept a list or tuple of parse actions
to attach to an operation.
- New unit test added for dill support for storing pyparsing parsers.
Ordinary Python pickle can be used to pickle pyparsing parsers as
long as they do not use any parse actions. The 'dill' module is an
extension to pickle which *does* support pickling of attached
- drop desetuptoolize.patch: this is not needed
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyparsing?expand=0&rev=38
- 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
Luc J. Bourhis, with patch fix by Mathias Mamsch - thanks, Luc
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
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
development on the 1.5.x path.
- Operator '<<' is now deprecated, in favor of operator '<<=' for
attaching parsing expressions to Forward() expressions. This is
being done to address precedence of operations problems with '<<'.
Operator '<<' will be removed in a future version of pyparsing.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyparsing?expand=0&rev=26
- update to 1.5.7:
* 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
older.
* An awesome new example is included in this release, submitted
by Luca DellOlio, for parsing ANTLR grammar definitions, nice
work Luca!
* Fixed implementation of ParseResults.__str__ to use Pythonic
''.join() instead of repeated string concatenation. This
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
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
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.
OBS-URL: https://build.opensuse.org/request/show/158799
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyparsing?expand=0&rev=16