Repository navigation
Require Python 3.11 and adopt native typing and diagnostics - #186
Merged
Merged
Conversation
hallerite
marked this pull request as ready for review
October 9, 2026 09:08
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — The code and typing updates are localized and tested, but the package and standalone examples deliberately drop Python 3.10 support, creating a user-visible compatibility break. That broader support-policy change should receive human review. Notes:
You can add or adjust custom eligibility rules. Learn more. |
mikasenghaas
approved these changes
Oct 9, 2026
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.
Require Python 3.11 or newer while retaining support through Python 3.14. Update CI, standalone examples, and the lockfile to remove Python 3.10-only dependency resolutions and backports.
Use the new baseline to improve typing and diagnostics:
Validation: 125 passed, 6 skipped in the focused Python 3.13 suite; both retained regression tests pass on Python 3.11. Pre-commit lint/format checks pass; the type-check gate passes with 63 advisory diagnostics. The full model parity suite was not rerun for this update.
Note
Medium Risk
Raising the minimum Python version is a breaking change for 3.10 users; runtime behavior is unchanged but install and CI coverage shift to 3.11–3.14 only.
Overview
Drops Python 3.10 now that it is EOL and requires Python 3.11+ (still capped below 3.15).
requires-pythoninpyproject.tomlmoves from>=3.10to>=3.11. The GitHub Actions test matrix no longer runs on 3.10. All fouruv run --scriptexample headers underexamples/use>=3.11,<3.14.uv.lockis regenerated for the new floor: dual-resolution markers and Python 3.10-only wheels/backports (e.g.exceptiongroup,tomli,backports-asyncio-runner, oldernumpy/networkxpins) are removed.Reviewed by Cursor Bugbot for commit acd9f3a. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Require Python 3.11 and adopt native typing and better error diagnostics
ToolCallParseStatusnow usesStrEnum,Message.roleandMessage.contentbecome required keys viaRequired[...], and the module drops postponed-annotation setupSelfin configs.py; validation logic is unchangedload_tokenizerandcreate_rendererin base.py now add exception notes naming the tokenizer or renderer before re-raisingToolCallParseStatuswire values andMessagerequired/optional keysToolCallParseStatusstring conversion and JSON encoding use the member's wire valueMacroscope summarized cb53305.