[17/35] python3-pyparsing: Update to version 3.0.6 and python-3.10

Message ID 20220124161656.71960-17-adolf.belka@ipfire.org
State Accepted
Commit 16ac8089d7afdcebbf94695096b2bfc21ad2738a
Headers show
Series [01/35] python3: Update to version 3.10.1 | expand

Commit Message

Adolf Belka Jan. 24, 2022, 4:16 p.m. UTC
- Update from 2.4.7 to 3.0.6
- Update of rootfile
- Changelog
Version 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.
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.
- 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_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.
Version 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
      # matches only if expr is found in column 1
      AtLineStart(expr)
- 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`.
Version 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.
Version 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)
Version 3.0.0.final -
- Added support for python `-W` warning option to call `enable_all_warnings`() at startup.
  Also detects setting of `PYPARSINGENABLEALLWARNINGS` environment variable to any non-blank
  value. (If using `-Wd` for testing, but wishing to disable pyparsing warnings, add
  `-Wi:::pyparsing`.)
- Fixed named results returned by `url` to match fields as they would be parsed
  using `urllib.parse.urlparse`.
- Early response to `with_line_numbers` was positive, with some requested enhancements:
  . added a trailing "|" at the end of each line (to show presence of trailing spaces);
    can be customized using `eol_mark` argument
  . added expand_tabs argument, to control calling str.expandtabs (defaults to True
    to match `parseString`)
  . added mark_spaces argument to support display of a printing character in place of
    spaces, or Unicode symbols for space and tab characters
  . added mark_control argument to support highlighting of control characters using
    '.' or Unicode symbols, such as "␍" and "␊".
- Modified helpers `common_html_entity` and `replace_html_entity()` to use the HTML
  entity definitions from `html.entities.html5`.
- Updated the class diagram in the pyparsing docs directory, along with the supporting
  .puml file (PlantUML markup) used to create the diagram.
- Added global method `autoname_elements()` to call `set_name()` on all locally
  defined `ParserElements` that haven't been explicitly named using `set_name()`, using
  their local variable name. Useful for setting names on multiple elements when
  creating a railroad diagram.
            a = pp.Literal("a")
            b = pp.Literal("b").set_name("bbb")
- Added global method `autoname_elements()` to call `set_name()` on all locally
  defined `ParserElements` that haven't been explicitly named using `set_name()`, using
  their local variable name. Useful for setting names on multiple elements when
  creating a railroad diagram.
            a = pp.Literal("a")
            b = pp.Literal("b").set_name("bbb")
            pp.autoname_elements()
  `a` will get named "a", while `b` will keep its name "bbb".

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 config/rootfiles/packages/python3-pyparsing | 31 +++++++++++++++------
 lfs/python3-pyparsing                       |  6 ++--
 2 files changed, 25 insertions(+), 12 deletions(-)

Comments

Peter Müller Jan. 28, 2022, 12:58 p.m. UTC | #1
Reviewed-by: Peter Müller <peter.mueller@ipfire.org>

> - Update from 2.4.7 to 3.0.6
> - Update of rootfile
> - Changelog
> Version 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.
> 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.
> - 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_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.
> Version 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
>       # matches only if expr is found in column 1
>       AtLineStart(expr)
> - 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`.
> Version 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.
> Version 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)
> Version 3.0.0.final -
> - Added support for python `-W` warning option to call `enable_all_warnings`() at startup.
>   Also detects setting of `PYPARSINGENABLEALLWARNINGS` environment variable to any non-blank
>   value. (If using `-Wd` for testing, but wishing to disable pyparsing warnings, add
>   `-Wi:::pyparsing`.)
> - Fixed named results returned by `url` to match fields as they would be parsed
>   using `urllib.parse.urlparse`.
> - Early response to `with_line_numbers` was positive, with some requested enhancements:
>   . added a trailing "|" at the end of each line (to show presence of trailing spaces);
>     can be customized using `eol_mark` argument
>   . added expand_tabs argument, to control calling str.expandtabs (defaults to True
>     to match `parseString`)
>   . added mark_spaces argument to support display of a printing character in place of
>     spaces, or Unicode symbols for space and tab characters
>   . added mark_control argument to support highlighting of control characters using
>     '.' or Unicode symbols, such as "␍" and "␊".
> - Modified helpers `common_html_entity` and `replace_html_entity()` to use the HTML
>   entity definitions from `html.entities.html5`.
> - Updated the class diagram in the pyparsing docs directory, along with the supporting
>   .puml file (PlantUML markup) used to create the diagram.
> - Added global method `autoname_elements()` to call `set_name()` on all locally
>   defined `ParserElements` that haven't been explicitly named using `set_name()`, using
>   their local variable name. Useful for setting names on multiple elements when
>   creating a railroad diagram.
>             a = pp.Literal("a")
>             b = pp.Literal("b").set_name("bbb")
> - Added global method `autoname_elements()` to call `set_name()` on all locally
>   defined `ParserElements` that haven't been explicitly named using `set_name()`, using
>   their local variable name. Useful for setting names on multiple elements when
>   creating a railroad diagram.
>             a = pp.Literal("a")
>             b = pp.Literal("b").set_name("bbb")
>             pp.autoname_elements()
>   `a` will get named "a", while `b` will keep its name "bbb".
> 
> Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
> ---
>  config/rootfiles/packages/python3-pyparsing | 31 +++++++++++++++------
>  lfs/python3-pyparsing                       |  6 ++--
>  2 files changed, 25 insertions(+), 12 deletions(-)
> 
> diff --git a/config/rootfiles/packages/python3-pyparsing b/config/rootfiles/packages/python3-pyparsing
> index 3106ff1b6..3dbfdcdaf 100644
> --- a/config/rootfiles/packages/python3-pyparsing
> +++ b/config/rootfiles/packages/python3-pyparsing
> @@ -1,9 +1,22 @@
> -#usr/lib/python3.8/site-packages/easy-install.pth
> -#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg
> -#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO
> -#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO/PKG-INFO
> -#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO/SOURCES.txt
> -#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO/dependency_links.txt
> -#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO/not-zip-safe
> -#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO/top_level.txt
> -usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/pyparsing.py
> +#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg
> +#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/EGG-INFO
> +#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/EGG-INFO/PKG-INFO
> +#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/EGG-INFO/SOURCES.txt
> +#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/EGG-INFO/dependency_links.txt
> +#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/EGG-INFO/not-zip-safe
> +#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/EGG-INFO/requires.txt
> +#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/EGG-INFO/top_level.txt
> +#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing
> +usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/__init__.py
> +usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/actions.py
> +usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/common.py
> +usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/core.py
> +#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/diagram
> +usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/diagram/__init__.py
> +usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/diagram/template.jinja2
> +usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/exceptions.py
> +usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/helpers.py
> +usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/results.py
> +usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/testing.py
> +usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/unicode.py
> +usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/util.py
> diff --git a/lfs/python3-pyparsing b/lfs/python3-pyparsing
> index 45e960a2b..345f311e9 100644
> --- a/lfs/python3-pyparsing
> +++ b/lfs/python3-pyparsing
> @@ -24,7 +24,7 @@
>  
>  include Config
>  
> -VER        = 2.4.7
> +VER        = 3.0.6
>  
>  THISAPP    = pyparsing-$(VER)
>  DL_FILE    = $(THISAPP).tar.gz
> @@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
>  DIR_APP    = $(DIR_SRC)/$(THISAPP)
>  TARGET     = $(DIR_INFO)/$(THISAPP)
>  PROG       = python3-pyparsing
> -PAK_VER    = 3
> +PAK_VER    = 4
>  
>  DEPS       =
>  
> @@ -44,7 +44,7 @@ objects = $(DL_FILE)
>  
>  $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
>  
> -$(DL_FILE)_MD5 = f0953e47a0112f7a65aec2305ffdf7b4
> +$(DL_FILE)_MD5 = 2f5fad6c8e99ac2562ab08ad9e45b195
>  
>  install : $(TARGET)
>

