Skip to content

[pylint] Fix PLW3301 auto-fix with generators#4412

Merged
charliermarsh merged 2 commits intoastral-sh:mainfrom
JonathanPlasse:fix-plw3301-auto-fix-with-generators
May 13, 2023
Merged

[pylint] Fix PLW3301 auto-fix with generators#4412
charliermarsh merged 2 commits intoastral-sh:mainfrom
JonathanPlasse:fix-plw3301-auto-fix-with-generators

Conversation

@JonathanPlasse
Copy link
Contributor

}
}
new_args.push(arg.clone());
let new_arg = if arg.is_generator_exp_expr() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is quite sufficient, since max(1, max(a)) will still be flagged, where a could be a generator. In fact, I think a has to be an iterable, so max(1, a) will fail regardless?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed, a single min/max argument has to be iterable according to typeshed.

23 23 | # Handle generator expressions.
24 24 | min(1, min(i for i in range(10)))
25 |-max(1, max(i for i in range(10)))
25 |+max(1, *(i for i in range(10)))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this eagerly evaluate the generator?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This code

def fn1():
    for i in range(10):
        print(i)
        yield i

def fn2():
    print('fn2')
    return 1

max(1, *fn1(), fn2())

prints this

0
1
2
3
4
5
6
7
8
9
fn2

It is eager otherwise, fn2 would be printed first.

@github-actions
Copy link
Contributor

github-actions bot commented May 13, 2023

PR Check Results

Ecosystem

✅ ecosystem check detected no changes.

Benchmark

Linux

group                                      main                                   pr
-----                                      ----                                   --
linter/all-rules/large/dataset.py          1.01     14.6±0.01ms     2.8 MB/sec    1.00     14.5±0.05ms     2.8 MB/sec
linter/all-rules/numpy/ctypeslib.py        1.00      3.6±0.01ms     4.7 MB/sec    1.00      3.6±0.01ms     4.7 MB/sec
linter/all-rules/numpy/globals.py          1.01    363.5±1.56µs     8.1 MB/sec    1.00    359.5±1.21µs     8.2 MB/sec
linter/all-rules/pydantic/types.py         1.01      6.1±0.01ms     4.2 MB/sec    1.00      6.1±0.01ms     4.2 MB/sec
linter/default-rules/large/dataset.py      1.01      7.3±0.01ms     5.6 MB/sec    1.00      7.2±0.01ms     5.6 MB/sec
linter/default-rules/numpy/ctypeslib.py    1.02   1536.1±2.50µs    10.8 MB/sec    1.00   1504.8±5.56µs    11.1 MB/sec
linter/default-rules/numpy/globals.py      1.01    165.0±0.26µs    17.9 MB/sec    1.00    162.7±0.54µs    18.1 MB/sec
linter/default-rules/pydantic/types.py     1.01      3.3±0.01ms     7.8 MB/sec    1.00      3.2±0.01ms     7.8 MB/sec
parser/large/dataset.py                    1.03      6.0±0.01ms     6.8 MB/sec    1.00      5.8±0.00ms     7.0 MB/sec
parser/numpy/ctypeslib.py                  1.04   1168.6±0.65µs    14.2 MB/sec    1.00   1125.9±1.40µs    14.8 MB/sec
parser/numpy/globals.py                    1.04    119.8±0.66µs    24.6 MB/sec    1.00    115.1±0.33µs    25.6 MB/sec
parser/pydantic/types.py                   1.04      2.6±0.00ms    10.0 MB/sec    1.00      2.5±0.00ms    10.3 MB/sec

Windows

