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.
pyparsing 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.
pyparsing 3.0.4
Fixed bug in which Dict classes did not correctly return tokens as nested ParseResults, reported by and fix identified by Bu Sun Kim, many thanks!!!
Documented API-changing side-effect of converting ParseResults to 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.
pyparsing 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. 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 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 #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. Specifically:
# matches expr if it is the first token on the line (allows for leading whitespace)
LineStart() + expr
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.
Version 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.
Version 3.0.4 -
Fixed bug in which Dict classes did not correctly return tokens as nested
ParseResults, reported by and fix identified by Bu Sun Kim, many thanks!!!
Documented API-changing side-effect of converting ParseResults to 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.
... (truncated)
Commits
16b766b Add warning suppression detection for all diagnostic warnings
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 rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will 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 version` will 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 dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps pyparsing from 2.4.7 to 3.0.6.
Release notes
Sourced from pyparsing's releases.
... (truncated)
Changelog
Sourced from pyparsing's changelog.
... (truncated)
Commits
16b766b
Add warning suppression detection for all diagnostic warningsb429eb6
Update version time for releasee22d4ca
Revert results names for packaging compatibility (#110)85fc927
Add tests written when working on #323c93973e
Add asserts in unit testb0adfe7
Rework version_info to use typing.NamedTuple22f8847
Add debug arg to scan_string, transform_string, search_stringebd99e2
Update update_pyparsing_timestamp.py to new code structure14427a5
Get Travis and tox to work better together6bb97cc
Make Travis run all tox environmentsDependabot 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 rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will 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 version` will 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 dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)