NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1392 most downloaded on PyPI
XPath 1.0/2.0/3.0/3.1 parsers and selectors for ElementTree and lxml
Last release 1 months ago
08 Aug 2026
Release timing varies
gaps range from 9 days to 5 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
87 releases · first in 2018
Add *allow_environment* and *allow_external_resources* arguments to XPath30Parser
Fix protection against type cast errors during the static analysis phase
One column per quarter.
Include PR #101 (invalid sequence type error code for external functions)
Fix external function registrations (issue #099)
Drop Python 3.9 compatibility and add Pyton 3.15 support
xlistXSequence datatype for external representation of XPath sequencesFix default/fixed values processing of schema annotated XML data (issue #94)
Fix for XPath 1.0 processing of schema annotated XML data (issue #93)
Fix for XPath 2.0 *fn:node-name* (issue #91)
Fix XDM type labeling with element and xsi:type substitutions (issue #89)
xsi:type substitutions (issue #89)Replace SafeXMLParser with SafeExpatParser
This is in fact a v5.0 pre-release, that includes changes in XDM structure, in order to split XML and XSD schema processing.
This is in fact a v5.0 pre-release, that includes changes in XDM structure, in order to split XML and XSD schema processing.
Fix *fragment* argument usage (issue #81)
Improve Unicode support with installable UnicodeData.txt versions
Fix and clean node trees iteration methods (issue #72)
Improve stand-alone XPath functions builder (issue #70)
__repr__Change the purpose of the evaluation with a dynamic schema context, that is now used only for labeling tokens with XSD types
Change the purpose of the evaluation with a dynamic schema context
Add a tox.ini testenv with Python 3.13 pre-releases
Fix dynamic context initialization with lxml a non-root element (issue #71)
Add *uri* and *fragment* options to dynamic context
Fix typed value of *ElementNode* instance if self.elem.text is None
self.elem.text is NoneFix select of prefixed names (issue #68)
Fix weak tests (issues #64 and #66)
Fix self shortcut operator (adding *is_schema_node()* to node classes)
Simplify type annotations for XSD datatypes
Refactor XPath function call (context=None only as keyword argument)
Fix packaging: include py.typed in package data
py.typed in package dataFirst XPath 3.1 implementation (without UCA collation support)
Extend root concept to subtrees used as root (e.g. for XSD 1.1 assertions)
Fix of descendant path operator (issue #51)
Transition to full XPath node implementation (more memory usage but better control and overall faster)
Fix unary path step operator (issue #46)
Include PR #43 with fixes for XPathContext.iter_siblings() (issues #42 and #44)
XPathContext.iter_siblings() (issues #42 and #44)Fix for failed floats equality tests (issue #41)
Better use of lxml.etree features
Fix type annotations and going strict on parsers and other public classes
Make ElementProtocol and LxmlElementProtocol runtime checkable (only for Python 3.8+)
Add pytest env to tox.ini (testing issue #39)
LxmlElementProtocolAdd inline type annotations check support
Add Python 3.10 in Tox and CI tests
Fix issue sissaschool/xmlschema#243 (assert with xsi:nil usage)
Add function signatures at token registration
Optimize TDOP parser's tokenizer
Add tests and apply small fixes to TDOP parser
Extend tests for XPath 2.0 with minor fixes
Extend tests for XPath 1.0/2.0 with minor fixes
Fix for issue #32 (test failure on missing locale setting)
Replaced named-tuple classes with a hierarchy of custom classes that bind instances (attribute nodes, text nodes, namespace nodes) with parent element
Create custom class hierarchy for XPath nodes that replaces named-tuples
Bind attribute nodes, text nodes and namespace nodes to parent element (issue #31)
Increase the speed of path step selection on large trees
Increase the speed of path step selection on large trees
More tests and small fixes to XSD builtin datatypes
Parser's tokenizer is now created at first usage of a parser. This reduce import time and avoid the build of tokenizers of unused parser version.
Parser's tokenizer is now created at first usage of a parser. This reduce import time and avoid the build of tokenizers of unused parser version.
Fix context handling in cycle statements
Fix context handling in cycle statements
Change constructor's label to 'constructor function'
Add regex translator to package API
Add regex translator to package API
More than 99% of W3C XPath 2.0 tests pass
Removed the change on Decimal default context (prec=30 instead of the default 28). Added regex transpiler for XPath/XQuery or XSD regular expressions.
Removed the change on Decimal default context (prec=30 instead of the default 28). Added regex transpiler for XPath/XQuery or XSD regular expressions.
Add regex transpiler (for XPath/XQuery and XML Schema regular expressions)
Hotfix for issue #30
About ~98% of W3C XPath 2.0 tests run successful.
About ~98% of W3C XPath 2.0 tests run successful.
Extensive testing with W3C XPath 2.0 tests (~98% passed)
Split context variables from in-scope variables (types)
Add other XSD builtin atomic types
Fix XPathContext to let the subclasses replace the XPath nodes iterator function
Fix XPathContext to let the subclasses replace the XPath nodes iterator function
Fix tokenizer and parsers for ambiguities between symbols and names
Fix tokenizer and parsers for ambiguities between symbols and names
Improve XPath context and axes processing
Improve XPath context and axes processing
Integrate pull requests and fix bug on predicate selector
Fix PyPy 3 tests on xs:base64Binary and xs:hexBinary
Fix PyPy 3 tests on xs:base64Binary and xs:hexBinary
Separated the tests of schema proxy API and other schemas based tests
Multiple XSD type associations on a token
Multiple XSD type associations on a token
Extend xs:untypedAtomic type usage
Increase the tests coverage to 95%
* Fix for node kind tests * Fix for issue #17 * Update test dependencies * Add PyPy3 to tests
Fix for node kind tests
Fix for issue #17
Update test dependencies
Add PyPy3 to tests
Fix for issue #15 and for errors related to PR #16
Remove Python 2 support
Add TextNode node type
Fix for issue #15 and for errors related to PR #16
This is the last release compatible with Python 2 (2.7). The next release will be the v1.4.0, a *"Python 3 only"* release (3.5+).
This is the last release compatible with Python 2 (2.7). The next release will be the v1.4.0, a "Python 3 only" release (3.5+).
Fix 'attribute' multi-role token (axis and kind test)
Fixes for issues #13 and #14
Your coding agent can read these notes before it upgrades. Set up the MCP server →