Bump pyparsing from 2.4.7 to 3.0.4
Created by: dependabot[bot]
Bumps pyparsing from 2.4.7 to 3.0.4.
Release notes
Sourced from pyparsing's releases.
pyparsing 3.0.4
Fixed bug in which
Dictclasses did not correctly return tokens as nestedParseResults, reported by and fix identified by Bu Sun Kim, many thanks!!!Documented API-changing side-effect of converting
ParseResultsto use__slots__to pre-define instance attributes. This means that code written like this (which was allowed in pyparsing 2.4.7):result = Word(alphas).parseString("abc") result.xyz = 100now raises this Python exception:
AttributeError: 'ParseResults' object has no attribute 'xyz'To add new attribute values to ParseResults object in 3.0.0 and later, you must assign them using indexed notation:
result["xyz"] = 100You will still be able to access this new value as an attribute or as an indexed item.
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.
pyparsing 3.0.3
Fixed regex typo in
one_offix foras_keyword=True.Fixed a whitespace-skipping bug, Issue #319, introduced as part of the revert of the
LineStartchanges. Reported by Marc-Alexandre Côté, thanks!Added header column labeling > 100 in
with_line_numbers- some input lines are longer than others.pyparsing 3.0.2
Reverted change in behavior with
LineStartandStringStart, which changed the interpretation of when and howLineStartandStringStartshould match when a line starts with spaces. In 3.0.0, thexxxStartexpressions were not really treated like expressions in their own right, but as modifiers to the following expression when used likeLineStart() + expr, so that if there were whitespace on the line beforeexpr(which would match in versions prior to 3.0.0), the match would fail.3.0.0 implemented this by automatically promoting
LineStart() + exprtoAtLineStart(expr), which broke existing parsers that did not expectexprto 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 #317.In 3.0.2, pyparsing reverts to the previous behavior, but will retain the new
AtLineStartandAtStringStartexpression classes, so that parsers can chose whichever behavior applies in their specific instance. Specifically:# matches expr if it is the first token on the line (allows for leading whitespace) LineStart() + expr matches only if expr is found in column 1 AtLineStart(expr)Performance enhancement to
one_ofto always generate an internalRegex, even ifcaselessoras_keywordargs are given asTrue(unless explicitly disabled by passinguse_regex=False).
IndentedBlockclass now works withrecursiveflag. By default, the results parsed by anIndentedBlockare grouped. This can be disabled by constructing theIndentedBlockwithgrouped=False.pyparsing 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.
... (truncated)
Changelog
Sourced from pyparsing's changelog.
Version 3.0.4 -
Fixed bug in which
Dictclasses did not correctly return tokens as nestedParseResults, reported by and fix identified by Bu Sun Kim, many thanks!!!Documented API-changing side-effect of converting
ParseResultsto use__slots__to pre-define instance attributes. This means that code written like this (which was allowed in pyparsing 2.4.7):result = Word(alphas).parseString("abc") result.xyz = 100
now raises this Python exception:
AttributeError: 'ParseResults' object has no attribute 'xyz'
To add new attribute values to ParseResults object in 3.0.0 and later, you must assign them using indexed notation:
result["xyz"] = 100
You will still be able to access this new value as an attribute or as an indexed item.
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.
Version 3.0.3 -
Fixed regex typo in
one_offix foras_keyword=True.Fixed a whitespace-skipping bug, Issue #319, introduced as part of the revert of the
LineStartchanges. Reported by Marc-Alexandre Côté, thanks!Added header column labeling > 100 in
with_line_numbers- some input lines are longer than others.Version 3.0.2 -
- Reverted change in behavior with
LineStartandStringStart, which changed the interpretation of when and howLineStartandStringStartshould match when a line starts with spaces. In 3.0.0, thexxxStartexpressions were not really treated like expressions in their own right, but as modifiers to the following expression when used likeLineStart() + expr, so that if there were whitespace on the line beforeexpr(which would match in versions prior to 3.0.0), the match would fail.
... (truncated)
Commits
-
6e8f7b6Added str method to pyparsing version_info, for nicer-looking output -
4b7a87eFixed bug in railroad diagramming where the vertical limit would count all ex... -
feec989Update docs to reflect change in attribute setting on ParseResults due to usi... -
bb2db7bUpdate version time, reblacken test_unit.py -
77d723dClean up markup in whats_new_in_3_0_0.rst doc -
ae447cdFix Dict() bugfix to wrap tokenlist.as_dict() if self.resultsName -
8bbc83eWrap tokenlist in list ifself.resultsNameis present (#324) -
958d055Update version to prep for next release (and black) -
bf17712Update version time -
b7f7f58Added header column labeling > 100 inwith_line_numbers - Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
-
@dependabot rebasewill rebase this PR -
@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it -
@dependabot mergewill merge this PR after your CI passes on it -
@dependabot squash and mergewill squash and merge this PR after your CI passes on it -
@dependabot cancel mergewill cancel a previously requested merge and block automerging -
@dependabot reopenwill reopen this PR if it is closed -
@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually -
@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) -
@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) -
@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)