ANN: pyparsing-1.4.6 released


Paul McGuire

I'm happy to announce v1.4.6 of pyparsing has been released.
This latest version of pyparsing has a few minor bug-fixes and
enhancements, and another performance improvement for recursive
grammars (those that use the Forward class).

The salient features of this new release are:

Simplified the ParseException constructor, to better support the
standard exception idiom:
raise ParseFatalException, "unexpected text: 'Spanish Inquisition'"

Modified cyclic object references within ParseResults objects to use
weakrefs, to be gentler on the garbage collector.

Added method getTokensEndLoc(), to be called from within a parse
for those parse actions that need both the starting *and* ending
location of the parsed tokens within the input text.

Various bug-fixes:
- tuple as named result now reports entire tuple, not just first
- SkipTo with include=True now returns the skipped-to tokens properly
- makeHTMLTags/makeXMLTags and anyOpenTag and anyCloseTag helpers now
recognize attributes and tags with namespaces
- countedArray now matches when defined within an Or expression
- keepOriginalText now preserves named results fields
- fixed Unicode bug in upcase and downcase methods
- corrected typo in OnceOnly reset() method
- enhanced documentation to describe behavior when parsing input
strings containing tabs
- cleaned up internal decorators to preserve function names,
docstrings, etc.

This release also includes some new examples:
- - Spanish translation of HelloWorld
- - S-exp parser
- (update) - minor bug-fixes to previously released
example for parsing JSON (JavaScript Object Notation) object
serialization strings
- - macro preprocessor to substitute defined macros

Download pyparsing 1.4.6 at
The pyparsing Wiki is at

-- Paul

Pyparsing is a pure-Python class library for quickly developing
recursive-descent parsers. Parser grammars are assembled directly in
the calling Python code, using classes such as Literal, Word,
OneOrMore, Optional, etc., combined with operators '+', '|', and '^'
for And, MatchFirst, and Or. No separate code-generation or external
files are required. Pyparsing can be used in many cases in place of
regular expressions, with shorter learning curve and greater
readability and maintainability. Pyparsing comes with a number of
parsing examples, including:
- "Hello, World!" (English, Korean, Greek, and Spanish(new))
- chemical formulas
- configuration file parser
- web page URL extractor
- 5-function arithmetic expression parser
- subset of CORBA IDL
- chess portable game notation
- simple SQL parser
- Mozilla calendar file parser
- EBNF parser/compiler
- Python value string parser (lists, dicts, tuples, with nesting)
(safe alternative to eval)
- HTML tag stripper
- S-expression parser (new)
- macro substitution preprocessor (new)

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Latest member

Latest Threads