diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 4d63466..6fda8f0 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -40,6 +40,7 @@ jobs: cpython-beta: "3.14" pypys: - "3.10" + - "3.11" tox-post-environments: - "py3.9-minimum_dependencies" - "py3.9-http-lxml" @@ -69,7 +70,7 @@ jobs: - name: "Quality" runner: "ubuntu-latest" cpythons: - - "3.12" + - "3.13" tox-environments: - "docs" - "mypy" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 47dfe21..f323af7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,7 +2,7 @@ ci: autoupdate_schedule: "quarterly" default_language_version: - python: "python3.12" + python: "python3.13" repos: - repo: "meta" @@ -31,29 +31,29 @@ repos: - "--py39-plus" - repo: "https://github.com/psf/black-pre-commit-mirror" - rev: "24.10.0" + rev: "25.1.0" hooks: - id: "black" - repo: "https://github.com/pycqa/isort" - rev: "6.0.0" + rev: "6.0.1" hooks: - id: "isort" - repo: "https://github.com/pycqa/flake8" - rev: "7.1.1" + rev: "7.2.0" hooks: - id: "flake8" additional_dependencies: - "flake8-bugbear==24.12.12" - repo: "https://github.com/editorconfig-checker/editorconfig-checker" - rev: "v3.2.0" + rev: "v3.2.1" hooks: - id: "editorconfig-checker" - repo: "https://github.com/python-jsonschema/check-jsonschema" - rev: "0.31.0" + rev: "0.32.1" hooks: - id: "check-dependabot" - id: "check-github-workflows" diff --git a/changelog.d/20250404_131218_kurtmckee_python_support.rst b/changelog.d/20250404_131218_kurtmckee_python_support.rst new file mode 100644 index 0000000..72c79a3 --- /dev/null +++ b/changelog.d/20250404_131218_kurtmckee_python_support.rst @@ -0,0 +1,4 @@ +Python support +-------------- + +* Support PyPy 3.11. diff --git a/requirements/docs/requirements.txt b/requirements/docs/requirements.txt index 6b9b715..97c1a10 100644 --- a/requirements/docs/requirements.txt +++ b/requirements/docs/requirements.txt @@ -1,16 +1,16 @@ alabaster==0.7.16 ; python_version >= "3.9" -babel==2.16.0 ; python_version >= "3.9" -certifi==2024.12.14 ; python_version >= "3.9" +babel==2.17.0 ; python_version >= "3.9" +certifi==2025.1.31 ; python_version >= "3.9" charset-normalizer==3.4.1 ; python_version >= "3.9" colorama==0.4.6 ; python_version >= "3.9" and sys_platform == "win32" docutils==0.21.2 ; python_version >= "3.9" idna==3.10 ; python_version >= "3.9" imagesize==1.4.1 ; python_version >= "3.9" -importlib-metadata==8.5.0 ; python_version < "3.10" and python_version >= "3.9" +importlib-metadata==8.6.1 ; python_version == "3.9" jinja2==3.1.6 ; python_version >= "3.9" markupsafe==3.0.2 ; python_version >= "3.9" packaging==24.2 ; python_version >= "3.9" -pygments==2.19.0 ; python_version >= "3.9" +pygments==2.19.1 ; python_version >= "3.9" requests==2.32.3 ; python_version >= "3.9" snowballstemmer==2.2.0 ; python_version >= "3.9" sphinx==7.4.7 ; python_version >= "3.9" @@ -20,6 +20,6 @@ sphinxcontrib-htmlhelp==2.1.0 ; python_version >= "3.9" sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.9" sphinxcontrib-qthelp==2.0.0 ; python_version >= "3.9" sphinxcontrib-serializinghtml==2.0.0 ; python_version >= "3.9" -tomli==2.2.1 ; python_version < "3.11" and python_version >= "3.9" +tomli==2.2.1 ; python_version >= "3.9" and python_version < "3.11" urllib3==2.3.0 ; python_version >= "3.9" -zipp==3.21.0 ; python_version < "3.10" and python_version >= "3.9" +zipp==3.21.0 ; python_version == "3.9" diff --git a/requirements/mypy/requirements.txt b/requirements/mypy/requirements.txt index 1945c07..a0d05fa 100644 --- a/requirements/mypy/requirements.txt +++ b/requirements/mypy/requirements.txt @@ -1,8 +1,8 @@ lxml-stubs==0.5.1 ; python_version >= "3.9" mypy-extensions==1.0.0 ; python_version >= "3.9" -mypy==1.14.1 ; python_version >= "3.9" -tomli==2.2.1 ; python_version < "3.11" and python_version >= "3.9" -types-requests==2.32.0.20241016 ; python_version >= "3.9" +mypy==1.15.0 ; python_version >= "3.9" +tomli==2.2.1 ; python_version >= "3.9" and python_version < "3.11" +types-requests==2.32.0.20250328 ; python_version >= "3.9" types-toml==0.10.8.20240310 ; python_version >= "3.9" -typing-extensions==4.12.2 ; python_version >= "3.9" +typing-extensions==4.13.1 ; python_version >= "3.9" urllib3==2.3.0 ; python_version >= "3.9" diff --git a/requirements/test/requirements.txt b/requirements/test/requirements.txt index 3e5e2cd..f83d0fd 100644 --- a/requirements/test/requirements.txt +++ b/requirements/test/requirements.txt @@ -1,11 +1,11 @@ colorama==0.4.6 ; python_version >= "3.9" and sys_platform == "win32" -coverage[toml]==7.6.10 ; python_version >= "3.9" -exceptiongroup==1.2.2 ; python_version < "3.11" and python_version >= "3.9" -importlib-metadata==8.5.0 ; python_version < "3.10" and python_version >= "3.9" -iniconfig==2.0.0 ; python_version >= "3.9" +coverage==7.8.0 ; python_version >= "3.9" +exceptiongroup==1.2.2 ; python_version >= "3.9" and python_version < "3.11" +importlib-metadata==8.6.1 ; python_version == "3.9" +iniconfig==2.1.0 ; python_version >= "3.9" packaging==24.2 ; python_version >= "3.9" pluggy==1.5.0 ; python_version >= "3.9" pytest-randomly==3.16.0 ; python_version >= "3.9" -pytest==8.3.4 ; python_version >= "3.9" -tomli==2.2.1 ; python_full_version <= "3.11.0a6" and python_version >= "3.9" -zipp==3.21.0 ; python_version < "3.10" and python_version >= "3.9" +pytest==8.3.5 ; python_version >= "3.9" +tomli==2.2.1 ; python_version >= "3.9" and python_full_version <= "3.11.0a6" +zipp==3.21.0 ; python_version == "3.9" diff --git a/tox.ini b/tox.ini index 69568f5..63a0e54 100644 --- a/tox.ini +++ b/tox.ini @@ -3,7 +3,7 @@ min_version = 4.3.5 envlist = coverage_erase py{3.14, 3.13, 3.12, 3.11, 3.10, 3.9}{-http-lxml,} - pypy{3.10}{-http,} + pypy{3.11, 3.10}{-http,} py3.9-minimum_dependencies coverage_report mypy @@ -18,7 +18,7 @@ wheel_build_env = build_wheel depends = py{3.14, 3.13, 3.12, 3.11, 3.10, 3.9}{-http,}{-lxml,}{-minimum_dependencies,}: coverage_erase - pypy{3.10}{-http,}: coverage_erase + pypy{3.11, 3.10}{-http,}: coverage_erase deps = -rrequirements/test/requirements.txt # The dependencies here must match the minimums declared in `pyproject.toml`. @@ -54,7 +54,7 @@ commands = coverage erase [testenv:coverage_report] depends = py{3.14, 3.13, 3.12, 3.11, 3.10, 3.9}{-http,}{-lxml,}{-minimum_dependencies,} - pypy{3.10}{-http,} + pypy{3.11, 3.10}{-http,} skipsdist = true skip_install = true deps = -rrequirements/test/requirements.txt