Skip to content

Commit

Permalink
Update Python support, and dependency/tool versions
Browse files Browse the repository at this point in the history
  • Loading branch information
kurtmckee committed Dec 20, 2024
1 parent 5f0d801 commit 40d7e86
Show file tree
Hide file tree
Showing 11 changed files with 58 additions and 46 deletions.
14 changes: 7 additions & 7 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,34 +36,34 @@ jobs:
- "3.10"
- "3.11"
- "3.12"
cpython-beta: "3.13"
- "3.13"
cpython-beta: "3.14"
pypys:
- "3.9"
- "3.10"
tox-post-environments:
- "py3.9-minimum_dependencies"
- "py3.9-http-lxml"
- "py3.12-http-lxml"
- "py3.13-http-lxml"

# Test lowest and highest versions on Mac.
- name: "macOS"
runner: "macos-latest"
cpythons:
- "3.9"
- "3.12"
- "3.13"
tox-environments:
- "py3.9"
- "py3.12"
- "py3.13"

# Test lowest and highest versions on Windows.
- name: "Windows"
runner: "windows-latest"
cpythons:
- "3.9"
- "3.12"
- "3.13"
tox-environments:
- "py3.9"
- "py3.12"
- "py3.13"

# Check type annotations and documentation.
- name: "Quality"
Expand Down
12 changes: 6 additions & 6 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ repos:
- id: "check-useless-excludes"

- repo: "https://github.com/pre-commit/pre-commit-hooks"
rev: "v4.6.0"
rev: "v5.0.0"
hooks:
- id: "check-added-large-files"
- id: "check-merge-conflict"
Expand All @@ -23,15 +23,15 @@ repos:
- id: "trailing-whitespace"

- repo: "https://github.com/asottile/pyupgrade"
rev: "v3.17.0"
rev: "v3.19.1"
hooks:
- id: "pyupgrade"
name: "Enforce Python 3.9+ idioms"
args:
- "--py39-plus"

- repo: "https://github.com/psf/black-pre-commit-mirror"
rev: "24.8.0"
rev: "24.10.0"
hooks:
- id: "black"

Expand All @@ -45,22 +45,22 @@ repos:
hooks:
- id: "flake8"
additional_dependencies:
- "flake8-bugbear==24.8.19"
- "flake8-bugbear==24.12.12"

- repo: "https://github.com/editorconfig-checker/editorconfig-checker.python"
rev: "3.0.3"
hooks:
- id: "editorconfig-checker"

- repo: "https://github.com/python-jsonschema/check-jsonschema"
rev: "0.29.2"
rev: "0.30.0"
hooks:
- id: "check-dependabot"
- id: "check-github-workflows"
- id: "check-readthedocs"

- repo: "https://github.com/rhysd/actionlint"
rev: "v1.7.1"
rev: "v1.7.4"
hooks:
- id: "actionlint"

Expand Down
4 changes: 2 additions & 2 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
version: 2

build:
os: "ubuntu-22.04"
os: "ubuntu-24.04"
tools:
python: "3.12"
python: "3.13"

python:
install:
Expand Down
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ you've come to the right place!

listparser makes it easy to parse and use subscription lists in multiple formats.
It supports OPML, RDF+FOAF, and the iGoogle exported settings format,
and runs on Python 3.9+ and on PyPy 3.9+.
and runs on Python 3.9+ and on PyPy 3.10.



Expand Down
10 changes: 10 additions & 0 deletions changelog.d/20241220_101336_kurtmckee_updates.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Python support
--------------

* Test against early Python 3.14 releases.
* Drop support for PyPy 3.9.

Security
--------

* Update the minimum requests version to 2.32.0.
2 changes: 1 addition & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ you've come to the right place!

listparser makes it easy to parse and use subscription lists in multiple formats.
It supports OPML, RDF+FOAF, and the iGoogle exported settings format,
and runs on Python 3.9+ and on PyPy 3.9+.
and runs on Python 3.9+ and on PyPy 3.10.


