chore: upgrade Python to 3.14 (prof-1fa)#41
Merged
Merged
Conversation
Drover targets Python 3.14. pyproject.toml pins requires-python = ">=3.14" and sets mypy python_version = "3.14" and ruff target-version = "py314". The CI workflow installs Python 3.14 for lint, typecheck, and test jobs. README, CONTRIBUTING, CLAUDE.md, smoke/README.md, and docs/increments.md reference Python 3.14.x. uv.lock is re-resolved against Python 3.14.2 with no version drops. Ruff bumped 0.8 -> 0.15.13 in the re-resolve. src/drover/cli.py applies PEP 758 parenthesis-free except clauses unlocked by target-version = py314. Across src/ and tests/, type-only imports move into TYPE_CHECKING blocks (TC001/TC002/TC003) and a stringified annotation in models.py is unquoted (UP037). Quality gate on Python 3.14.2: ruff format clean, ruff check clean, bandit clean (0 issues, 5269 LOC), mypy strict clean (26 source files), pytest 327 passed / 5 skipped / 75% coverage.
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.
Drover targets Python 3.14.
State after merge
pyproject.tomlpinsrequires-python = ">=3.14",[tool.mypy] python_version = "3.14",[tool.ruff] target-version = "py314"..github/workflows/ci.ymlinstalls Python 3.14 for lint, typecheck, and test jobs (single-version, no matrix).uv.lockis re-resolved against Python 3.14.2 with all extras (langchain, docling, torch 2.12, transformers 5.8, etc.).README.md,CONTRIBUTING.md,CLAUDE.md,smoke/README.md, anddocs/increments.mdreference Python 3.14.x.Modernization unlocked by the upgrade
src/drover/cli.pyuses PEP 758 parenthesis-freeexceptclauses (now valid syntax under py314).src/andtests/live inTYPE_CHECKINGblocks (TC001 / TC002 / TC003).models.pyis unquoted (UP037).Ruff 0.8 → 0.15.13 in the re-resolve made these idioms enforceable; ruff and ruff format both pass cleanly.
Quality gate on Python 3.14.2
uv sync --all-extras --upgraderuff format --check src/ tests/ruff check src/ tests/bandit -r src/mypy src/strictpytest --cov=srcuv run drover --helpOut of scope
delegated-mixing-scott,humming-orbiting-anchor) carry the prior>=3.13,<3.14pin and will need rebase after this merges.Closes prof-1fa.