[ruff] Implement quadratic-list-summation rule (RUF017)#6489
[ruff] Implement quadratic-list-summation rule (RUF017)#6489charliermarsh merged 5 commits intoastral-sh:mainfrom
ruff] Implement quadratic-list-summation rule (RUF017)#6489Conversation
b04218c to
6cb858f
Compare
PR Check ResultsEcosystem✅ ecosystem check detected no changes. BenchmarkLinuxWindows |
6cb858f to
d2a03a0
Compare
d2a03a0 to
a12a71a
Compare
a7a0a38 to
f703ae5
Compare
f703ae5 to
b6d786f
Compare
ruff] Implement quadratic-list-summation rule (RUF017)
|
Thanks! I tweaked this to use the |
|
Oh, I'm not able to push my edits. Do you mind enabling edits, @evanrittenhouse? |
|
Sounds good - enabled edits. Didn't know we are down for importing other modules - assuming that those are built-ins only, right? Are there any contexts where we wouldn't want to do that? |
|
@evanrittenhouse - Good question. We can import anything from the standard library ( |
| 6 | sum([x, y], []) | ||
| 7 | sum([[1, 2, 3], [4, 5, 6]], start=[]) | ||
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ RUF017 | ||
| 8 | sum([[1, 2, 3], [4, 5, 6]], []) |
There was a problem hiding this comment.
Is it intentional this only complains when start is passed by kwarg? If so, what's the reasoning?
There was a problem hiding this comment.
@charliermarsh I think this is from e38e8c0. Any reason we switched from arguments.find_argument("start", 1) to arguments.find_keyword("start")?
There was a problem hiding this comment.
Just my mistake, @evanrittenhouse had it right initially. I looked at the docs and saw the / for the positional-only iterable argument, and my mind immediately went to keyword-only, wasn't thinking straight. PR welcome, or I'll fix a little later.
There was a problem hiding this comment.
Thanks both! Easy fix, will open a PR
As discussed in #6489 (comment). Linking #5073
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ruff](https://beta.ruff.rs/docs) ([source](https://github.com/astral-sh/ruff), [changelog](https://github.com/astral-sh/ruff/releases)) | `==0.0.284` -> `==0.0.285` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>astral-sh/ruff (ruff)</summary> ### [`v0.0.285`](https://github.com/astral-sh/ruff/releases/tag/v0.0.285) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.0.284...v0.0.285) #### What's Changed ##### New rules - \[`flake8-pytest-style`] Implement `pytest-unittest-raises-assertion` (`PT027`) by [@​harupy](https://github.com/harupy) in [https://github.com/astral-sh/ruff/pull/6554](https://github.com/astral-sh/ruff/pull/6554) - \[`flake8-pytest-style`] Implement `pytest-duplicate-parametrize-test-cases` (`PT014`) by [@​harupy](https://github.com/harupy) in [https://github.com/astral-sh/ruff/pull/6598](https://github.com/astral-sh/ruff/pull/6598) - \[`flake8-tidy-imports`] Implement `banned-module-level-imports` (`TID253`) by [@​durumu](https://github.com/durumu) in [https://github.com/astral-sh/ruff/pull/6378](https://github.com/astral-sh/ruff/pull/6378) - \[`pylint`] Implement `bad-dunder-name` (`W3201`) (in the Ruff nursery) by [@​LaBatata101](https://github.com/LaBatata101) in [https://github.com/astral-sh/ruff/pull/6486](https://github.com/astral-sh/ruff/pull/6486) - \[`pylint`] Implement `subprocess-run-check` (`W1510`) by [@​tjkuson](https://github.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/6487](https://github.com/astral-sh/ruff/pull/6487) - \[`ruff`] Implement `quadratic-list-summation` (`RUF017`) by [@​evanrittenhouse](https://github.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/6489](https://github.com/astral-sh/ruff/pull/6489) ##### Rule changes - \[`flake8-bugbear`] Add autofix for `B006` by [@​qdegraaf](https://github.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/6131](https://github.com/astral-sh/ruff/pull/6131) - \[`flake8-pyi`] Avoid applying `PYI055` to runtime-evaluated annotations by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6457](https://github.com/astral-sh/ruff/pull/6457) - \[`flake8-self`] Allow `os._exit` accesses in `SLF001` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6490](https://github.com/astral-sh/ruff/pull/6490) - \[`perflint`] Ignore `PERF203` if `try` contains loop control flow statements by [@​evanrittenhouse](https://github.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/6536](https://github.com/astral-sh/ruff/pull/6536) - \[`pylint`] Check for invalid format type specifiers in nested replacements for `PLE1300` by [@​zanieb](https://github.com/zanieb) in [https://github.com/astral-sh/ruff/pull/6616](https://github.com/astral-sh/ruff/pull/6616) - \[`tryceratops`] Omit `NotImplementedError` from `TRY003` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6568](https://github.com/astral-sh/ruff/pull/6568) ##### Settings - Respect `.ipynb` and `.pyi` sources when linting from stdin by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6628](https://github.com/astral-sh/ruff/pull/6628) - Support glob patterns for `raises_require_match_for` and `raises_require_match_for` by [@​harupy](https://github.com/harupy) in [https://github.com/astral-sh/ruff/pull/6635](https://github.com/astral-sh/ruff/pull/6635) ##### Bug Fixes - Make `lambda-assignment` fix always-manual in class bodies by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6626](https://github.com/astral-sh/ruff/pull/6626) - Fix counting of message arguments when msg is provided as a keyword by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6456](https://github.com/astral-sh/ruff/pull/6456) - Add container types to `E721` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6469](https://github.com/astral-sh/ruff/pull/6469) - Respect scoping rules when identifying builtins by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6468](https://github.com/astral-sh/ruff/pull/6468) - Respect tab width in line-length heuristic by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6491](https://github.com/astral-sh/ruff/pull/6491) - Respect dummy-variable-rgx for unused bound exceptions by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6492](https://github.com/astral-sh/ruff/pull/6492) - Fix detection of top-level imports with newlines in `E402` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6526](https://github.com/astral-sh/ruff/pull/6526) - Allow if-expression with dual string arms in `invalid-envvar-value` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6538](https://github.com/astral-sh/ruff/pull/6538) - Add deprecated unittest assertions to PT009 by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6572](https://github.com/astral-sh/ruff/pull/6572) - Avoid unused argument rules when functions call `locals()` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6578](https://github.com/astral-sh/ruff/pull/6578) - Allow top-level `await` in Jupyter notebooks by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6607](https://github.com/astral-sh/ruff/pull/6607) - Don't detect `pandas#values` for stores, deletes, or class accesses by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6631](https://github.com/astral-sh/ruff/pull/6631) - Avoid removing parentheses in `E712` fix by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6575](https://github.com/astral-sh/ruff/pull/6575) - Skip whitespace between comments at start of file e.g. for `I002` by [@​durumu](https://github.com/durumu) in [https://github.com/astral-sh/ruff/pull/6523](https://github.com/astral-sh/ruff/pull/6523) - Add support for nested replacements inside format specifications e.g. for `PLE1300` by [@​zanieb](https://github.com/zanieb) in [https://github.com/astral-sh/ruff/pull/6616](https://github.com/astral-sh/ruff/pull/6616) ##### Playground - Shared playground links now use short URLs by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6383](https://github.com/astral-sh/ruff/pull/6383) - Fix possible JSON parse error on playground load by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6519](https://github.com/astral-sh/ruff/pull/6519) - Fix unreachable panic in playground by [@​MichaReiser](https://github.com/MichaReiser) in [https://github.com/astral-sh/ruff/pull/6623](https://github.com/astral-sh/ruff/pull/6623) ##### Performance - Improve tokenizer performance for ASCII only identifiers by [@​MichaReiser](https://github.com/MichaReiser) in [https://github.com/astral-sh/ruff/pull/6609](https://github.com/astral-sh/ruff/pull/6609) #### New Contributors - [@​magic-akari](https://github.com/magic-akari) made their first contribution in [https://github.com/astral-sh/ruff/pull/6472](https://github.com/astral-sh/ruff/pull/6472) - [@​durumu](https://github.com/durumu) made their first contribution in [https://github.com/astral-sh/ruff/pull/6378](https://github.com/astral-sh/ruff/pull/6378) - [@​jamesbraza](https://github.com/jamesbraza) made their first contribution in [https://github.com/astral-sh/ruff/pull/6520](https://github.com/astral-sh/ruff/pull/6520) - [@​takumaw](https://github.com/takumaw) made their first contribution in [https://github.com/astral-sh/ruff/pull/6533](https://github.com/astral-sh/ruff/pull/6533) - [@​noklam](https://github.com/noklam) made their first contribution in [https://github.com/astral-sh/ruff/pull/6573](https://github.com/astral-sh/ruff/pull/6573) - [@​Teraskull](https://github.com/Teraskull) made their first contribution in [https://github.com/astral-sh/ruff/pull/6605](https://github.com/astral-sh/ruff/pull/6605) **Full Changelog**: astral-sh/ruff@v0.0.284...v0.0.285 </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://developer.mend.io/github/allenporter/pyrainbird). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40My4yIiwidXBkYXRlZEluVmVyIjoiMzYuNDMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ruff](https://beta.ruff.rs/docs) ([source](https://github.com/astral-sh/ruff), [changelog](https://github.com/astral-sh/ruff/releases)) | `==0.0.284` -> `==0.0.285` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>astral-sh/ruff (ruff)</summary> ### [`v0.0.285`](https://github.com/astral-sh/ruff/releases/tag/v0.0.285) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.0.284...v0.0.285) #### What's Changed ##### New rules - \[`flake8-pytest-style`] Implement `pytest-unittest-raises-assertion` (`PT027`) by [@​harupy](https://github.com/harupy) in [https://github.com/astral-sh/ruff/pull/6554](https://github.com/astral-sh/ruff/pull/6554) - \[`flake8-pytest-style`] Implement `pytest-duplicate-parametrize-test-cases` (`PT014`) by [@​harupy](https://github.com/harupy) in [https://github.com/astral-sh/ruff/pull/6598](https://github.com/astral-sh/ruff/pull/6598) - \[`flake8-tidy-imports`] Implement `banned-module-level-imports` (`TID253`) by [@​durumu](https://github.com/durumu) in [https://github.com/astral-sh/ruff/pull/6378](https://github.com/astral-sh/ruff/pull/6378) - \[`pylint`] Implement `bad-dunder-name` (`W3201`) (in the Ruff nursery) by [@​LaBatata101](https://github.com/LaBatata101) in [https://github.com/astral-sh/ruff/pull/6486](https://github.com/astral-sh/ruff/pull/6486) - \[`pylint`] Implement `subprocess-run-check` (`W1510`) by [@​tjkuson](https://github.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/6487](https://github.com/astral-sh/ruff/pull/6487) - \[`ruff`] Implement `quadratic-list-summation` (`RUF017`) by [@​evanrittenhouse](https://github.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/6489](https://github.com/astral-sh/ruff/pull/6489) ##### Rule changes - \[`flake8-bugbear`] Add autofix for `B006` by [@​qdegraaf](https://github.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/6131](https://github.com/astral-sh/ruff/pull/6131) - \[`flake8-pyi`] Avoid applying `PYI055` to runtime-evaluated annotations by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6457](https://github.com/astral-sh/ruff/pull/6457) - \[`flake8-self`] Allow `os._exit` accesses in `SLF001` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6490](https://github.com/astral-sh/ruff/pull/6490) - \[`perflint`] Ignore `PERF203` if `try` contains loop control flow statements by [@​evanrittenhouse](https://github.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/6536](https://github.com/astral-sh/ruff/pull/6536) - \[`pylint`] Check for invalid format type specifiers in nested replacements for `PLE1300` by [@​zanieb](https://github.com/zanieb) in [https://github.com/astral-sh/ruff/pull/6616](https://github.com/astral-sh/ruff/pull/6616) - \[`tryceratops`] Omit `NotImplementedError` from `TRY003` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6568](https://github.com/astral-sh/ruff/pull/6568) ##### Settings - Respect `.ipynb` and `.pyi` sources when linting from stdin by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6628](https://github.com/astral-sh/ruff/pull/6628) - Support glob patterns for `raises_require_match_for` and `raises_require_match_for` by [@​harupy](https://github.com/harupy) in [https://github.com/astral-sh/ruff/pull/6635](https://github.com/astral-sh/ruff/pull/6635) ##### Bug Fixes - Make `lambda-assignment` fix always-manual in class bodies by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6626](https://github.com/astral-sh/ruff/pull/6626) - Fix counting of message arguments when msg is provided as a keyword by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6456](https://github.com/astral-sh/ruff/pull/6456) - Add container types to `E721` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6469](https://github.com/astral-sh/ruff/pull/6469) - Respect scoping rules when identifying builtins by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6468](https://github.com/astral-sh/ruff/pull/6468) - Respect tab width in line-length heuristic by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6491](https://github.com/astral-sh/ruff/pull/6491) - Respect dummy-variable-rgx for unused bound exceptions by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6492](https://github.com/astral-sh/ruff/pull/6492) - Fix detection of top-level imports with newlines in `E402` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6526](https://github.com/astral-sh/ruff/pull/6526) - Allow if-expression with dual string arms in `invalid-envvar-value` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6538](https://github.com/astral-sh/ruff/pull/6538) - Add deprecated unittest assertions to PT009 by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6572](https://github.com/astral-sh/ruff/pull/6572) - Avoid unused argument rules when functions call `locals()` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6578](https://github.com/astral-sh/ruff/pull/6578) - Allow top-level `await` in Jupyter notebooks by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6607](https://github.com/astral-sh/ruff/pull/6607) - Don't detect `pandas#values` for stores, deletes, or class accesses by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6631](https://github.com/astral-sh/ruff/pull/6631) - Avoid removing parentheses in `E712` fix by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6575](https://github.com/astral-sh/ruff/pull/6575) - Skip whitespace between comments at start of file e.g. for `I002` by [@​durumu](https://github.com/durumu) in [https://github.com/astral-sh/ruff/pull/6523](https://github.com/astral-sh/ruff/pull/6523) - Add support for nested replacements inside format specifications e.g. for `PLE1300` by [@​zanieb](https://github.com/zanieb) in [https://github.com/astral-sh/ruff/pull/6616](https://github.com/astral-sh/ruff/pull/6616) ##### Playground - Shared playground links now use short URLs by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6383](https://github.com/astral-sh/ruff/pull/6383) - Fix possible JSON parse error on playground load by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6519](https://github.com/astral-sh/ruff/pull/6519) - Fix unreachable panic in playground by [@​MichaReiser](https://github.com/MichaReiser) in [https://github.com/astral-sh/ruff/pull/6623](https://github.com/astral-sh/ruff/pull/6623) ##### Performance - Improve tokenizer performance for ASCII only identifiers by [@​MichaReiser](https://github.com/MichaReiser) in [https://github.com/astral-sh/ruff/pull/6609](https://github.com/astral-sh/ruff/pull/6609) #### New Contributors - [@​magic-akari](https://github.com/magic-akari) made their first contribution in [https://github.com/astral-sh/ruff/pull/6472](https://github.com/astral-sh/ruff/pull/6472) - [@​durumu](https://github.com/durumu) made their first contribution in [https://github.com/astral-sh/ruff/pull/6378](https://github.com/astral-sh/ruff/pull/6378) - [@​jamesbraza](https://github.com/jamesbraza) made their first contribution in [https://github.com/astral-sh/ruff/pull/6520](https://github.com/astral-sh/ruff/pull/6520) - [@​takumaw](https://github.com/takumaw) made their first contribution in [https://github.com/astral-sh/ruff/pull/6533](https://github.com/astral-sh/ruff/pull/6533) - [@​noklam](https://github.com/noklam) made their first contribution in [https://github.com/astral-sh/ruff/pull/6573](https://github.com/astral-sh/ruff/pull/6573) - [@​Teraskull](https://github.com/Teraskull) made their first contribution in [https://github.com/astral-sh/ruff/pull/6605](https://github.com/astral-sh/ruff/pull/6605) **Full Changelog**: astral-sh/ruff@v0.0.284...v0.0.285 </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://developer.mend.io/github/allenporter/flux-local). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40My4yIiwidXBkYXRlZEluVmVyIjoiMzYuNDMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Summary
Adds
RUF017. Closes #5073Test Plan
cargo t