Skip to content

Latest commit

 

History

History
486 lines (409 loc) · 18 KB

CHANGELOG.rst

File metadata and controls

486 lines (409 loc) · 18 KB

CHANGELOG

v4.7.0 (2024-12-20)

  • Fix fragment argument usage (issue #81)
  • Fix constructors nud() to skip argument check with XP31+ arrow operator (issue #83)

v4.6.0 (2024-10-27)

  • Fix XsdAttributeGroupProtocol
  • Improve Unicode support with installable UnicodeData.txt versions
  • Extend names disambiguation with a fix for issue #78
  • Refactor tree builders to fix document position of tails (issue #79)

v4.5.0 (2024-09-09)

  • Fix and clean node trees iteration methods (issue #72)
  • Fix missing raw string for '[^rn]' (pull request #76)
  • Full and more specific type annotations

v4.4.0 (2024-03-11)

  • Improve stand-alone XPath functions builder (issue #70)
  • Update tokens and parsers __repr__
  • Fix static typing protocols to work with etree and XSD elements

v4.3.0 (2024-02-17)

  • Change the purpose of the evaluation with a dynamic schema context
  • Add a tox.ini testenv with Python 3.13 pre-releases

v4.2.1 (2024-02-10)

  • Fix dynamic context initialization with lxml a non-root element (issue #71)
  • Fix XP30+ function fn:function-lookup
  • Fix XP30+ fn:unparsed-text, fn:unparsed-text-lines and fn:unparsed-text-available

v4.2.0 (2024-02-03)

  • Drop support for Python 3.7
  • Add uri and fragment options to dynamic context
  • Make context root node not mandatory (issue #63)
  • Add function objects constructor (issue #70)

v4.1.5 (2023-07-25)

  • Fix typed value of ElementNode() if self.elem.text is None

v4.1.4 (2023-06-26)

  • Fix select of prefixed names (issue #68)
  • Fix zero length xs:base64Binary (pull request #69)

v4.1.3 (2023-06-17)

  • Fix XP30+ fn:path (issue #67)
  • Fix weak tests (issues #64 and #66)

v4.1.2 (2023-04-28)

  • Add support for Python 3.12
  • Fix self shortcut operator (adding is_schema_node() to node classes)

v4.1.1 (2023-04-11)

  • Simplify type annotations for XSD datatypes
  • Full test coverage of sequence type functions with bugfixes

v4.1.0 (2023-03-21)

  • Refactor XPath function call (context=None only as keyword argument)
  • Add external function support (issue #60)
  • Some fixes to string representation and source property of tokens
  • Extend documentation and tests
  • Clean XSD datatypes hierarchy

v4.0.1 (2023-02-02)

  • Fix packaging: include py.typed in package data
  • Revert to comparison between xs:QName instances and strings

v4.0.0 (2023-02-01)

  • First XPath 3.1 implementation (without UCA collation support)

v3.0.2 (2022-08-12)

  • Extend root concept to subtrees used as root (e.g. XSD 1.1 assertions)
  • Begin XPath 3.1 implementation adding XPathMap and XPathArray

v3.0.1 (2022-07-23)

  • Fix of descendant path operator (issue #51)
  • Add support for Python 3.11

v3.0.0 (2022-07-16)

  • Transition to full XPath node implementation (more memory usage but better control and overall faster)
  • Add etree.py module with a safe XML parser (ported from xmlschema)

v2.5.3 (2022-05-30)

  • Fix unary path step operator (issue #46)
  • Fix sphinx warnings 'reference target not found' (issue #45)

v2.5.2 (2022-05-17)

  • Include PR #43 with fixes for XPathContext.iter_siblings() (issues #42 and #44)

v2.5.1 (2022-04-28)

  • Fix for failed floats equality tests (issue #41)
  • Static typing tested with mypy==0.950

v2.5.0 (2022-03-04)

  • Add XPath 3.0 support
  • Better use of lxml.etree features
  • Full coverage of W3C tests
  • Drop support for Python 3.6

v2.4.0 (2021-11-09)

  • Fix type annotations and going strict on parsers and other public classes
  • Add XPathConstructor token class (subclass of XPathFunction)
  • Last release for Python 3.6

v2.3.2 (2021-09-16)

  • Make ElementProtocol and LxmlElementProtocol runtime checkable (only for Python 3.8+)
  • Type annotations for all package public APIs

v2.3.1 (2021-09-07)

  • Add LxmlElementProtocol
  • Add pytest env to tox.ini (test issue #39)

v2.3.0 (2021-09-01)

  • Add inline type annotations check support
  • Add structural Protocol based type checks (effective for Python 3.8+)

v2.2.3 (2021-06-16)

  • Add Python 3.10 in Tox and CI tests
  • Apply __slots__ to TDOP and regex classes

v2.2.2 (2021-05-03)

v2.2.1 (2021-03-24)

  • Add function signatures at token registration
  • Some fixes to XPath tokens and more XPath 3.0 implementations

v2.2.0 (2021-03-01)

  • Optimize TDOP parser's tokenizer
  • Resolve ambiguities with operators and statements that are also names
  • Merge with XPath 3.0/3.1 develop (to be completed)

v2.1.4 (2021-02-09)

  • Add tests and apply small fixes to TDOP parser
  • Fix wildcard selection of attributes (issue #35)

v2.1.3 (2021-01-30)

  • Extend tests for XPath 2.0 with minor fixes
  • Fix fn:round-half-to-even (issue #33)

v2.1.2 (2021-01-22)

  • Extend tests for XPath 1.0/2.0 with minor fixes
  • Fix for +/- prefix operators
  • Fix for regex patterns anchors and binary datatypes

v2.1.1 (2021-01-06)

  • Fix for issue #32 (test failure on missing locale setting)
  • Extend tests for XPath 1.0 with minor fixes

v2.1.0 (2021-01-05)

  • Create custom class hierarchy for XPath nodes that replaces named-tuples
  • Bind attribute nodes, text nodes and namespace nodes to parent element (issue #31)

v2.0.5 (2020-12-02)

  • Increase the speed of path step selection on large trees
  • More tests and small fixes to XSD builtin datatypes

v2.0.4 (2020-10-30)

  • Lazy tokenizer for parser classes in order to minimize import time

v2.0.3 (2020-09-13)

  • Fix context handling in cycle statements
  • Change constructor's label to 'constructor function'

v2.0.2 (2020-09-03)

  • Add regex translator to package API
  • More than 99% of W3C XPath 2.0 tests pass

v2.0.1 (2020-08-24)

  • Add regex transpiler (for XPath/XQuery and XML Schema regular expressions)
  • Hotfix for issue #30

v2.0.0 (2020-08-13)

  • Extensive testing with W3C XPath 2.0 tests (~98% passed)
  • Split context variables from in-scope variables (types)
  • Add other XSD builtin atomic types

v1.4.6 (2020-06-15)

  • Fix XPathContext to let the subclasses replace the XPath nodes iterator function

v1.4.5 (2020-05-22)

  • Fix tokenizer and parsers for ambiguities between symbols and names

v1.4.4 (2020-04-23)

  • Improve XPath context and axes processing
  • Integrate pull requests and fix bug on predicate selector

v1.4.3 (2020-03-18)

  • Fix PyPy 3 tests on xs:base64Binary and xs:hexBinary
  • Separated the tests of schema proxy API and other schemas based tests

v1.4.2 (2020-03-13)

  • Multiple XSD type associations on a token
  • Extend xs:untypedAtomic type usage
  • Increase the tests coverage to 95%

v1.4.1 (2020-01-28)

  • Fix for node kind tests
  • Fix for issue #17
  • Update test dependencies
  • Add PyPy3 to tests

v1.4.0 (2019-12-31)

  • Remove Python 2 support
  • Add TextNode node type
  • Fix for issue #15 and for errors related to PR #16

v1.3.3 (2019-12-17)

  • Fix 'attribute' multi-role token (axis and kind test)
  • Fixes for issues #13 and #14

v1.3.2 (2019-12-10)

  • Add token labels 'sequence types' and 'kind test' for callables that are not XPath functions
  • Add missing XPath 2.0 functions
  • Fix for issue #12

v1.3.1 (2019-10-21)

  • Add test module for TDOP parser
  • Fix for issue #10

v1.3.0 (2019-10-11)

  • Improved schema proxy
  • Improved XSD type matching using paths
  • Cached parent path for XPathContext (only Python 3)
  • Improve typed selection with TypedAttribute and TypedElement named-tuples
  • Add iter_results to XPathContext
  • Remove XMLSchemaProxy from package
  • Fix descendant shortcut operator '//'
  • Fix text() function
  • Fix typed select of '(name)' token
  • Fix 24-hour time for DateTime

v1.2.1 (2019-08-30)

  • Hashable XSD datatypes classes
  • Fix Duration types comparison

v1.2.0 (2019-08-14)

  • Added special XSD datatypes
  • Better handling of schema contexts
  • Added validators for numeric types
  • Fixed function conversion rules
  • Fixed tests with lxml and XPath 1.0
  • Added tests for uncovered code

v1.1.8 (2019-05-20)

  • Added code coverage and flake8 checks
  • Drop Python 3.4 support
  • Use more specific XPath errors for functions and namespace resolving
  • Fix for issue #4

v1.1.7 (2019-04-25)

  • Added Parser.is_spaced() method for checking if the current token has extra spaces before or after
  • Fixes for '/' and ':' tokens
  • Fixes for fn:max() and fn:min() functions

v1.1.6 (2019-03-28)

  • Fixes for XSD datatypes
  • Minor fixes after a first test run with Python v3.8a3

v1.1.5 (2019-02-23)

  • Differentiated unordered XPath gregorian types from ordered types for XSD
  • Fix issue #2

v1.1.4 (2019-02-21)

  • Implementation of a full Static Analysis Phase at parse() level
  • Schema-based static analysis for XPath 2.0 parsers using schema contexts
  • Added XPathSchemaContext class for processing schema contexts
  • Added atomization() and get_atomized_operand() helpers to XPathToken
  • Fix value comparison operators

v1.1.3 (2019-02-06)

  • Fix for issue #1
  • Added fn:static-base-uri() and fn:resolve-uri()
  • Fixes to XPath 1.0 functions for compatibility mode

v1.1.2 (2019-01-30)

  • Fixes for XSD datatypes
  • Change the default value of default_namespace argument of XPath2Parser to None

v1.1.1 (2019-01-19)

  • Improvements and fixes for XSD datatypes
  • Rewritten AbstractDateTime for supporting years with value > 9999
  • Added fn:dateTime()

v1.1.0 (2018-12-23)

  • Almost full implementation of XPath 2.0
  • Extended XPath errors management
  • Add XSD datatypes for data/time builtins
  • Add constructors for XSD builtins

v1.0.12 (2018-09-01)

  • Fixed the default namespace use for names without prefix.

v1.0.11 (2018-07-25)

  • Added two recursive protected methods to context class
  • Minor fixes for context and helpers

v1.0.10 (2018-06-15)

  • Updated TDOP parser and implemented token classes serialization

v1.0.8 (2018-06-13)

  • Fixed token classes creation for parsers serialization

v1.0.7 (2018-05-07)

  • Added autodoc based manual with Sphinx

v1.0.6 (2018-05-02)

  • Added tox testing
  • Improved the parser class with raw_advance method

v1.0.5 (2018-03-31)

  • Added n.10 XPath 2.0 functions for strings
  • Fix README.rst for right rendering in PyPI
  • Added ElementPathMissingContextError exception for a correct handling of static context evaluation

v1.0.4 (2018-03-27)

  • Fixed packaging ('packages' argument in setup.py).

v1.0.3 (2018-03-27)

  • Fixed the effective boolean value for a list containing an empty string.

v1.0.2 (2018-03-27)

  • Add QName parsing like in the ElementPath library (usage regulated by a strict flag).

v1.0.1 (2018-03-27)

  • Some bug fixes for attributes selection.

v1.0.0 (2018-03-26)

  • First stable version.