Commit Graph

5 Commits

Author SHA1 Message Date
Adolf Belka
18ed846002 python3-pyparsing: Update to version 3.0.7
- Update from 3.0.6 to 3.0.7
- Update of rootfile
- Changelog
	Version 3.0.7 -
	- Fixed bug #345, in which delimitedList changed expressions in place
	  using expr.streamline(). Reported by Kim Gräsman, thanks!
	- Fixed bug #346, when a string of word characters was passed to WordStart
	  or WordEnd instead of just taking the default value. Originally posted
	  as a question by Parag on StackOverflow, good catch!
	- Fixed bug #350, in which White expressions could fail to match due to
	  unintended whitespace-skipping. Reported by Fu Hanxi, thank you!
	- Fixed bug #355, when a QuotedString is defined with characters in its
	  quoteChar string containing regex-significant characters such as ., *,
	  ?, [, ], etc.
	- Fixed bug in ParserElement.run_tests where comments would be displayed
	  using with_line_numbers.
	- Added optional "min" and "max" arguments to `delimited_list`. PR
	  submitted by Marius, thanks!
	- Added new API change note in `whats_new_in_pyparsing_3_0_0`, regarding
	  a bug fix in the `bool()` behavior of `ParseResults`.
	  Prior to pyparsing 3.0.x, the `ParseResults` class implementation of
	  `__bool__` would return `False` if the `ParseResults` item list was empty,
	  even if it contained named results. In 3.0.0 and later, `ParseResults` will
	  return `True` if either the item list is not empty *or* if the named
	  results dict is not empty.
	    # generate an empty ParseResults by parsing a blank string with
	    # a ZeroOrMore
	      result = Word(alphas)[...].parse_string("")
	      print(result.as_list())
	      print(result.as_dict())
	      print(bool(result))
	  Prints:
	      []
	      {}
	      False
	    # add a results name to the result
	      result["name"] = "empty result"
	      print(result.as_list())
	      print(result.as_dict())
	      print(bool(result))
	  Prints:
	      []
	      {'name': 'empty result'}
	      True
	  In previous versions, the second call to `bool()` would return `False`.
	- Minor enhancement to Word generation of internal regular expression, to
	  emit consecutive characters in range, such as "ab", as "ab", not "a-b".
	- Fixed character ranges for search terms using non-Western characters
	  in booleansearchparser, PR submitted by tc-yu, nice work!
	- Additional type annotations on public methods.

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Reviewed-by: Peter Müller <peter.mueller@ipfire.org>
2022-04-10 09:51:56 +00:00
Peter Müller
9a7e4d8506 Switch checksums from MD5 to BLAKE2
Historically, the MD5 checksums in our LFS files serve as a protection
against broken downloads, or accidentally corrupted source files.

While the sources are nowadays downloaded via HTTPS, it make sense to
beef up integrity protection for them, since transparently intercepting
TLS is believed to be feasible for more powerful actors, and the state
of the public PKI ecosystem is clearly not helping.

Therefore, this patch switches from MD5 to BLAKE2, updating all LFS
files as well as make.sh to deal with this checksum algorithm. BLAKE2 is
notably faster (and more secure) than SHA2, so the performance penalty
introduced by this patch is negligible, if noticeable at all.

In preparation of this patch, the toolchain files currently used have
been supplied with BLAKE2 checksums as well on
https://source.ipfire.org/.

Cc: Michael Tremer <michael.tremer@ipfire.org>
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
Acked-by: Michael Tremer <michael.tremeripfire.org>
2022-04-02 14:19:25 +00:00
Robin Roevens
f15707c78c buildprocess: Add extra metadata to pak lfs files
* Add a Summary and Services field to all pak lfs files
* Replace occurances of INSTALL_INITSCRIPT with new INSTALL_INITSCRIPTS
  macro in all pak lfs files.

Signed-off-by: Robin Roevens <robin.roevens@disroot.org>
Reviewed-by: Peter Müller <peter.mueller@ipfire.org>
2022-02-11 15:13:15 +00:00
Adolf Belka
16ac8089d7 python3-pyparsing: Update to version 3.0.6 and python-3.10
- 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>
Reviewed-by: Peter Müller <peter.mueller@ipfire.org>
2022-02-11 09:16:04 +00:00
Adolf Belka
495cf3e0b4 python-pyparsing: Update to 2.4.7 and migrate to python3
- Update from 2.2.0 to 2.4.7
- Migrate from python2 to python3
- Move the rootfile from common to packages as pyparsing is an addon

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2021-05-20 10:05:09 +00:00