Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Fix Git.{AutoInterrupt,CatFileContentStream} static typing#2039

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged

Conversation

EliahKagan
Copy link
Member

@EliahKaganEliahKagan commentedJun 7, 2025
edited
Loading

Fixes#2038

This fixesmypy forGit.AutoInterrupt andGit.CatFileContentStream. Static type checking of these was broken inadvertently in#2037, as described in#2038. This is approach (2) described in#2038. Further details are in that bug report and in the commit messages.

As in#2037, I've made sure this doesn't break Sphinx (though it would be very strange if it did), by checking locally as well as in the RTD cloud build. The entries in the latter can be examined:AutoInterrupt,CatFileContentStream.

Because CI runsmypy but does not verify its output, I'll wait to mark this non-draft until I've looked at all relevant jobs'mypy steps. (But this may be before the jobs complete, since the jobs that runmypy do so before runningpytest, not after.)

Edit: Allmypy results on CI look as they did before, and then new errors that came in with#2037 are gone.

This uses `TypeAlias` from the `typing` module, to make it so theassignment statments introduced ingitpython-developers#2037 (to set `Git.AutoInterrupt`and `Git.CatFileContentStream` to nonpublic module-levelimplementations `_AutoInterrupt` and `_CatFileContentStream`) aretreated by `mypy` as type aliases rather than as class variables.For details on the problem this partially fixes, seegitpython-developers#2038 and:https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliasesThe fix won't work in this form, however, because it attempts toimport `TypeAlias` unconditionally from the standard-library`typing` module, which only gained it in Python 3.10.
The standard library `typing` module introduced `TypeAlias` inPython 3.10. This uses it from `typing_extensions` where neederd,by making three changes:- Change the version lower bound for `typing-extensions` from  3.7.4.3 to 3.10.0.2, since 3.7.4.3 doesn't offer `TypeAlias`.  (The reason not to go higher, to major version 4, is that  it no longer supports versions of Python lower than 3.9, but  we currently support Python 3.7 and Python 3.8.)- Require the `typing-extensions` dependency when using Python  versions lower than 3.10, rather than only lower than 3.7 as  before.- Conditionally import `TypeAlias` (in the `git.cmd` module) from  either `typing` or `type_extensions` depending on the Python  version, using a pattern that `mypy` and other type checkers  recognize statically.Together with the preceding commit, thisfixesgitpython-developers#2038. (This isapproach (2) described there.)
@EliahKaganEliahKagan marked this pull request as ready for reviewJune 7, 2025 16:21
@EliahKaganEliahKagan merged commit5b098ff intogitpython-developers:mainJun 7, 2025
26 checks passed
@EliahKaganEliahKagan deleted the flatten-next branchJune 7, 2025 16:21
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers
No reviews
Assignees
No one assigned
Labels
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

Git.{AutoInterrupt,CatFileContentStream} refactor broke static typing
1 participant
@EliahKagan

[8]ページ先頭

©2009-2025 Movatter.jp