Skip to content

Drop support for Python 3.9 and 3.10 - #47

Merged
woutervh merged 1 commit into
mainfrom
chore/drop-python-3.9-3.10
Nov 3, 2026
Merged

woutervh merged 1 commit into
mainfrom
chore/drop-python-3.9-3.10

Conversation

@woutervh

@woutervh woutervh commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Python 3.9 and 3.10 are end-of-life. This raises the floor to 3.11.

  • requires-python = ">=3.11"; drop 3.9/3.10 classifiers and CI matrix entries (testing + linting)
  • ruff target-version = "py311", pre-commit default Python 3.11, .python-version and just uv-set-python-version default 3.11
  • docs: readme/installation say Python >= 3.11; changelog "Unreleased" entry
  • Remove 3.9-only workarounds: tp.Optional in cli/toggle.py (now str | None) and the PEP 626 coverage pragmas in toggle.py (coverage still 100%)
  • about.py: metadata.get() isn't in the PackageMetadata protocol for 3.11, so ty flagged it once 3.9 was gone; use key in metadata + metadata[key] instead
  • uv.lock re-locked with uv 0.12.5 (CI version), UV_CONFIG_FILE unset: only drops the 3.9/3.10 resolution forks, exclude-newer-span kept

Verified locally on 3.11 and 3.15: ruff, ty, pytest (43 passed, 100% branch coverage), uv lock --check.

Since this narrows supported Pythons, consider releasing it as 0.2.0 rather than 0.1.2.

https://claude.ai/code/session_01X16aaEYzUw6qwf6co68x5d

- requires-python >=3.11; remove 3.9/3.10 classifiers and CI matrix entries
- ruff target-version py311, pre-commit default python 3.11, .python-version 3.11
- remove 3.9-only workarounds: tp.Optional in cli/toggle.py, PEP 626 coverage pragmas
- about.py: use `key in metadata` + `metadata[key]` (PackageMetadata protocol on 3.11
  has no .get)
- re-lock with uv 0.12.5 (drops 3.9/3.10 resolution forks)

Claude-Session: https://claude.ai/code/session_01X16aaEYzUw6qwf6co68x5d
@woutervh
woutervh merged commit fe93547 into main Nov 3, 2026
13 checks passed
@woutervh
woutervh deleted the chore/drop-python-3.9-3.10 branch November 3, 2026 17:25
@woutervh woutervh mentioned this pull request Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant