diff --git a/CHANGELOG.rst b/CHANGELOG.rst index fe36084..6c0c476 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,9 +2,10 @@ CHANGELOG ********* -`v4.3.0`_ (2024-02-xx) +`v4.3.0`_ (2024-02-17) ====================== -* Change the scope of the dynamic schema context evaluation +* 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) ====================== diff --git a/elementpath/tdop.py b/elementpath/tdop.py index 57099a1..e2113db 100644 --- a/elementpath/tdop.py +++ b/elementpath/tdop.py @@ -15,9 +15,9 @@ from abc import ABCMeta from unicodedata import name as unicode_name from decimal import Decimal, DecimalException -from typing import Any, cast, overload, no_type_check_decorator, Callable, \ - Dict, Generic, List, Optional, Union, Tuple, Type, Pattern, Match, \ - MutableMapping, MutableSequence, Iterator, TypeVar +from typing import Any, cast, overload, Callable, Dict, Generic, List, \ + Optional, Union, Tuple, Type, Pattern, Match, MutableMapping, \ + MutableSequence, Iterator, TypeVar # # Simple top-down parser based on Vaughan Pratt's algorithm (Top Down Operator Precedence). @@ -797,7 +797,6 @@ def method(cls, symbol: Union[str, Type[TK_co]], bp: int = 0) \ """ token_class = cls.register(symbol, label='operator', lbp=bp, rbp=bp) - @no_type_check_decorator def bind(func: Callable[..., Any]) -> Callable[..., Any]: method_name = func.__name__.partition('_')[0] if not callable(getattr(token_class, method_name)): diff --git a/elementpath/xpath31/_xpath31_functions.py b/elementpath/xpath31/_xpath31_functions.py index 1990a5d..899da7a 100644 --- a/elementpath/xpath31/_xpath31_functions.py +++ b/elementpath/xpath31/_xpath31_functions.py @@ -910,7 +910,7 @@ def evaluate_parse_ietf_date_function(self, context=None): tzname_match = re.search(tzname_regex, value, re.IGNORECASE) if tzname_match is not None: # only to let be parsed by strptime() - value = re.sub(tzname_regex, 'UTC', value, re.IGNORECASE) + value = re.sub(tzname_regex, 'UTC', value, flags=re.IGNORECASE) illegal_tzname_regex = r'\b(CET)\b' if re.search(illegal_tzname_regex, value, re.IGNORECASE) is not None: diff --git a/publiccode.yml b/publiccode.yml index 48c68db..a351087 100644 --- a/publiccode.yml +++ b/publiccode.yml @@ -6,8 +6,8 @@ publiccodeYmlVersion: '0.2' name: elementpath url: 'https://github.com/sissaschool/elementpath' landingURL: 'https://github.com/sissaschool/elementpath' -releaseDate: '2024-02-10' -softwareVersion: v4.2.1 +releaseDate: '2024-02-17' +softwareVersion: v4.3.0 developmentStatus: stable platforms: - linux diff --git a/setup.py b/setup.py index 780cae4..74c8a19 100644 --- a/setup.py +++ b/setup.py @@ -49,6 +49,7 @@ 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', + 'Programming Language :: Python :: 3.13', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy', 'Topic :: Software Development :: Libraries', diff --git a/tox.ini b/tox.ini index 16bf52e..8ee7f95 100644 --- a/tox.ini +++ b/tox.ini @@ -6,7 +6,7 @@ [tox] min_version = 4.0 envlist = - py{38,39,310,311,312}, pypy3, docs, flake8, + py{38,39,310,311,312,313}, pypy3, docs, flake8, mypy-py{38,39,310,311,312,py3}, pytest, coverage, xmlschema{223,231,240,251,301}, w3c-xsdtests skip_missing_interpreters = true @@ -21,6 +21,11 @@ deps = coverage: coverage commands = python -m unittest +[testenv:py313] +deps = + xmlschema>=3.0.1 +commands = python -m unittest + [testenv:docs] commands = make -C doc html SPHINXOPTS="-W -n"