-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Reduce explcit clones #3793
Reduce explcit clones #3793
Conversation
Current dependencies on/for this PR:
This comment was auto-generated by Graphite. |
PR Check ResultsEcosystem✅ ecosystem check detected no changes. BenchmarkLinux
Windows
|
7a5076f
to
5c7dcbb
Compare
self.deferred.definitions.push(( | ||
definition, | ||
scope.visibility.clone(), | ||
scope.visibility, | ||
(self.ctx.scope_stack.clone(), self.ctx.parents.clone()), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cloning the whole stack here (and when adding to dead_scopes
is something we should look at at some point.
I think we could reduce the cost of cloning by:
- Having one
Vec<ScopeInternal>
that stores all existing scopes ScopeInternal
is aScope
without itsid
. The is implicit by the position of theScope
in the vector.- Add a
parent: Option<ScopeId>
to scope to allow upwards traversal. - Change
ScopeStack
toVec<ScopeId>
I need to look closer into what parents
is used for
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
parents
is the stack of statements that are parents of the current statement (so e.g. if we're looking at a function definition inside of a class, it might have a parents
of vec![ClassDef { ... }]
).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thx!
} | ||
} | ||
} | ||
} | ||
|
||
fn check_deferred_for_loops(&mut self) { | ||
self.deferred.for_loops.reverse(); | ||
while let Some((stmt, (scopes, parents))) = self.deferred.for_loops.pop() { | ||
self.ctx.scope_stack = scopes.clone(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm surprised that clippy didn't flag this unnecessary clone
5c7dcbb
to
8e6ee43
Compare
8e6ee43
to
3b7c14a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great change.
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ruff](https://togithub.com/charliermarsh/ruff) | `^0.0.259` -> `^0.0.260` | [![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/compatibility-slim/0.0.259)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/confidence-slim/0.0.259)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>charliermarsh/ruff</summary> ### [`v0.0.260`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.260) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.259...v0.0.260) <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### Rules - \[`flake8-bugbear`] Add more immutable functions for `B008` by [@​rouge8](https://togithub.com/rouge8) in [https://github.com/charliermarsh/ruff/pull/3764](https://togithub.com/charliermarsh/ruff/pull/3764) - \[`flake8-bugbear`] Allow `pathlib.Path()` in `B008` by [@​rouge8](https://togithub.com/rouge8) in [https://github.com/charliermarsh/ruff/pull/3794](https://togithub.com/charliermarsh/ruff/pull/3794) - \[`flake8-bugbear`] Expand the scope of useless-expression (B018) by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3455](https://togithub.com/charliermarsh/ruff/pull/3455) - \[`flake8-bugbear`]: Implement rule `B031` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3680](https://togithub.com/charliermarsh/ruff/pull/3680) - \[`flake8-gettext`] Implement `flake8-gettext` by [@​leiserfg](https://togithub.com/leiserfg) in [https://github.com/charliermarsh/ruff/pull/3785](https://togithub.com/charliermarsh/ruff/pull/3785) - \[`flake8-logging-format`] Add support for `.log(level, msg)` calls in `flake8-logging-format` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3726](https://togithub.com/charliermarsh/ruff/pull/3726) - \[`flake8-logging-format`] Allow aliased `logging` module as a logger candidate by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3718](https://togithub.com/charliermarsh/ruff/pull/3718) - \[`flake8-pyi`] Add autofix for `PYI014` by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3729](https://togithub.com/charliermarsh/ruff/pull/3729) - \[`flake8-pyi`] Implement `PYI012` by [@​JBLDKY](https://togithub.com/JBLDKY) in [https://github.com/charliermarsh/ruff/pull/3743](https://togithub.com/charliermarsh/ruff/pull/3743) - \[`flake8-pyi`] Implement `PYI015` by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3728](https://togithub.com/charliermarsh/ruff/pull/3728) - \[`flake8-simplify`] Fix SIM222 and SIM223 false negative by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3740](https://togithub.com/charliermarsh/ruff/pull/3740) - \[`isort`]: support submodules in known\_(first|third)\_party config options by [@​astaric](https://togithub.com/astaric) in [https://github.com/charliermarsh/ruff/pull/3768](https://togithub.com/charliermarsh/ruff/pull/3768) - \[`pycodestyle`] Use unicode-width to determine line-length instead of character count by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3714](https://togithub.com/charliermarsh/ruff/pull/3714) - \[`pydocstyle`] Implement autofix for `D403` by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3731](https://togithub.com/charliermarsh/ruff/pull/3731) - \[`pylint`] Avoid `useless-import alias` (`C0414`) in `.pyi` files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3761](https://togithub.com/charliermarsh/ruff/pull/3761) - \[`pylint`] Exempt `PLR1711` and `RET501` if non-`None` annotation by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3705](https://togithub.com/charliermarsh/ruff/pull/3705) - \[`tryceratops`] Exempt return with side effects for TRY300 by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3780](https://togithub.com/charliermarsh/ruff/pull/3780) ##### Bug Fixes - Avoid parsing `ForwardRef` contents as type references by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3698](https://togithub.com/charliermarsh/ruff/pull/3698) - Avoid parsing f-strings in type annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3699](https://togithub.com/charliermarsh/ruff/pull/3699) - Include `with` statements in complexity calculation by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3771](https://togithub.com/charliermarsh/ruff/pull/3771) - Use import alias locations for `pep8-naming` import rules by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3772](https://togithub.com/charliermarsh/ruff/pull/3772) - Allow `TID252` to fix all valid module paths by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3796](https://togithub.com/charliermarsh/ruff/pull/3796) - Fix SIM118 auto-fix by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3695](https://togithub.com/charliermarsh/ruff/pull/3695) - Avoid panics for implicitly concatenated forward references by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3700](https://togithub.com/charliermarsh/ruff/pull/3700) - Allow simple container literals as default values by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3703](https://togithub.com/charliermarsh/ruff/pull/3703) - Traverse over nested string type annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3724](https://togithub.com/charliermarsh/ruff/pull/3724) - Use `wild::args()` and add `wild` as a dependency by [@​agriyakhetarpal](https://togithub.com/agriyakhetarpal) in [https://github.com/charliermarsh/ruff/pull/3739](https://togithub.com/charliermarsh/ruff/pull/3739) - Avoid overlong-line errors for lines that end with URLs by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3663](https://togithub.com/charliermarsh/ruff/pull/3663) - Sort statistics by count by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3748](https://togithub.com/charliermarsh/ruff/pull/3748) - Reduce explicit clones by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3793](https://togithub.com/charliermarsh/ruff/pull/3793) - Add flymake-ruff to docs by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3800](https://togithub.com/charliermarsh/ruff/pull/3800) #### New Contributors - [@​agriyakhetarpal](https://togithub.com/agriyakhetarpal) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3739](https://togithub.com/charliermarsh/ruff/pull/3739) - [@​leiserfg](https://togithub.com/leiserfg) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3741](https://togithub.com/charliermarsh/ruff/pull/3741) - [@​JBLDKY](https://togithub.com/JBLDKY) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3743](https://togithub.com/charliermarsh/ruff/pull/3743) - [@​astaric](https://togithub.com/astaric) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3768](https://togithub.com/charliermarsh/ruff/pull/3768) **Full Changelog**: astral-sh/ruff@v0.0.259...v0.0.260 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/ixm-one/pytest-cmake-presets). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4yMi4xIiwidXBkYXRlZEluVmVyIjoiMzUuMjIuMSJ9--> Signed-off-by: Renovate Bot <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ruff](https://togithub.com/charliermarsh/ruff) | `==0.0.259` -> `==0.0.260` | [![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/compatibility-slim/0.0.259)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/confidence-slim/0.0.259)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>charliermarsh/ruff</summary> ### [`v0.0.260`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.260) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.259...v0.0.260) <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### Rules - \[`flake8-bugbear`] Add more immutable functions for `B008` by [@​rouge8](https://togithub.com/rouge8) in [https://github.com/charliermarsh/ruff/pull/3764](https://togithub.com/charliermarsh/ruff/pull/3764) - \[`flake8-bugbear`] Allow `pathlib.Path()` in `B008` by [@​rouge8](https://togithub.com/rouge8) in [https://github.com/charliermarsh/ruff/pull/3794](https://togithub.com/charliermarsh/ruff/pull/3794) - \[`flake8-bugbear`] Expand the scope of useless-expression (B018) by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3455](https://togithub.com/charliermarsh/ruff/pull/3455) - \[`flake8-bugbear`]: Implement rule `B031` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3680](https://togithub.com/charliermarsh/ruff/pull/3680) - \[`flake8-gettext`] Implement `flake8-gettext` by [@​leiserfg](https://togithub.com/leiserfg) in [https://github.com/charliermarsh/ruff/pull/3785](https://togithub.com/charliermarsh/ruff/pull/3785) - \[`flake8-logging-format`] Add support for `.log(level, msg)` calls in `flake8-logging-format` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3726](https://togithub.com/charliermarsh/ruff/pull/3726) - \[`flake8-logging-format`] Allow aliased `logging` module as a logger candidate by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3718](https://togithub.com/charliermarsh/ruff/pull/3718) - \[`flake8-pyi`] Add autofix for `PYI014` by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3729](https://togithub.com/charliermarsh/ruff/pull/3729) - \[`flake8-pyi`] Implement `PYI012` by [@​JBLDKY](https://togithub.com/JBLDKY) in [https://github.com/charliermarsh/ruff/pull/3743](https://togithub.com/charliermarsh/ruff/pull/3743) - \[`flake8-pyi`] Implement `PYI015` by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3728](https://togithub.com/charliermarsh/ruff/pull/3728) - \[`flake8-simplify`] Fix SIM222 and SIM223 false negative by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3740](https://togithub.com/charliermarsh/ruff/pull/3740) - \[`isort`]: support submodules in known\_(first|third)\_party config options by [@​astaric](https://togithub.com/astaric) in [https://github.com/charliermarsh/ruff/pull/3768](https://togithub.com/charliermarsh/ruff/pull/3768) - \[`pycodestyle`] Use unicode-width to determine line-length instead of character count by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3714](https://togithub.com/charliermarsh/ruff/pull/3714) - \[`pydocstyle`] Implement autofix for `D403` by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3731](https://togithub.com/charliermarsh/ruff/pull/3731) - \[`pylint`] Avoid `useless-import alias` (`C0414`) in `.pyi` files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3761](https://togithub.com/charliermarsh/ruff/pull/3761) - \[`pylint`] Exempt `PLR1711` and `RET501` if non-`None` annotation by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3705](https://togithub.com/charliermarsh/ruff/pull/3705) - \[`tryceratops`] Exempt return with side effects for TRY300 by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3780](https://togithub.com/charliermarsh/ruff/pull/3780) ##### Bug Fixes - Avoid parsing `ForwardRef` contents as type references by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3698](https://togithub.com/charliermarsh/ruff/pull/3698) - Avoid parsing f-strings in type annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3699](https://togithub.com/charliermarsh/ruff/pull/3699) - Include `with` statements in complexity calculation by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3771](https://togithub.com/charliermarsh/ruff/pull/3771) - Use import alias locations for `pep8-naming` import rules by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3772](https://togithub.com/charliermarsh/ruff/pull/3772) - Allow `TID252` to fix all valid module paths by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3796](https://togithub.com/charliermarsh/ruff/pull/3796) - Fix SIM118 auto-fix by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3695](https://togithub.com/charliermarsh/ruff/pull/3695) - Avoid panics for implicitly concatenated forward references by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3700](https://togithub.com/charliermarsh/ruff/pull/3700) - Allow simple container literals as default values by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3703](https://togithub.com/charliermarsh/ruff/pull/3703) - Traverse over nested string type annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3724](https://togithub.com/charliermarsh/ruff/pull/3724) - Use `wild::args()` and add `wild` as a dependency by [@​agriyakhetarpal](https://togithub.com/agriyakhetarpal) in [https://github.com/charliermarsh/ruff/pull/3739](https://togithub.com/charliermarsh/ruff/pull/3739) - Avoid overlong-line errors for lines that end with URLs by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3663](https://togithub.com/charliermarsh/ruff/pull/3663) - Sort statistics by count by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3748](https://togithub.com/charliermarsh/ruff/pull/3748) - Reduce explicit clones by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3793](https://togithub.com/charliermarsh/ruff/pull/3793) - Add flymake-ruff to docs by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3800](https://togithub.com/charliermarsh/ruff/pull/3800) #### New Contributors - [@​agriyakhetarpal](https://togithub.com/agriyakhetarpal) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3739](https://togithub.com/charliermarsh/ruff/pull/3739) - [@​leiserfg](https://togithub.com/leiserfg) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3741](https://togithub.com/charliermarsh/ruff/pull/3741) - [@​JBLDKY](https://togithub.com/JBLDKY) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3743](https://togithub.com/charliermarsh/ruff/pull/3743) - [@​astaric](https://togithub.com/astaric) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3768](https://togithub.com/charliermarsh/ruff/pull/3768) **Full Changelog**: astral-sh/ruff@v0.0.259...v0.0.260 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/allenporter/pyrainbird). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4yMy4zIiwidXBkYXRlZEluVmVyIjoiMzUuMjMuMyJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ruff](https://togithub.com/charliermarsh/ruff) | `==0.0.259` -> `==0.0.260` | [![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/compatibility-slim/0.0.259)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/confidence-slim/0.0.259)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>charliermarsh/ruff</summary> ### [`v0.0.260`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.260) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.259...v0.0.260) <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### Rules - \[`flake8-bugbear`] Add more immutable functions for `B008` by [@​rouge8](https://togithub.com/rouge8) in [https://github.com/charliermarsh/ruff/pull/3764](https://togithub.com/charliermarsh/ruff/pull/3764) - \[`flake8-bugbear`] Allow `pathlib.Path()` in `B008` by [@​rouge8](https://togithub.com/rouge8) in [https://github.com/charliermarsh/ruff/pull/3794](https://togithub.com/charliermarsh/ruff/pull/3794) - \[`flake8-bugbear`] Expand the scope of useless-expression (B018) by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3455](https://togithub.com/charliermarsh/ruff/pull/3455) - \[`flake8-bugbear`]: Implement rule `B031` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3680](https://togithub.com/charliermarsh/ruff/pull/3680) - \[`flake8-gettext`] Implement `flake8-gettext` by [@​leiserfg](https://togithub.com/leiserfg) in [https://github.com/charliermarsh/ruff/pull/3785](https://togithub.com/charliermarsh/ruff/pull/3785) - \[`flake8-logging-format`] Add support for `.log(level, msg)` calls in `flake8-logging-format` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3726](https://togithub.com/charliermarsh/ruff/pull/3726) - \[`flake8-logging-format`] Allow aliased `logging` module as a logger candidate by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3718](https://togithub.com/charliermarsh/ruff/pull/3718) - \[`flake8-pyi`] Add autofix for `PYI014` by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3729](https://togithub.com/charliermarsh/ruff/pull/3729) - \[`flake8-pyi`] Implement `PYI012` by [@​JBLDKY](https://togithub.com/JBLDKY) in [https://github.com/charliermarsh/ruff/pull/3743](https://togithub.com/charliermarsh/ruff/pull/3743) - \[`flake8-pyi`] Implement `PYI015` by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3728](https://togithub.com/charliermarsh/ruff/pull/3728) - \[`flake8-simplify`] Fix SIM222 and SIM223 false negative by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3740](https://togithub.com/charliermarsh/ruff/pull/3740) - \[`isort`]: support submodules in known\_(first|third)\_party config options by [@​astaric](https://togithub.com/astaric) in [https://github.com/charliermarsh/ruff/pull/3768](https://togithub.com/charliermarsh/ruff/pull/3768) - \[`pycodestyle`] Use unicode-width to determine line-length instead of character count by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3714](https://togithub.com/charliermarsh/ruff/pull/3714) - \[`pydocstyle`] Implement autofix for `D403` by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3731](https://togithub.com/charliermarsh/ruff/pull/3731) - \[`pylint`] Avoid `useless-import alias` (`C0414`) in `.pyi` files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3761](https://togithub.com/charliermarsh/ruff/pull/3761) - \[`pylint`] Exempt `PLR1711` and `RET501` if non-`None` annotation by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3705](https://togithub.com/charliermarsh/ruff/pull/3705) - \[`tryceratops`] Exempt return with side effects for TRY300 by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3780](https://togithub.com/charliermarsh/ruff/pull/3780) ##### Bug Fixes - Avoid parsing `ForwardRef` contents as type references by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3698](https://togithub.com/charliermarsh/ruff/pull/3698) - Avoid parsing f-strings in type annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3699](https://togithub.com/charliermarsh/ruff/pull/3699) - Include `with` statements in complexity calculation by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3771](https://togithub.com/charliermarsh/ruff/pull/3771) - Use import alias locations for `pep8-naming` import rules by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3772](https://togithub.com/charliermarsh/ruff/pull/3772) - Allow `TID252` to fix all valid module paths by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3796](https://togithub.com/charliermarsh/ruff/pull/3796) - Fix SIM118 auto-fix by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3695](https://togithub.com/charliermarsh/ruff/pull/3695) - Avoid panics for implicitly concatenated forward references by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3700](https://togithub.com/charliermarsh/ruff/pull/3700) - Allow simple container literals as default values by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3703](https://togithub.com/charliermarsh/ruff/pull/3703) - Traverse over nested string type annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3724](https://togithub.com/charliermarsh/ruff/pull/3724) - Use `wild::args()` and add `wild` as a dependency by [@​agriyakhetarpal](https://togithub.com/agriyakhetarpal) in [https://github.com/charliermarsh/ruff/pull/3739](https://togithub.com/charliermarsh/ruff/pull/3739) - Avoid overlong-line errors for lines that end with URLs by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3663](https://togithub.com/charliermarsh/ruff/pull/3663) - Sort statistics by count by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3748](https://togithub.com/charliermarsh/ruff/pull/3748) - Reduce explicit clones by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3793](https://togithub.com/charliermarsh/ruff/pull/3793) - Add flymake-ruff to docs by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3800](https://togithub.com/charliermarsh/ruff/pull/3800) #### New Contributors - [@​agriyakhetarpal](https://togithub.com/agriyakhetarpal) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3739](https://togithub.com/charliermarsh/ruff/pull/3739) - [@​leiserfg](https://togithub.com/leiserfg) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3741](https://togithub.com/charliermarsh/ruff/pull/3741) - [@​JBLDKY](https://togithub.com/JBLDKY) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3743](https://togithub.com/charliermarsh/ruff/pull/3743) - [@​astaric](https://togithub.com/astaric) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3768](https://togithub.com/charliermarsh/ruff/pull/3768) **Full Changelog**: astral-sh/ruff@v0.0.259...v0.0.260 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/allenporter/flux-local). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4yMi4xIiwidXBkYXRlZEluVmVyIjoiMzUuMjIuMSJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR removes some explicit
clone
in the code base by:Copy
for field-less enums and pass them by value. This won't improve performance but signals to readers that copying is cheap.scopes
andparents
during thedeferred
checking phase. Cloning isn't necessary becausescopes
andparents
are append-only, andtruncate
is sufficient to restore them to their previous state.I used this opportunity to align the deferred checks and replaced the
with
This has the advantage that we avoid reversing the list (O(n)) and fixes the potential bug where an item added to
self.deferred.list
during traversal is processed before the other deferred items (becausereverse
is called before the loop)CPython Benchmark
The performance improves a little.