Repository navigation
chore: require Python 3.12 and later - #45
Merged
Merged
Conversation
requires-python said >=3.8 while CI tests 3.12 only and the code already needs 3.9+ syntax. Set the floor to 3.12 (JP decision D1), trim the classifiers, point mypy and ruff at 3.12, and fix the findings ruff's py312 target adds to tests. The package's own pyupgrade findings stay ignored per-file until a follow-up autofix.
Contributor
Author
|
Hard-denied (hard-deny: protected path family) and ready to merge -- all checks green. Offending paths:
Human merge: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
pyproject.toml:requires-python = ">=3.12"; classifiers arePython :: 3andPython :: 3.12only; mypypython_version = "3.12"; rufftarget-version = "py312".[Unreleased]entry.tests/test_dependency_declarations.py::test_python_floor_is_3_12_everywhere_pyproject_states_itreadspyproject.tomlwithtomlliband asserts the four values (red before the change, green after).tests/they are fixed mechanically (UP006/UP017/UP035,zip(strict=True)where the lengths are asserted equal, import order; 94 changed lines in total with the rest of the PR). Inseo_manager/they would be about 1,400 changed lines, over the diff cap, so[tool.ruff.lint.per-file-ignores]ignores those seven rules forseo_manager/**with a comment. A follow-upruff check --fixPR removes the entry.Why
>=3.8was false: the code usestuple[...]annotations andzoneinfo, and CI tests 3.12 only. JP decided on 2026-10-24 (D1) on>=3.12, so no 3.10 floor job and no CI change.Not touched:
[project.scripts], anything blog/twitter (#43, #44).Verification
ruff check .andruff format . --check(0.15.22): clean.mypy . --config-file pyproject.toml: no issues in 3 source files.