Filter to possible package paths before trying to resolve a module.#18038
Merged
hauntsaninja merged 6 commits intopython:masterfrom Oct 25, 2024
Merged
Filter to possible package paths before trying to resolve a module.#18038hauntsaninja merged 6 commits intopython:masterfrom
hauntsaninja merged 6 commits intopython:masterfrom
Conversation
With a long sys.path (it's got 300 entries), this removes 94% of stat syscalls from running mypy. With all the filesystem caching, that's only a small time savings, though it will depend on your filesystem.
This comment has been minimized.
This comment has been minimized.
Collaborator
hauntsaninja
left a comment
There was a problem hiding this comment.
Awesome stuff! I pushed two commits to try and get tests passing, I'll also run this through the benchmarking setup that I had going :-)
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
b773887 to
fbc8ff0
Compare
Collaborator
|
Okay, I benchmarked ac79825 as the following on
I'll check the extra Doing this also uncovered a minor regression from #15347 , which I shall try to fix... (update: I think best done in a new PR) |
This comment has been minimized.
This comment has been minimized.
fbc8ff0 to
e018d5d
Compare
e018d5d to
778dbec
Compare
Contributor
|
According to mypy_primer, this change doesn't affect type check results on a corpus of open source code. ✅ |
hauntsaninja
added a commit
that referenced
this pull request
Oct 26, 2024
Follow up to #18038 This maybe should have been two PRs
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.
With a long sys.path (it's got 300 entries), this removes 94% of stat syscalls from running mypy. With all the filesystem caching, that's only a small time savings, though it will depend on your filesystem. Local benchmarks showed a 20% time savings but they're pretty noisy from all the I/O.