group                                      main                                    pr
-----                                      ----                                    --
linter/all-rules/large/dataset.py          1.00     21.4±0.81ms  1947.5 KB/sec     1.00     21.5±0.91ms  1938.4 KB/sec
linter/all-rules/numpy/ctypeslib.py        1.02      5.6±0.28ms     3.0 MB/sec     1.00      5.5±0.25ms     3.0 MB/sec
linter/all-rules/numpy/globals.py          1.00   621.2±29.08µs     4.7 MB/sec     1.05   651.2±43.31µs     4.5 MB/sec
linter/all-rules/pydantic/types.py         1.00      8.9±0.38ms     2.9 MB/sec     1.01      9.0±0.39ms     2.8 MB/sec
linter/default-rules/large/dataset.py      1.00     10.0±0.36ms     4.1 MB/sec     1.04     10.4±0.37ms     3.9 MB/sec
linter/default-rules/numpy/ctypeslib.py    1.00      2.2±0.09ms     7.7 MB/sec     1.01      2.2±0.11ms     7.6 MB/sec
linter/default-rules/numpy/globals.py      1.00   245.7±13.30µs    12.0 MB/sec     1.01   247.6±15.86µs    11.9 MB/sec
linter/default-rules/pydantic/types.py     1.00      4.6±0.18ms     5.6 MB/sec     1.01      4.6±0.23ms     5.5 MB/sec
parser/large/dataset.py                    1.00      8.5±0.27ms     4.8 MB/sec     1.02      8.7±0.29ms     4.7 MB/sec
parser/numpy/ctypeslib.py                  1.02  1641.6±112.51µs    10.1 MB/sec    1.00  1614.5±70.90µs    10.3 MB/sec
parser/numpy/globals.py                    1.05   170.9±14.13µs    17.3 MB/sec     1.00    163.1±9.23µs    18.1 MB/sec
parser/pydantic/types.py                   1.00      3.7±0.17ms     7.0 MB/sec     1.00      3.7±0.24ms     7.0 MB/sec

