diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 405e529..76b8afc 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,33 +1,33 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v5.0.0 hooks: - id: check-yaml - id: debug-statements - id: end-of-file-fixer - id: trailing-whitespace - repo: https://github.com/pycqa/isort - rev: 5.13.2 + rev: 6.0.1 hooks: - id: isort - repo: https://github.com/psf/black - rev: 24.4.2 + rev: 25.1.0 hooks: - id: black - repo: https://github.com/asottile/pyupgrade - rev: v3.16.0 + rev: v3.19.1 hooks: - id: pyupgrade args: [--py38-plus] - repo: https://github.com/pycqa/flake8 - rev: 7.1.0 + rev: 7.2.0 hooks: - id: flake8 exclude: ^(tests/|docs/|setup.py) additional_dependencies: - flake8-docstrings - repo: https://github.com/asottile/setup-cfg-fmt - rev: v2.5.0 + rev: v2.8.0 hooks: - id: setup-cfg-fmt args: [--include-version-classifiers] diff --git a/setup.cfg b/setup.cfg index b283034..9fd0751 100644 --- a/setup.cfg +++ b/setup.cfg @@ -12,23 +12,22 @@ license_files = LICENSE classifiers = Development Status :: 5 - Production/Stable Intended Audience :: Developers - License :: OSI Approved :: Apache Software License Natural Language :: English Programming Language :: Python Programming Language :: Python :: 3 Programming Language :: Python :: 3 :: Only - Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 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 project_urls = Source = https://github.com/python-hyper/rfc3986 [options] packages = find: -python_requires = >=3.8 +python_requires = >=3.9 include_package_data = True package_dir = =src diff --git a/src/rfc3986/abnf_regexp.py b/src/rfc3986/abnf_regexp.py index 899b7b5..429e724 100644 --- a/src/rfc3986/abnf_regexp.py +++ b/src/rfc3986/abnf_regexp.py @@ -195,20 +195,20 @@ # Only wide-unicode gets the high-ranges of UCSCHAR if sys.maxunicode > 0xFFFF: # pragma: no cover - IPRIVATE = "\uE000-\uF8FF\U000F0000-\U000FFFFD\U00100000-\U0010FFFD" + IPRIVATE = "\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd" UCSCHAR_RE = ( - "\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF" - "\U00010000-\U0001FFFD\U00020000-\U0002FFFD" - "\U00030000-\U0003FFFD\U00040000-\U0004FFFD" - "\U00050000-\U0005FFFD\U00060000-\U0006FFFD" - "\U00070000-\U0007FFFD\U00080000-\U0008FFFD" - "\U00090000-\U0009FFFD\U000A0000-\U000AFFFD" - "\U000B0000-\U000BFFFD\U000C0000-\U000CFFFD" - "\U000D0000-\U000DFFFD\U000E1000-\U000EFFFD" + "\u00a0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef" + "\U00010000-\U0001fffd\U00020000-\U0002fffd" + "\U00030000-\U0003fffd\U00040000-\U0004fffd" + "\U00050000-\U0005fffd\U00060000-\U0006fffd" + "\U00070000-\U0007fffd\U00080000-\U0008fffd" + "\U00090000-\U0009fffd\U000a0000-\U000afffd" + "\U000b0000-\U000bfffd\U000c0000-\U000cfffd" + "\U000d0000-\U000dfffd\U000e1000-\U000efffd" ) else: # pragma: no cover - IPRIVATE = "\uE000-\uF8FF" - UCSCHAR_RE = "\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF" + IPRIVATE = "\ue000-\uf8ff" + UCSCHAR_RE = "\u00a0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef" IUNRESERVED_RE = "A-Za-z0-9\\._~\\-" + UCSCHAR_RE IPCHAR = "([" + IUNRESERVED_RE + SUB_DELIMITERS_RE + ":@]|%s)" % PCT_ENCODED