-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Track ranges of names inside __all__
definitions
#10525
Merged
Merged
Conversation
This file contains 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
CodSpeed Performance ReportMerging #10525 will not alter performanceComparing Summary
|
|
AlexWaygood
force-pushed
the
dunder-all-ranges
branch
from
March 22, 2024 15:42
eefcdd4
to
6086cb7
Compare
I fixed the performance regressions initially reported by codspeed, and edited the PR description to reflect the new approach. |
MichaReiser
added
bug
Something isn't working
fixes
Related to suggested fixes for violations
labels
Mar 22, 2024
MichaReiser
approved these changes
Mar 22, 2024
AlexWaygood
force-pushed
the
dunder-all-ranges
branch
from
March 22, 2024 16:43
20e70c3
to
29f6065
Compare
This reverts commit 29f6065.
charliermarsh
approved these changes
Mar 22, 2024
charliermarsh
added a commit
that referenced
this pull request
Apr 6, 2024
## Summary Historically, given: ```python __all__ = [ # noqa: F822 "Bernoulli", "Beta", "Binomial", ] ``` The F822 violations would be attached to the `__all__`, so this `# noqa` would be enforced for _all_ definitions in the list. This changed in #10525 for the better, in that we now use the range of each string. But these `# noqa` directives stopped working. This PR sets the `__all__` as a parent range in the diagnostic, so that these directives are respected once again. Closes #10795. ## Test Plan `cargo test`
Glyphack
pushed a commit
to Glyphack/ruff
that referenced
this pull request
Apr 12, 2024
## Summary Historically, given: ```python __all__ = [ # noqa: F822 "Bernoulli", "Beta", "Binomial", ] ``` The F822 violations would be attached to the `__all__`, so this `# noqa` would be enforced for _all_ definitions in the list. This changed in astral-sh#10525 for the better, in that we now use the range of each string. But these `# noqa` directives stopped working. This PR sets the `__all__` as a parent range in the diagnostic, so that these directives are respected once again. Closes astral-sh#10795. ## Test Plan `cargo test`
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.
Summary
This resolves the TODO comment here:
ruff/crates/ruff_linter/src/checkers/ast/mod.rs
Lines 2116 to 2118 in 4f06d59
Fixing this TODO is necessary (though not quite sufficient) for fixing #10508.
This PR adds a new struct for representing
__all__
members tocrates/ruff_python_ast/all.rs
:I initially just kept references to
ExprStringLiteral
nodes around, since they have all the information we need here, but apparently that approach leads to a large performance regression 🙃Test Plan
cargo test