Contents
Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ classifiers = [
[tool.poetry.dependencies]
python = ">=3.9"
# The dependencies here must match the minimums tested in `tox.ini`.
requests = {version = "^2.25.1", optional = true}
lxml = {version = ">=4.6.2,<6.0.0", optional = true}
requests = {version = ">=2.32.0,<3", optional = true}
lxml = {version = ">=4.6.2,<6", optional = true}


[tool.poetry.extras]
Expand Down
18 changes: 9 additions & 9 deletions requirements/docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
alabaster==0.7.16 ; python_version >= "3.9"
babel==2.16.0 ; python_version >= "3.9"
certifi==2024.8.30 ; python_version >= "3.9"
charset-normalizer==3.3.2 ; python_version >= "3.9"
certifi==2024.12.14 ; python_version >= "3.9"
charset-normalizer==3.4.0 ; 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.8 ; python_version >= "3.9"
idna==3.10 ; python_version >= "3.9"
imagesize==1.4.1 ; python_version >= "3.9"
importlib-metadata==8.4.0 ; python_version < "3.10" and python_version >= "3.9"
importlib-metadata==8.5.0 ; python_version < "3.10" and python_version >= "3.9"
jinja2==3.1.4 ; python_version >= "3.9"
markupsafe==2.1.5 ; python_version >= "3.9"
packaging==24.1 ; python_version >= "3.9"
markupsafe==3.0.2 ; python_version >= "3.9"
packaging==24.2 ; python_version >= "3.9"
pygments==2.18.0 ; python_version >= "3.9"
requests==2.32.3 ; python_version >= "3.9"
snowballstemmer==2.2.0 ; python_version >= "3.9"
Expand All @@ -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.0.1 ; python_version < "3.11" and python_version >= "3.9"
urllib3==2.2.2 ; python_version >= "3.9"
zipp==3.20.1 ; python_version < "3.10" and python_version >= "3.9"
tomli==2.2.1 ; python_version < "3.11" and python_version >= "3.9"
urllib3==2.2.3 ; python_version >= "3.9"
zipp==3.21.0 ; python_version < "3.10" and python_version >= "3.9"
8 changes: 4 additions & 4 deletions requirements/mypy/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
lxml-stubs==0.5.1 ; python_version >= "3.9"
mypy-extensions==1.0.0 ; python_version >= "3.9"
mypy==1.11.2 ; python_version >= "3.9"
tomli==2.0.1 ; python_version < "3.11" and python_version >= "3.9"
types-requests==2.32.0.20240712 ; python_version >= "3.9"
mypy==1.14.0 ; 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"
types-toml==0.10.8.20240310 ; python_version >= "3.9"
typing-extensions==4.12.2 ; python_version >= "3.9"
urllib3==2.2.2 ; python_version >= "3.9"
urllib3==2.2.3 ; python_version >= "3.9"
14 changes: 7 additions & 7 deletions requirements/test/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
colorama==0.4.6 ; python_version >= "3.9" and sys_platform == "win32"
coverage[toml]==7.6.1 ; python_version >= "3.9"
coverage[toml]==7.6.9 ; python_version >= "3.9"
exceptiongroup==1.2.2 ; python_version < "3.11" and python_version >= "3.9"
importlib-metadata==8.4.0 ; python_version < "3.10" 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"
packaging==24.1 ; python_version >= "3.9"
packaging==24.2 ; python_version >= "3.9"
pluggy==1.5.0 ; python_version >= "3.9"
pytest-randomly==3.15.0 ; python_version >= "3.9"
pytest==8.3.2 ; python_version >= "3.9"
tomli==2.0.1 ; python_full_version <= "3.11.0a6" and python_version >= "3.9"
zipp==3.20.1 ; python_version < "3.10" and 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"
16 changes: 9 additions & 7 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
min_version = 4.3.5
envlist =
coverage_erase
py{3.13, 3.12, 3.11, 3.10, 3.9}{-http-lxml,}
py{3.14, 3.13, 3.12, 3.11, 3.10, 3.9}{-http-lxml,}
pypy{3.10}{-http,}
py3.9-minimum_dependencies
pypy{3.10, 3.9}{-http,}
coverage_report
mypy
docs
Expand All @@ -17,11 +17,12 @@ package = wheel
wheel_build_env = build_wheel

depends =
py{3.13, 3.12, 3.11, 3.10, 3.9, py3.10, py3.9}{-http,}{-lxml,}{-minimum_dependencies,}: coverage_erase
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
deps =
-rrequirements/test/requirements.txt
# The dependencies here must match the minimums declared in `pyproject.toml`.
minimum_dependencies: requests==2.25.1
minimum_dependencies: requests==2.32.0
minimum_dependencies: lxml==4.6.2
extras =
http: http
Expand All @@ -36,7 +37,7 @@ commands = mypy


[testenv:docs]
base_python = py3.12
base_python = py3.13
skipsdist = true
skip_install = true
deps = -rrequirements/docs/requirements.txt
Expand All @@ -52,7 +53,8 @@ commands = coverage erase

[testenv:coverage_report]
depends =
py{3.13, 3.12, 3.11, 3.10, 3.9, py3.10, py3.9}{-http,}{-lxml,}{-minimum_dependencies,}
py{3.14, 3.13, 3.12, 3.11, 3.10, 3.9}{-http,}{-lxml,}{-minimum_dependencies,}
pypy{3.10}{-http,}
skipsdist = true
skip_install = true
deps = -rrequirements/test/requirements.txt
Expand All @@ -63,7 +65,7 @@ commands = coverage report


[testenv:update]
base_python = py3.12
base_python = py3.13
recreate = true
description = Update tool dependency versions
skip_install = true
Expand Down

0 comments on commit 40d7e86

Please sign in to comment.