NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1910 most downloaded on PyPI
Easy-to-use parser combinators, for parsing in pure Python
Last release 1 years ago
12 Sep 2025
Release timing varies
gaps range from 1 weeks to 2.8 years
Most releases are documented
notes for 10 of 13 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
13 releases · first in 2014
- Dropped support for Python 3.7, 3.8 which are past EOL
Dropped support for Python 3.7, 3.8 which are past EOL
Various docs and type hint updates
Version bump 2.1, and release fixes
Version bump 2.1, and release fixes
Dropped support for Python 3.7
Test against Python 3.11
Added docstrings and basic type hints to all primitives and main methods
One column per quarter.
- Dropped support for Python < 3.6
Dropped support for Python < 3.6
Added Parser.until() . Thanks @mcdeoliveira !
Parser.optional() now supports an optional default argument to be returned instead of None .
Dropped support for Python < 3.6
Added Parser.until. Thanks @mcdeoliveira!
Parser.optional now supports an optional default argument to be returned instead of None.
Updated release process
Updated release process
Documentation improvements.
Added group parameter to regex() - thanks @camerondm9 .
Support bytes with regex() as well as str - thanks @quack4 .
Added forward_declaration .
Real email address in setup.py to make PyPI happy
Real email address in setup.py to make PyPI happy
Documentation improvements.
Added peek() - thanks @lisael .
Removed Python 3.3 support
Added Python 3.7 support
Parser.combine_dict() now strips keys that start with _ .
- Added transform argument to string() and string_from() .
Added transform argument to string() and string_from() .
Made Parser.combine_dict() accept lists of name value pairs, and filter out keys with value None .
Added from_enum() .
- Added seq() keyword argument version (Python 3.6)
Added Parser.optional() .
Added Parser.tag() .
Added seq() keyword argument version (Python 3.6)
Added Parser.combine_dict() .
Documented Parser.mark() .
Documentation improvements.
- Improved parse failure messages of @generate parsers. Previously the parser was given a default description of the function name, which hides all us
Improved parse failure messages of @generate parsers. Previously the parser was given a default description of the function name, which hides all useful internal info there might be.
Added Parser.sep_by()
Added test_char()
Added char_from()
Added string_from()
Added any_char
Added decimal_digit
Added Parser.concat()
Fixed parsy so that it can again work with tokens as well as strings, allowing it to be used as both a lexer or parser or both , with docs and tests.
Added test_item()
Added match_item()
Added Parser.should_fail()
- Better error reporting of failed parses.
Better error reporting of failed parses.
Documentation overhaul and expansion.
Added Parser.combine() .
- See git logs for changes before this point.
See git logs for changes before this point.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →