feat: update C416 with dict comprehension (autofixable)#3605
feat: update C416 with dict comprehension (autofixable)#3605charliermarsh merged 7 commits intoastral-sh:mainfrom
Conversation
PR Check ResultsEcosystemℹ️ ecosystem check detected changes. (+10, -0, 0 error(s)) airflow (+7, -0)
+ airflow/api/common/experimental/get_lineage.py:50:25: C416 [*] Unnecessary `dict` comprehension (rewrite using `dict()`)
+ airflow/models/dagrun.py:281:16: C416 [*] Unnecessary `dict` comprehension (rewrite using `dict()`)
+ airflow/operators/python.py:386:37: C416 [*] Unnecessary `dict` comprehension (rewrite using `dict()`)
+ airflow/www/decorators.py:103:26: C416 [*] Unnecessary `dict` comprehension (rewrite using `dict()`)
+ docs/conf.py:410:29: C416 [*] Unnecessary `dict` comprehension (rewrite using `dict()`)
+ docs/conf.py:411:15: C416 [*] Unnecessary `dict` comprehension (rewrite using `dict()`)
+ docs/conf.py:413:39: C416 [*] Unnecessary `dict` comprehension (rewrite using `dict()`)cibuildwheel (+1, -0)
+ test/test_dependency_versions.py:48:12: C416 [*] Unnecessary `dict` comprehension (rewrite using `dict()`)zulip (+2, -0)
+ zerver/lib/onboarding.py:26:18: C416 [*] Unnecessary `dict` comprehension (rewrite using `dict()`)
+ zerver/management/commands/makemessages.py:280:27: C416 [*] Unnecessary `dict` comprehension (rewrite using `dict()`)BenchmarkLinuxWindows |
|
There are a few cases which I've missed, let me look into them. |
crates/ruff/src/rules/flake8_comprehensions/rules/unnecessary_comprehension.rs
Outdated
Show resolved
Hide resolved
crates/ruff/src/rules/flake8_comprehensions/rules/unnecessary_comprehension.rs
Outdated
Show resolved
Hide resolved
|
Thanks for doing, I gave a pass at adding it myself, but I don't have a lot of experience with RustLang or the Ruff codebase. |
I'm not sure about the merge strategy used here, so should I rebase and squash relevant commits together? |
|
Great, thanks! Will take a look today.
Yup! |
|
Thanks for this! Sorry, I missed your last question. We almost always squash-and-merge to maintain a 1:1 PR-to-commit equivalence, but GitHub does it for us, so no effort needed on your end. |
|
Thanks for your feedback and merging! I hope to contribute more as I go deep into Rust and the codebase 😄 |
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ruff](https://togithub.com/charliermarsh/ruff) | `^0.0.257` -> `^0.0.258` | [](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>charliermarsh/ruff</summary> ### [`v0.0.258`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.258) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.257...v0.0.258) <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### Rules - \[`flake8-comprehensions`] Update `C416` with dict comprehension (autofixable) by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3605](https://togithub.com/charliermarsh/ruff/pull/3605) - \[`pylint`]: Implement `assert-on-string-literal` (`W0129`) by [@​latonis](https://togithub.com/latonis) in [https://github.com/charliermarsh/ruff/pull/3610](https://togithub.com/charliermarsh/ruff/pull/3610) - \[`pyupgrade`] Convert single-argument %-style format calls by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3600](https://togithub.com/charliermarsh/ruff/pull/3600) - \[`pyupgrade`] Flag PEP 585 and PEP 604 violations in quoted annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3593](https://togithub.com/charliermarsh/ruff/pull/3593) - \[`pyupgrade`] Enable autofix for annotations within 'simple' string literals by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3657](https://togithub.com/charliermarsh/ruff/pull/3657) - \[`pyflakes`] Add autofix functionality for `F523` ([#​3613](https://togithub.com/charliermarsh/ruff/issues/3613)) by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3613](https://togithub.com/charliermarsh/ruff/pull/3613) - \[`flake8-bandit`]: Implement deny-list rules for suspicious member calls by [@​colin99d](https://togithub.com/colin99d) in [https://github.com/charliermarsh/ruff/pull/3239](https://togithub.com/charliermarsh/ruff/pull/3239) - \[`flake8-annotations`] Add autofix for `ANN204` with magic methods by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3633](https://togithub.com/charliermarsh/ruff/pull/3633) - \[`pylint`] Implement `binary-op-exception` (`PLW0711`) by [@​latonis](https://togithub.com/latonis) in [https://github.com/charliermarsh/ruff/pull/3639](https://togithub.com/charliermarsh/ruff/pull/3639) - \[`flake8-django`]: Implement rule DJ012 by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3659](https://togithub.com/charliermarsh/ruff/pull/3659) ##### Bug Fixes - Check exclusions prior to resolving `pyproject.toml` files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3588](https://togithub.com/charliermarsh/ruff/pull/3588) - Fix D417 false positive by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3596](https://togithub.com/charliermarsh/ruff/pull/3596) - Avoid removing comment hash for noqa's with trailing content by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3589](https://togithub.com/charliermarsh/ruff/pull/3589) - Avoid panics for implicitly-concatenated docstrings by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3584](https://togithub.com/charliermarsh/ruff/pull/3584) - Fix infinite loop due to rules `D207` & `W605` by [@​vlindhol](https://togithub.com/vlindhol) in [https://github.com/charliermarsh/ruff/pull/3609](https://togithub.com/charliermarsh/ruff/pull/3609) - Avoid trimming escaped whitespace in D210 by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3635](https://togithub.com/charliermarsh/ruff/pull/3635) - Handle `UP032` autofix with adjacent keywords by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3636](https://togithub.com/charliermarsh/ruff/pull/3636) - Consider same-site fixes to be overlapping by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3638](https://togithub.com/charliermarsh/ruff/pull/3638) - Avoid `RUF007` fixes for more than two arguments by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3654](https://togithub.com/charliermarsh/ruff/pull/3654) - Allow `pairwise` diagnostics for `zip(..., strict=True)` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3669](https://togithub.com/charliermarsh/ruff/pull/3669) - isort: fix bad interaction between `force-sort-within-sections` and `force-to-top` by [@​bluetech](https://togithub.com/bluetech) in [https://github.com/charliermarsh/ruff/pull/3645](https://togithub.com/charliermarsh/ruff/pull/3645) - Gracefully handle lint panics by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3509](https://togithub.com/charliermarsh/ruff/pull/3509) - Fix TRY300 false positive by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3634](https://togithub.com/charliermarsh/ruff/pull/3634) - Avoid raising PEP 604 errors with forward-referenced members by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3640](https://togithub.com/charliermarsh/ruff/pull/3640) - Avoid attempting infinite `open` fix with re-bound builtin by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3650](https://togithub.com/charliermarsh/ruff/pull/3650) - Check indentation level when executing E231 by [@​kyoto7250](https://togithub.com/kyoto7250) in [https://github.com/charliermarsh/ruff/pull/3668](https://togithub.com/charliermarsh/ruff/pull/3668) - Flag, but don't fix, unused imports (`F401`) in `ModuleNotFoundError` blocks by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3658](https://togithub.com/charliermarsh/ruff/pull/3658) #### New Contributors - [@​Rogdham](https://togithub.com/Rogdham) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3607](https://togithub.com/charliermarsh/ruff/pull/3607) - [@​vlindhol](https://togithub.com/vlindhol) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3609](https://togithub.com/charliermarsh/ruff/pull/3609) - [@​dhruvmanila](https://togithub.com/dhruvmanila) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3605](https://togithub.com/charliermarsh/ruff/pull/3605) - [@​luke396](https://togithub.com/luke396) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3604](https://togithub.com/charliermarsh/ruff/pull/3604) - [@​fuziontech](https://togithub.com/fuziontech) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3641](https://togithub.com/charliermarsh/ruff/pull/3641) **Full Changelog**: astral-sh/ruff@v0.0.257...v0.0.258 </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:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNy4xIiwidXBkYXRlZEluVmVyIjoiMzUuMTcuMSJ9--> Signed-off-by: Renovate Bot <bot@renovateapp.com> 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://togithub.com/charliermarsh/ruff) | `==0.0.257` -> `==0.0.259` | [](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>charliermarsh/ruff</summary> ### [`v0.0.259`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.259) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.258...v0.0.259) <!-- Release notes generated using configuration in .github/release.yml at main --> #### Summary Follow-up release to `v0.0.258` to fix an issue related to rule resolution via `select` and `ignore`. #### What's Changed ##### Bug Fixes - Fix RuleSet.remove by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3685](https://togithub.com/charliermarsh/ruff/pull/3685) - Respect all rule-exemption sources when suppressing parser errors by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3665](https://togithub.com/charliermarsh/ruff/pull/3665) - Avoid nested loops in `missing_whitespace` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3688](https://togithub.com/charliermarsh/ruff/pull/3688) **Full Changelog**: astral-sh/ruff@v0.0.258...v0.0.259 ### [`v0.0.258`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.258) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.257...v0.0.258) <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### Rules - \[`flake8-comprehensions`] Update `C416` with dict comprehension (autofixable) by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3605](https://togithub.com/charliermarsh/ruff/pull/3605) - \[`pylint`]: Implement `assert-on-string-literal` (`W0129`) by [@​latonis](https://togithub.com/latonis) in [https://github.com/charliermarsh/ruff/pull/3610](https://togithub.com/charliermarsh/ruff/pull/3610) - \[`pyupgrade`] Convert single-argument %-style format calls by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3600](https://togithub.com/charliermarsh/ruff/pull/3600) - \[`pyupgrade`] Flag PEP 585 and PEP 604 violations in quoted annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3593](https://togithub.com/charliermarsh/ruff/pull/3593) - \[`pyupgrade`] Enable autofix for annotations within 'simple' string literals by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3657](https://togithub.com/charliermarsh/ruff/pull/3657) - \[`pyflakes`] Add autofix functionality for `F523` ([#​3613](https://togithub.com/charliermarsh/ruff/issues/3613)) by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3613](https://togithub.com/charliermarsh/ruff/pull/3613) - \[`flake8-bandit`]: Implement deny-list rules for suspicious member calls by [@​colin99d](https://togithub.com/colin99d) in [https://github.com/charliermarsh/ruff/pull/3239](https://togithub.com/charliermarsh/ruff/pull/3239) - \[`flake8-annotations`] Add autofix for `ANN204` with magic methods by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3633](https://togithub.com/charliermarsh/ruff/pull/3633) - \[`pylint`] Implement `binary-op-exception` (`PLW0711`) by [@​latonis](https://togithub.com/latonis) in [https://github.com/charliermarsh/ruff/pull/3639](https://togithub.com/charliermarsh/ruff/pull/3639) - \[`flake8-django`]: Implement rule DJ012 by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3659](https://togithub.com/charliermarsh/ruff/pull/3659) ##### Bug Fixes - Check exclusions prior to resolving `pyproject.toml` files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3588](https://togithub.com/charliermarsh/ruff/pull/3588) - Fix D417 false positive by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3596](https://togithub.com/charliermarsh/ruff/pull/3596) - Avoid removing comment hash for noqa's with trailing content by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3589](https://togithub.com/charliermarsh/ruff/pull/3589) - Avoid panics for implicitly-concatenated docstrings by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3584](https://togithub.com/charliermarsh/ruff/pull/3584) - Fix infinite loop due to rules `D207` & `W605` by [@​vlindhol](https://togithub.com/vlindhol) in [https://github.com/charliermarsh/ruff/pull/3609](https://togithub.com/charliermarsh/ruff/pull/3609) - Avoid trimming escaped whitespace in D210 by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3635](https://togithub.com/charliermarsh/ruff/pull/3635) - Handle `UP032` autofix with adjacent keywords by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3636](https://togithub.com/charliermarsh/ruff/pull/3636) - Consider same-site fixes to be overlapping by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3638](https://togithub.com/charliermarsh/ruff/pull/3638) - Avoid `RUF007` fixes for more than two arguments by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3654](https://togithub.com/charliermarsh/ruff/pull/3654) - Allow `pairwise` diagnostics for `zip(..., strict=True)` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3669](https://togithub.com/charliermarsh/ruff/pull/3669) - isort: fix bad interaction between `force-sort-within-sections` and `force-to-top` by [@​bluetech](https://togithub.com/bluetech) in [https://github.com/charliermarsh/ruff/pull/3645](https://togithub.com/charliermarsh/ruff/pull/3645) - Gracefully handle lint panics by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3509](https://togithub.com/charliermarsh/ruff/pull/3509) - Fix TRY300 false positive by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3634](https://togithub.com/charliermarsh/ruff/pull/3634) - Avoid raising PEP 604 errors with forward-referenced members by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3640](https://togithub.com/charliermarsh/ruff/pull/3640) - Avoid attempting infinite `open` fix with re-bound builtin by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3650](https://togithub.com/charliermarsh/ruff/pull/3650) - Check indentation level when executing E231 by [@​kyoto7250](https://togithub.com/kyoto7250) in [https://github.com/charliermarsh/ruff/pull/3668](https://togithub.com/charliermarsh/ruff/pull/3668) - Flag, but don't fix, unused imports (`F401`) in `ModuleNotFoundError` blocks by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3658](https://togithub.com/charliermarsh/ruff/pull/3658) #### New Contributors - [@​Rogdham](https://togithub.com/Rogdham) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3607](https://togithub.com/charliermarsh/ruff/pull/3607) - [@​vlindhol](https://togithub.com/vlindhol) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3609](https://togithub.com/charliermarsh/ruff/pull/3609) - [@​dhruvmanila](https://togithub.com/dhruvmanila) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3605](https://togithub.com/charliermarsh/ruff/pull/3605) - [@​luke396](https://togithub.com/luke396) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3604](https://togithub.com/charliermarsh/ruff/pull/3604) - [@​fuziontech](https://togithub.com/fuziontech) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3641](https://togithub.com/charliermarsh/ruff/pull/3641) **Full Changelog**: astral-sh/ruff@v0.0.257...v0.0.258 </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:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNC4yIiwidXBkYXRlZEluVmVyIjoiMzUuMTQuMiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Update C416 with dict comprehensions which is auto-fixable.
This required changing the function signature ofLook at review commentsunnecessary_comprehensionto take a vector of elements as a dict comprehension has 2 of them (key, value).resolves: #3598