Patch

diff --git a/config/rootfiles/packages/python3-pyparsing b/config/rootfiles/packages/python3-pyparsing
index 3106ff1b6..3dbfdcdaf 100644
--- a/config/rootfiles/packages/python3-pyparsing
+++ b/config/rootfiles/packages/python3-pyparsing
@@ -1,9 +1,22 @@ 
-#usr/lib/python3.8/site-packages/easy-install.pth
-#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg
-#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO
-#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO/PKG-INFO
-#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO/SOURCES.txt
-#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO/dependency_links.txt
-#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO/not-zip-safe
-#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO/top_level.txt
-usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/pyparsing.py
+#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg
+#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/EGG-INFO
+#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/EGG-INFO/PKG-INFO
+#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/EGG-INFO/SOURCES.txt
+#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/EGG-INFO/dependency_links.txt
+#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/EGG-INFO/not-zip-safe
+#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/EGG-INFO/requires.txt
+#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/EGG-INFO/top_level.txt
+#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing
+usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/__init__.py
+usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/actions.py
+usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/common.py
+usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/core.py
+#usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/diagram
+usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/diagram/__init__.py
+usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/diagram/template.jinja2
+usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/exceptions.py
+usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/helpers.py
+usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/results.py
+usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/testing.py
+usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/unicode.py
+usr/lib/python3.10/site-packages/pyparsing-3.0.6-py3.10.egg/pyparsing/util.py
diff --git a/lfs/python3-pyparsing b/lfs/python3-pyparsing
index 45e960a2b..345f311e9 100644
--- a/lfs/python3-pyparsing
+++ b/lfs/python3-pyparsing
@@ -24,7 +24,7 @@ 
 
 include Config
 
-VER        = 2.4.7
+VER        = 3.0.6
 
 THISAPP    = pyparsing-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@  DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = python3-pyparsing
-PAK_VER    = 3
+PAK_VER    = 4
 
 DEPS       =
 
@@ -44,7 +44,7 @@  objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = f0953e47a0112f7a65aec2305ffdf7b4
+$(DL_FILE)_MD5 = 2f5fad6c8e99ac2562ab08ad9e45b195
 
 install : $(TARGET)