Support Python 3.13, drop Python 3.8 (PR #64 with merge conflict resolved)#70
Merged
Conversation
…ta (and importlib_metadata for py<3.10)
Resolves the conflict in mode/utils/objects.py in favor of PR #64's get_origin()-based is_union(), which supersedes the UnionType name check added by #65/#69: UNION_TYPES already includes types.UnionType on Python 3.10+. The version-guarded 'int | None' test case from #69 is kept and exercises the new implementation. Assisted-by: Claude Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HgnKFtXZbCjXNoVNWa5JLd
hypothesis 6.156.0 switched to a mixed Python/Rust build (pyo3), which has no PyPy wheels and whose pyo3 version requires PyPy >= 3.11. The pypy3.10 CI job fails building it (and its ast-serialize dependency) from source. Keep PyPy on the last pure-Python release line; CPython continues to track the latest hypothesis. Assisted-by: Claude Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HgnKFtXZbCjXNoVNWa5JLd
mypy 2.x pulls in ast-serialize, a pyo3/Rust extension that cannot build on PyPy < 3.11, and mypy does not support running under PyPy. It is not used by the test suite (only the commented-out lint step), so exclude it from PyPy installs. Assisted-by: Claude Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HgnKFtXZbCjXNoVNWa5JLd
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.
Description
Lands #64 by @manawasp on current master with its merge conflict resolved. Closes #64.
This branch is a merge of the unmodified #64 head (
4b9499c) into master, so all original commits and authorship are preserved. The only conflict was inmode/utils/objects.py: master'sis_union()gained aUnionTypename check via #69, while #64 rewrites the function asget_origin(typ) in UNION_TYPES. Resolved in favor of #64's version, which supersedes the name check (UNION_TYPESalready includestypes.UnionTypeon Python 3.10+). The version-guardedint | Nonetest case from #69 is kept and exercises the new implementation.Verified on the merged tree: full test suite passes on Python 3.11 and 3.13 (731 passed),
ruff checkclean.Note for merging: the branch-protection required check "Run tests with Python 3.8" will never report here since this change removes 3.8 from the CI matrix — it needs to be dropped from required checks or admin-merged.
🤖 Generated with Claude Code
https://claude.ai/code/session_01HgnKFtXZbCjXNoVNWa5JLd
Generated by Claude Code