pyparsing v4.2 Release Notes
Release Date: 2019-07-30 // over 4 years ago-
🔖 Version 2.4.2 - July, 2019
⚡️ Updated the shorthand notation that has been added for repetition
expressions: expr[min, max], with '...' valid as a min or max value:- expr[...] and expr[0, ...] are equivalent to ZeroOrMore(expr)
- expr[1, ...] is equivalent to OneOrMore(expr)
- expr[n, ...] or expr[n,] is equivalent
to expr*n + ZeroOrMore(expr)
(read as "n or more instances of expr") - expr[..., n] is equivalent to expr*(0, n)
- expr[m, n] is equivalent to expr*(m, n)
👻 Note that expr[..., n] and expr[m, n] do not raise an exception
if more than n exprs exist in the input stream. If this
behavior is desired, then write expr[..., n] + ~expr.
👍 Better interpretation of [...] as ZeroOrMore raised by crowsonkb,
thanks for keeping me in line!⬆️ If upgrading from 2.4.1 or 2.4.1.1 and you have used
expr[...]
⚡️ forOneOrMore(expr)
, it must be updated toexpr[1, ...]
.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.Example:
import pyparsing as pp pp. __diag__.warn_multiple_tokens_in_named_alternation = True
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!