@charliermarsh charliermarsh changed the title Fix PLW3301 auto-fix with generators [pylint] Fix PLW3301 auto-fix with generators May 13, 2023
@charliermarsh charliermarsh merged commit a0258f2 into astral-sh:main May 13, 2023
@charliermarsh charliermarsh added the rule Implementing or modifying a lint rule label May 13, 2023
@JonathanPlasse JonathanPlasse deleted the fix-plw3301-auto-fix-with-generators branch May 13, 2023 15:25
renovate bot referenced this pull request in ixm-one/pytest-cmake-presets May 19, 2023
[![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)
([changelog](https://togithub.com/charliermarsh/ruff/releases)) |
`^0.0.267` -> `^0.0.269` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.269/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.269/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.269/compatibility-slim/0.0.267)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.269/confidence-slim/0.0.267)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>charliermarsh/ruff</summary>

###
[`v0.0.269`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.269)

[Compare
Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.267...v0.0.269)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

(This is a rerelease of `v0.0.268`, which didn't make it to PyPI due to
user error. As such, the release notes are copied below.)

##### `pycodestyle`

This release includes optimized implementations of a large portion of
`pycodestyle`, for those that use Ruff without an autoformatter.

In this initial release, the rules are being introduced under a
"nursery" flag, which requires that users explicitly select them (e.g.,
`select = ["E111"]`); in other words, these rules are not yet enabled
via `select = ["E"]`.

If you're interested in testing the `pycodestyle` rules, you can enable
them via:

```toml
select = [
    "E111", "E112", "E113", "E114", "E115", "E116", "E117",
    "E201", "E202", "E203", "E211", "E221", "E222", "E223",
    "E224", "E225", "E226", "E227", "E228", "E231", "E251",
    "E252", "E261", "E262", "E265", "E266", "E271", "E272",
    "E273", "E274", "E275",
]
```

These rules will be included as part of the `E` category in a future
release.

##### Breaking Changes

- \[`pyupgrade`] Remove `keep-runtime-typing` setting by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4427](https://togithub.com/charliermarsh/ruff/pull/4427)

##### Rules

- \[`pylint`] Add `duplicate-bases` rule by
[@&#8203;alonme](https://togithub.com/alonme) in
[https://github.com/charliermarsh/ruff/pull/4411](https://togithub.com/charliermarsh/ruff/pull/4411)
- \[`pylint`] Fix `PLW3301` auto-fix with generators by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4412](https://togithub.com/charliermarsh/ruff/pull/4412)
- \[`flake8-async`] Implement flake8-async plugin by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4432](https://togithub.com/charliermarsh/ruff/pull/4432)
- \[`pyupgrade`] Enable automatic rewrites of `typing.Deque` and
`typing.DefaultDict` by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4420](https://togithub.com/charliermarsh/ruff/pull/4420)
- \[`flake8-pyi`] Implement `unannotated-assignment-in-stub` (`PY052`)
by [@&#8203;sladyn98](https://togithub.com/sladyn98) in
[https://github.com/charliermarsh/ruff/pull/4293](https://togithub.com/charliermarsh/ruff/pull/4293)
- \[`tryceratops`] Implement TRY302 - `raise` after `except` by
[@&#8203;john-h-k](https://togithub.com/john-h-k) in
[https://github.com/charliermarsh/ruff/pull/4461](https://togithub.com/charliermarsh/ruff/pull/4461)
- \[`flake8-bandit`] Improve SQL injection detection logic (`S608`) by
[@&#8203;scop](https://togithub.com/scop) in
[https://github.com/charliermarsh/ruff/pull/4499](https://togithub.com/charliermarsh/ruff/pull/4499)
- \[`flake8-todos`] Implement `flake8_todos` by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/3921](https://togithub.com/charliermarsh/ruff/pull/3921)
- \[`flake8-future-annotations`] Implement `flake8-future-annotations`
FA100 by [@&#8203;TylerYep](https://togithub.com/TylerYep) in
[https://github.com/charliermarsh/ruff/pull/3979](https://togithub.com/charliermarsh/ruff/pull/3979)
- Enable `pycodestyle` rules by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3689](https://togithub.com/charliermarsh/ruff/pull/3689)
- Enable `pycodestyle` rules under new "nursery" category by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4407](https://togithub.com/charliermarsh/ruff/pull/4407)

##### Settings

- Merge subsettings when extending configurations by
[@&#8203;bendoerry](https://togithub.com/bendoerry) in
[https://github.com/charliermarsh/ruff/pull/4431](https://togithub.com/charliermarsh/ruff/pull/4431)

##### Bug Fixes

- Extend multi-line noqa directives to start-of-line by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4490](https://togithub.com/charliermarsh/ruff/pull/4490)
- Fix scoping of comprehensions within classes by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4494](https://togithub.com/charliermarsh/ruff/pull/4494)
- Enable autofix for split-assertions at top level by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4405](https://togithub.com/charliermarsh/ruff/pull/4405)
- Ignore ANN401 for overridden methods by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4409](https://togithub.com/charliermarsh/ruff/pull/4409)
- Fix `RUF010` autofix within f-strings by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4423](https://togithub.com/charliermarsh/ruff/pull/4423)
- Update C419 to be a suggested fix by
[@&#8203;madkinsz](https://togithub.com/madkinsz) in
[https://github.com/charliermarsh/ruff/pull/4424](https://togithub.com/charliermarsh/ruff/pull/4424)
- Fix expected-indentation errors with end-of-line comments by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4438](https://togithub.com/charliermarsh/ruff/pull/4438)
- Emit non-logical newlines for "empty" lines by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4444](https://togithub.com/charliermarsh/ruff/pull/4444)
- Avoid emitting empty logical lines by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4452](https://togithub.com/charliermarsh/ruff/pull/4452)
- Avoid flagging missing whitespace for decorators by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4454](https://togithub.com/charliermarsh/ruff/pull/4454)
- Remove special-casing for whitespace-around-@&#8203; by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4458](https://togithub.com/charliermarsh/ruff/pull/4458)
- Avoid triggering `pd#at` and friends on non-subscripts by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4474](https://togithub.com/charliermarsh/ruff/pull/4474)
- Include precise tokens for extraneous-whitespace diagnostics by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4471](https://togithub.com/charliermarsh/ruff/pull/4471)
- Allow shebang comments at start-of-file by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4473](https://togithub.com/charliermarsh/ruff/pull/4473)
- Bring pycodestyle rules into full compatibility (on SciPy) by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4472](https://togithub.com/charliermarsh/ruff/pull/4472)
- Invert quote-style when generating code within f-strings by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4487](https://togithub.com/charliermarsh/ruff/pull/4487)
- Fix COM812 false positive in string subscript by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4493](https://togithub.com/charliermarsh/ruff/pull/4493)
- Overhaul sdist handling by
[@&#8203;konstin](https://togithub.com/konstin) in
[https://github.com/charliermarsh/ruff/pull/4439](https://togithub.com/charliermarsh/ruff/pull/4439)

#### New Contributors

- [@&#8203;TylerYep](https://togithub.com/TylerYep) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/3979](https://togithub.com/charliermarsh/ruff/pull/3979)
- [@&#8203;yanksyoon](https://togithub.com/yanksyoon) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4428](https://togithub.com/charliermarsh/ruff/pull/4428)
- [@&#8203;bendoerry](https://togithub.com/bendoerry) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4431](https://togithub.com/charliermarsh/ruff/pull/4431)
- [@&#8203;qdegraaf](https://togithub.com/qdegraaf) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4432](https://togithub.com/charliermarsh/ruff/pull/4432)
- [@&#8203;jameslamb](https://togithub.com/jameslamb) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4446](https://togithub.com/charliermarsh/ruff/pull/4446)
- [@&#8203;john-h-k](https://togithub.com/john-h-k) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4461](https://togithub.com/charliermarsh/ruff/pull/4461)

**Full Changelog**:
astral-sh/ruff@v0.0.267...v0.0.269

</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:eyJjcmVhdGVkSW5WZXIiOiIzNS45NS4xIiwidXBkYXRlZEluVmVyIjoiMzUuOTUuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Signed-off-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in allenporter/pyrainbird May 20, 2023
[![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)
([changelog](https://togithub.com/charliermarsh/ruff/releases)) |
`==0.0.267` -> `==0.0.269` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.269/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.269/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.269/compatibility-slim/0.0.267)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.269/confidence-slim/0.0.267)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>charliermarsh/ruff</summary>

###
[`v0.0.269`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.269)

[Compare
Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.267...v0.0.269)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

(This is a rerelease of `v0.0.268`, which didn't make it to PyPI due to
user error. As such, the release notes are copied below.)

##### `pycodestyle`

This release includes optimized implementations of a large portion of
`pycodestyle`, for those that use Ruff without an autoformatter.

In this initial release, the rules are being introduced under a
"nursery" flag, which requires that users explicitly select them (e.g.,
`select = ["E111"]`); in other words, these rules are not yet enabled
via `select = ["E"]`.

If you're interested in testing the `pycodestyle` rules, you can enable
them via:

```toml
select = [
    "E111", "E112", "E113", "E114", "E115", "E116", "E117",
    "E201", "E202", "E203", "E211", "E221", "E222", "E223",
    "E224", "E225", "E226", "E227", "E228", "E231", "E251",
    "E252", "E261", "E262", "E265", "E266", "E271", "E272",
    "E273", "E274", "E275",
]
```

These rules will be included as part of the `E` category in a future
release.

##### Breaking Changes

- \[`pyupgrade`] Remove `keep-runtime-typing` setting by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4427](https://togithub.com/charliermarsh/ruff/pull/4427)

##### Rules

- \[`pylint`] Add `duplicate-bases` rule by
[@&#8203;alonme](https://togithub.com/alonme) in
[https://github.com/charliermarsh/ruff/pull/4411](https://togithub.com/charliermarsh/ruff/pull/4411)
- \[`pylint`] Fix `PLW3301` auto-fix with generators by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4412](https://togithub.com/charliermarsh/ruff/pull/4412)
- \[`flake8-async`] Implement flake8-async plugin by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4432](https://togithub.com/charliermarsh/ruff/pull/4432)
- \[`pyupgrade`] Enable automatic rewrites of `typing.Deque` and
`typing.DefaultDict` by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4420](https://togithub.com/charliermarsh/ruff/pull/4420)
- \[`flake8-pyi`] Implement `unannotated-assignment-in-stub` (`PY052`)
by [@&#8203;sladyn98](https://togithub.com/sladyn98) in
[https://github.com/charliermarsh/ruff/pull/4293](https://togithub.com/charliermarsh/ruff/pull/4293)
- \[`tryceratops`] Implement TRY302 - `raise` after `except` by
[@&#8203;john-h-k](https://togithub.com/john-h-k) in
[https://github.com/charliermarsh/ruff/pull/4461](https://togithub.com/charliermarsh/ruff/pull/4461)
- \[`flake8-bandit`] Improve SQL injection detection logic (`S608`) by
[@&#8203;scop](https://togithub.com/scop) in
[https://github.com/charliermarsh/ruff/pull/4499](https://togithub.com/charliermarsh/ruff/pull/4499)
- \[`flake8-todos`] Implement `flake8_todos` by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/3921](https://togithub.com/charliermarsh/ruff/pull/3921)
- \[`flake8-future-annotations`] Implement `flake8-future-annotations`
FA100 by [@&#8203;TylerYep](https://togithub.com/TylerYep) in
[https://github.com/charliermarsh/ruff/pull/3979](https://togithub.com/charliermarsh/ruff/pull/3979)
- Enable `pycodestyle` rules by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3689](https://togithub.com/charliermarsh/ruff/pull/3689)
- Enable `pycodestyle` rules under new "nursery" category by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4407](https://togithub.com/charliermarsh/ruff/pull/4407)

##### Settings

- Merge subsettings when extending configurations by
[@&#8203;bendoerry](https://togithub.com/bendoerry) in
[https://github.com/charliermarsh/ruff/pull/4431](https://togithub.com/charliermarsh/ruff/pull/4431)

##### Bug Fixes

- Extend multi-line noqa directives to start-of-line by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4490](https://togithub.com/charliermarsh/ruff/pull/4490)
- Fix scoping of comprehensions within classes by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4494](https://togithub.com/charliermarsh/ruff/pull/4494)
- Enable autofix for split-assertions at top level by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4405](https://togithub.com/charliermarsh/ruff/pull/4405)
- Ignore ANN401 for overridden methods by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4409](https://togithub.com/charliermarsh/ruff/pull/4409)
- Fix `RUF010` autofix within f-strings by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4423](https://togithub.com/charliermarsh/ruff/pull/4423)
- Update C419 to be a suggested fix by
[@&#8203;madkinsz](https://togithub.com/madkinsz) in
[https://github.com/charliermarsh/ruff/pull/4424](https://togithub.com/charliermarsh/ruff/pull/4424)
- Fix expected-indentation errors with end-of-line comments by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4438](https://togithub.com/charliermarsh/ruff/pull/4438)
- Emit non-logical newlines for "empty" lines by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4444](https://togithub.com/charliermarsh/ruff/pull/4444)
- Avoid emitting empty logical lines by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4452](https://togithub.com/charliermarsh/ruff/pull/4452)
- Avoid flagging missing whitespace for decorators by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4454](https://togithub.com/charliermarsh/ruff/pull/4454)
- Remove special-casing for whitespace-around-@&#8203; by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4458](https://togithub.com/charliermarsh/ruff/pull/4458)
- Avoid triggering `pd#at` and friends on non-subscripts by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4474](https://togithub.com/charliermarsh/ruff/pull/4474)
- Include precise tokens for extraneous-whitespace diagnostics by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4471](https://togithub.com/charliermarsh/ruff/pull/4471)
- Allow shebang comments at start-of-file by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4473](https://togithub.com/charliermarsh/ruff/pull/4473)
- Bring pycodestyle rules into full compatibility (on SciPy) by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4472](https://togithub.com/charliermarsh/ruff/pull/4472)
- Invert quote-style when generating code within f-strings by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4487](https://togithub.com/charliermarsh/ruff/pull/4487)
- Fix COM812 false positive in string subscript by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4493](https://togithub.com/charliermarsh/ruff/pull/4493)
- Overhaul sdist handling by
[@&#8203;konstin](https://togithub.com/konstin) in
[https://github.com/charliermarsh/ruff/pull/4439](https://togithub.com/charliermarsh/ruff/pull/4439)

#### New Contributors

- [@&#8203;TylerYep](https://togithub.com/TylerYep) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/3979](https://togithub.com/charliermarsh/ruff/pull/3979)
- [@&#8203;yanksyoon](https://togithub.com/yanksyoon) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4428](https://togithub.com/charliermarsh/ruff/pull/4428)
- [@&#8203;bendoerry](https://togithub.com/bendoerry) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4431](https://togithub.com/charliermarsh/ruff/pull/4431)
- [@&#8203;qdegraaf](https://togithub.com/qdegraaf) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4432](https://togithub.com/charliermarsh/ruff/pull/4432)
- [@&#8203;jameslamb](https://togithub.com/jameslamb) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4446](https://togithub.com/charliermarsh/ruff/pull/4446)
- [@&#8203;john-h-k](https://togithub.com/john-h-k) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4461](https://togithub.com/charliermarsh/ruff/pull/4461)

**Full Changelog**:
astral-sh/ruff@v0.0.267...v0.0.269

</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:eyJjcmVhdGVkSW5WZXIiOiIzNS45NS4xIiwidXBkYXRlZEluVmVyIjoiMzUuOTUuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in allenporter/flux-local May 20, 2023
[![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)
([changelog](https://togithub.com/charliermarsh/ruff/releases)) |
`==0.0.267` -> `==0.0.269` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.269/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.269/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.269/compatibility-slim/0.0.267)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.269/confidence-slim/0.0.267)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>charliermarsh/ruff</summary>

###
[`v0.0.269`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.269)

[Compare
Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.267...v0.0.269)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

(This is a rerelease of `v0.0.268`, which didn't make it to PyPI due to
user error. As such, the release notes are copied below.)

##### `pycodestyle`

This release includes optimized implementations of a large portion of
`pycodestyle`, for those that use Ruff without an autoformatter.

In this initial release, the rules are being introduced under a
"nursery" flag, which requires that users explicitly select them (e.g.,
`select = ["E111"]`); in other words, these rules are not yet enabled
via `select = ["E"]`.

If you're interested in testing the `pycodestyle` rules, you can enable
them via:

```toml
select = [
    "E111", "E112", "E113", "E114", "E115", "E116", "E117",
    "E201", "E202", "E203", "E211", "E221", "E222", "E223",
    "E224", "E225", "E226", "E227", "E228", "E231", "E251",
    "E252", "E261", "E262", "E265", "E266", "E271", "E272",
    "E273", "E274", "E275",
]
```

These rules will be included as part of the `E` category in a future
release.

##### Breaking Changes

- \[`pyupgrade`] Remove `keep-runtime-typing` setting by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4427](https://togithub.com/charliermarsh/ruff/pull/4427)

##### Rules

- \[`pylint`] Add `duplicate-bases` rule by
[@&#8203;alonme](https://togithub.com/alonme) in
[https://github.com/charliermarsh/ruff/pull/4411](https://togithub.com/charliermarsh/ruff/pull/4411)
- \[`pylint`] Fix `PLW3301` auto-fix with generators by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4412](https://togithub.com/charliermarsh/ruff/pull/4412)
- \[`flake8-async`] Implement flake8-async plugin by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4432](https://togithub.com/charliermarsh/ruff/pull/4432)
- \[`pyupgrade`] Enable automatic rewrites of `typing.Deque` and
`typing.DefaultDict` by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4420](https://togithub.com/charliermarsh/ruff/pull/4420)
- \[`flake8-pyi`] Implement `unannotated-assignment-in-stub` (`PY052`)
by [@&#8203;sladyn98](https://togithub.com/sladyn98) in
[https://github.com/charliermarsh/ruff/pull/4293](https://togithub.com/charliermarsh/ruff/pull/4293)
- \[`tryceratops`] Implement TRY302 - `raise` after `except` by
[@&#8203;john-h-k](https://togithub.com/john-h-k) in
[https://github.com/charliermarsh/ruff/pull/4461](https://togithub.com/charliermarsh/ruff/pull/4461)
- \[`flake8-bandit`] Improve SQL injection detection logic (`S608`) by
[@&#8203;scop](https://togithub.com/scop) in
[https://github.com/charliermarsh/ruff/pull/4499](https://togithub.com/charliermarsh/ruff/pull/4499)
- \[`flake8-todos`] Implement `flake8_todos` by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/3921](https://togithub.com/charliermarsh/ruff/pull/3921)
- \[`flake8-future-annotations`] Implement `flake8-future-annotations`
FA100 by [@&#8203;TylerYep](https://togithub.com/TylerYep) in
[https://github.com/charliermarsh/ruff/pull/3979](https://togithub.com/charliermarsh/ruff/pull/3979)
- Enable `pycodestyle` rules by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3689](https://togithub.com/charliermarsh/ruff/pull/3689)
- Enable `pycodestyle` rules under new "nursery" category by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4407](https://togithub.com/charliermarsh/ruff/pull/4407)

##### Settings

- Merge subsettings when extending configurations by
[@&#8203;bendoerry](https://togithub.com/bendoerry) in
[https://github.com/charliermarsh/ruff/pull/4431](https://togithub.com/charliermarsh/ruff/pull/4431)

##### Bug Fixes

- Extend multi-line noqa directives to start-of-line by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4490](https://togithub.com/charliermarsh/ruff/pull/4490)
- Fix scoping of comprehensions within classes by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4494](https://togithub.com/charliermarsh/ruff/pull/4494)
- Enable autofix for split-assertions at top level by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4405](https://togithub.com/charliermarsh/ruff/pull/4405)
- Ignore ANN401 for overridden methods by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4409](https://togithub.com/charliermarsh/ruff/pull/4409)
- Fix `RUF010` autofix within f-strings by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4423](https://togithub.com/charliermarsh/ruff/pull/4423)
- Update C419 to be a suggested fix by
[@&#8203;madkinsz](https://togithub.com/madkinsz) in
[https://github.com/charliermarsh/ruff/pull/4424](https://togithub.com/charliermarsh/ruff/pull/4424)
- Fix expected-indentation errors with end-of-line comments by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4438](https://togithub.com/charliermarsh/ruff/pull/4438)
- Emit non-logical newlines for "empty" lines by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4444](https://togithub.com/charliermarsh/ruff/pull/4444)
- Avoid emitting empty logical lines by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4452](https://togithub.com/charliermarsh/ruff/pull/4452)
- Avoid flagging missing whitespace for decorators by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4454](https://togithub.com/charliermarsh/ruff/pull/4454)
- Remove special-casing for whitespace-around-@&#8203; by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4458](https://togithub.com/charliermarsh/ruff/pull/4458)
- Avoid triggering `pd#at` and friends on non-subscripts by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4474](https://togithub.com/charliermarsh/ruff/pull/4474)
- Include precise tokens for extraneous-whitespace diagnostics by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4471](https://togithub.com/charliermarsh/ruff/pull/4471)
- Allow shebang comments at start-of-file by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4473](https://togithub.com/charliermarsh/ruff/pull/4473)
- Bring pycodestyle rules into full compatibility (on SciPy) by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4472](https://togithub.com/charliermarsh/ruff/pull/4472)
- Invert quote-style when generating code within f-strings by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4487](https://togithub.com/charliermarsh/ruff/pull/4487)
- Fix COM812 false positive in string subscript by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4493](https://togithub.com/charliermarsh/ruff/pull/4493)
- Overhaul sdist handling by
[@&#8203;konstin](https://togithub.com/konstin) in
[https://github.com/charliermarsh/ruff/pull/4439](https://togithub.com/charliermarsh/ruff/pull/4439)

#### New Contributors

- [@&#8203;TylerYep](https://togithub.com/TylerYep) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/3979](https://togithub.com/charliermarsh/ruff/pull/3979)
- [@&#8203;yanksyoon](https://togithub.com/yanksyoon) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4428](https://togithub.com/charliermarsh/ruff/pull/4428)
- [@&#8203;bendoerry](https://togithub.com/bendoerry) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4431](https://togithub.com/charliermarsh/ruff/pull/4431)
- [@&#8203;qdegraaf](https://togithub.com/qdegraaf) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4432](https://togithub.com/charliermarsh/ruff/pull/4432)
- [@&#8203;jameslamb](https://togithub.com/jameslamb) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4446](https://togithub.com/charliermarsh/ruff/pull/4446)
- [@&#8203;john-h-k](https://togithub.com/john-h-k) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4461](https://togithub.com/charliermarsh/ruff/pull/4461)

**Full Changelog**:
astral-sh/ruff@v0.0.267...v0.0.269

</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:eyJjcmVhdGVkSW5WZXIiOiIzNS45Ni4zIiwidXBkYXRlZEluVmVyIjoiMzUuOTYuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rule Implementing or modifying a lint rule

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PLW3301: incorrect autofix when using generator expression

2 participants