pyparsing v1.5.7 Release Notes

Release Date: 2012-11-01 // over 11 years ago
    • ๐Ÿš€ NOTE: This is the last release of pyparsing that will try to maintain compatibility with Python versions < 2.6. The next release of pyparsing will be version 2.0.0, using new Python syntax that will not be compatible for Python version 2.5 or older.

    • ๐Ÿš€ An awesome new example is included in this release, submitted by Luca DellOlio, for parsing ANTLR grammar definitions, nice work Luca!

    • Fixed implementation of ParseResults.str to use Pythonic ''.join() instead of repeated string concatenation. This purportedly has been a performance issue under PyPy.

    • Fixed bug in ParseResults.dir under Python 3, reported by Thomas Kluyver, thank you Thomas!

    • โž• Added ParserElement.inlineLiteralsUsing static method, to override pyparsing's default behavior of converting string literals to Literal instances, to use other classes (such as Suppress or CaselessLiteral).

    • โž• Added new operator '<<=', which will eventually replace '<<' for storing the contents of a Forward(). '<<=' does not have the same operator precedence problems that '<<' does.

    • ๐Ÿ‘ 'operatorPrecedence' is being renamed 'infixNotation' as a better description of what this helper function creates. 'operatorPrecedence' is deprecated, and will be dropped entirely in a future release.

    • โž• Added optional arguments lpar and rpar to operatorPrecedence, so that expressions that use it can override the default suppression of the grouping characters.

    • โž• Added support for using single argument builtin functions as parse actions. Now you can write 'expr.setParseAction(len)' and get back the length of the list of matched tokens. Supported builtins are: sum, len, sorted, reversed, list, tuple, set, any, all, min, and max. A script demonstrating this feature is included in the examples directory.

    • ๐Ÿ‘Œ Improved linking in generated docs, proposed on the pyparsing wiki by techtonik, thanks!

    • ๐Ÿ›  Fixed a bug in the definition of 'alphas', which was based on the string.uppercase and string.lowercase "constants", which in fact aren't constant, but vary with locale settings. This could make parsers locale-sensitive in a subtle way. Thanks to Kef Schecter for his diligence in following through on reporting and monitoring this bugfix!

    • ๐Ÿ›  Fixed a bug in the Py3 version of pyparsing, during exception handling with packrat parsing enabled, reported by Catherine Devlin - thanks Catherine!

    • Fixed typo in ParseBaseException.dir, reported anonymously on the SourceForge bug tracker, thank you Pyparsing User With No Name.

    • ๐Ÿ›  Fixed bug in srange when using '\x###' hex character codes.

    • โž• Addeed optional 'intExpr' argument to countedArray, so that you can define your own expression that will evaluate to an integer, to be used as the count for the following elements. Allows you to define a countedArray with the count given in hex, for example, by defining intExpr as "Word(hexnums).setParseAction(int(t[0],16))".