Skip to content

Add Pylint rule C0208 (use-sequence-for-iteration) as PLC0208 (iteration-over-set)#4706

Merged
charliermarsh merged 11 commits intoastral-sh:mainfrom
tjkuson:iterate-over-set
Jun 1, 2023
Merged

Add Pylint rule C0208 (use-sequence-for-iteration) as PLC0208 (iteration-over-set)#4706
charliermarsh merged 11 commits intoastral-sh:mainfrom
tjkuson:iterate-over-set

Conversation

@tjkuson
Copy link
Contributor

@tjkuson tjkuson commented May 29, 2023

Summary

Implement the Pylint C0208 rule that checks for set iterators. Related to #970. Includes documentation.

Currently, it checks for iterating over in-place set but not set names. For example, this triggers the rule:

for item in {1, 2, 3}:
    ...

But this does not:

items = {1, 2, 3}
for item in items:
    ...

I am curious whether this should be the case. On the one hand, using a set via a name incurs the same performance impact as using a set literal. However, it is unclear if using a named set invites the same recommendation to replace it with a sequence (there could be a conversion cost, and a set might be more efficient elsewhere). This is also how Pylint currently implements the rule.

Test Plan

Added test fixtures.

@github-actions
Copy link
Contributor

github-actions bot commented May 29, 2023

PR Check Results

Ecosystem

ℹ️ ecosystem check detected changes. (+7, -0, 0 error(s))

airflow (+1, -0)

+ airflow/serialization/serialized_objects.py:1071:19: PLC0208 Use a sequence type instead of a `set` when iterating over values

cibuildwheel (+1, -0)

+ unit_test/option_prepare_test.py:154:42: PLC0208 Use a sequence type instead of a `set` when iterating over values

zulip (+5, -0)

+ zerver/management/commands/add_users_to_streams.py:28:28: PLC0208 Use a sequence type instead of a `set` when iterating over values
+ zerver/management/commands/create_default_stream_groups.py:43:28: PLC0208 Use a sequence type instead of a `set` when iterating over values
+ zerver/tests/test_auth_backends.py:1591:28: PLC0208 Use a sequence type instead of a `set` when iterating over values
+ zerver/tests/test_auth_backends.py:4602:28: PLC0208 Use a sequence type instead of a `set` when iterating over values
+ zproject/backends.py:870:69: PLC0208 Use a sequence type instead of a `set` when iterating over values

Rules changed: 1
Rule Changes Additions Removals
PLC0208 7 7 0

Benchmark

Linux

group                                      main                                   pr
-----                                      ----                                   --
linter/all-rules/large/dataset.py          1.02     16.9±0.38ms     2.4 MB/sec    1.00     16.6±0.07ms     2.5 MB/sec
linter/all-rules/numpy/ctypeslib.py        1.01      4.1±0.03ms     4.1 MB/sec    1.00      4.0±0.02ms     4.2 MB/sec
linter/all-rules/numpy/globals.py          1.00    499.3±5.11µs     5.9 MB/sec    1.00    497.5±3.65µs     5.9 MB/sec
linter/all-rules/pydantic/types.py         1.01      7.0±0.07ms     3.6 MB/sec    1.00      6.9±0.04ms     3.7 MB/sec
linter/default-rules/large/dataset.py      1.00      8.0±0.06ms     5.1 MB/sec    1.03      8.2±0.02ms     4.9 MB/sec
linter/default-rules/numpy/ctypeslib.py    1.00  1780.5±20.24µs     9.4 MB/sec    1.01   1803.7±2.13µs     9.2 MB/sec
linter/default-rules/numpy/globals.py      1.00    201.9±3.63µs    14.6 MB/sec    1.09    220.3±6.76µs    13.4 MB/sec
linter/default-rules/pydantic/types.py     1.00      3.7±0.01ms     6.9 MB/sec    1.01      3.7±0.02ms     6.8 MB/sec
parser/large/dataset.py                    1.00      6.2±0.02ms     6.6 MB/sec    1.01      6.2±0.02ms     6.5 MB/sec
parser/numpy/ctypeslib.py                  1.00   1209.9±4.79µs    13.8 MB/sec    1.01   1218.6±6.19µs    13.7 MB/sec
parser/numpy/globals.py                    1.00    125.4±0.34µs    23.5 MB/sec    1.00    125.9±0.81µs    23.4 MB/sec
parser/pydantic/types.py                   1.00      2.7±0.01ms     9.6 MB/sec    1.01      2.7±0.01ms     9.5 MB/sec

Windows

group                                      main                                   pr
-----                                      ----                                   --
linter/all-rules/large/dataset.py          1.01     21.8±0.75ms  1912.1 KB/sec    1.00     21.5±0.86ms  1940.2 KB/sec
linter/all-rules/numpy/ctypeslib.py        1.00      5.5±0.28ms     3.0 MB/sec    1.00      5.5±0.31ms     3.0 MB/sec
linter/all-rules/numpy/globals.py          1.01   666.9±55.35µs     4.4 MB/sec    1.00   660.4±70.99µs     4.5 MB/sec
linter/all-rules/pydantic/types.py         1.02      9.4±0.61ms     2.7 MB/sec    1.00      9.2±0.51ms     2.8 MB/sec
linter/default-rules/large/dataset.py      1.00     10.7±0.44ms     3.8 MB/sec    1.02     10.9±0.65ms     3.7 MB/sec
linter/default-rules/numpy/ctypeslib.py    1.01      2.3±0.11ms     7.3 MB/sec    1.00      2.3±0.12ms     7.3 MB/sec
linter/default-rules/numpy/globals.py      1.00   264.3±22.87µs    11.2 MB/sec    1.00   264.8±19.98µs    11.1 MB/sec
linter/default-rules/pydantic/types.py     1.01      4.8±0.30ms     5.3 MB/sec    1.00      4.8±0.23ms     5.4 MB/sec
parser/large/dataset.py                    1.00      8.3±0.38ms     4.9 MB/sec    1.02      8.5±0.43ms     4.8 MB/sec
parser/numpy/ctypeslib.py                  1.00  1550.6±88.89µs    10.7 MB/sec    1.04  1619.7±147.38µs    10.3 MB/sec
parser/numpy/globals.py                    1.01   160.0±14.25µs    18.4 MB/sec    1.00   159.1±10.98µs    18.5 MB/sec
parser/pydantic/types.py                   1.00      3.5±0.17ms     7.3 MB/sec    1.01      3.6±0.18ms     7.2 MB/sec

@tjkuson tjkuson marked this pull request as ready for review May 31, 2023 18:49
@tjkuson
Copy link
Contributor Author

tjkuson commented May 31, 2023

I think the rule is ready for review. To my knowledge, it is at par with Pylint C0208.

@tjkuson tjkuson changed the title Add Pylint rule use-sequence-for-iteration Add Pylint rule C0208 (use-sequence-for-iteration) May 31, 2023
@tjkuson tjkuson changed the title Add Pylint rule C0208 (use-sequence-for-iteration) Add Pylint rule C0208 (use-sequence-for-iteration) as PLC0208 (iterate-over-set) May 31, 2023
@charliermarsh charliermarsh self-requested a review June 1, 2023 14:29
@charliermarsh charliermarsh changed the title Add Pylint rule C0208 (use-sequence-for-iteration) as PLC0208 (iterate-over-set) Add Pylint rule C0208 (use-sequence-for-iteration) as PLC0208 (iteration-over-set) Jun 1, 2023
@charliermarsh charliermarsh enabled auto-merge (squash) June 1, 2023 21:17
@charliermarsh charliermarsh added the rule Implementing or modifying a lint rule label Jun 1, 2023
@charliermarsh charliermarsh merged commit bdff4a6 into astral-sh:main Jun 1, 2023
@andersk
Copy link
Contributor

andersk commented Jun 6, 2023

Pylint does not flag for i in set(a), and I don’t think we should either. The point of this rule is for efficiency:

  • for i in {1, 2, 3}for i in [1, 2, 3] is more efficient, but
  • for i in set(a)for i in a is incorrect (set deduplicates), and
  • for i in set(a)for i in list(set(a)) is less efficient (we still iterate over the set to build the list).

@charliermarsh
Copy link
Member

Ah interesting. By that logic, we'd want to omit set-comprehensions too?

@andersk
Copy link
Contributor

andersk commented Jun 6, 2023

Yes (and Pylint allows them too).

@charliermarsh
Copy link
Member

Yeah, this makes sense. I'll get this change in before cutting the next release (or feel free to PR if you'd like).

@tjkuson
Copy link
Contributor Author

tjkuson commented Jun 6, 2023

Oops, my bad. I must have misunderstood the Pylint implementation. I have opened a new PR to fix this: #4907.

renovate bot referenced this pull request in ixm-one/pytest-cmake-presets Jun 7, 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.270` -> `^0.0.271` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.271/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.271/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.271/compatibility-slim/0.0.270)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.271/confidence-slim/0.0.270)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

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

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

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

#### What's Changed

##### Rules

- Add autofix for flake8-type-checking by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4742](https://togithub.com/charliermarsh/ruff/pull/4742)
- \[`airflow`] Add AIR001: task variable name should be same as task_id
arg by [@&#8203;jlaneve](https://togithub.com/jlaneve) in
[https://github.com/charliermarsh/ruff/pull/4687](https://togithub.com/charliermarsh/ruff/pull/4687)
- \[`flake8-bandit`] Implement S609, linux_commands_wildcard_injection
by [@&#8203;scop](https://togithub.com/scop) in
[https://github.com/charliermarsh/ruff/pull/4504](https://togithub.com/charliermarsh/ruff/pull/4504)
- \[`flake8-bugbear`] Move duplicate-value rule to flake8-bugbear by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4882](https://togithub.com/charliermarsh/ruff/pull/4882)
- \[`flake8-fixme`] Implement `flake8_fixme` and refactor
`TodoDirective` by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4681](https://togithub.com/charliermarsh/ruff/pull/4681)
- \[`flake8-future-annotations`] Implement `FA102` by
[@&#8203;akx](https://togithub.com/akx) in
[https://github.com/charliermarsh/ruff/pull/4702](https://togithub.com/charliermarsh/ruff/pull/4702)
- \[`flake8-pyi`] Add PYI024 for `flake8-pyi` plugin by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4756](https://togithub.com/charliermarsh/ruff/pull/4756)
- \[`flake8-pyi`] Add PYI034 for `flake8-pyi` plugin by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4764](https://togithub.com/charliermarsh/ruff/pull/4764)
- \[`flake8-pyi`] Add `PYI032` rule with autofix by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4695](https://togithub.com/charliermarsh/ruff/pull/4695)
- \[`flake8-pyi`] Add autofix for PYI010 by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4634](https://togithub.com/charliermarsh/ruff/pull/4634)
- \[`flake8-pyi`] Implement PYI029 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4851](https://togithub.com/charliermarsh/ruff/pull/4851)
- \[`flake8-pyi`] Implement PYI035 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4820](https://togithub.com/charliermarsh/ruff/pull/4820)
- \[`flake8-pyi`] Implement PYI048 for `flake8-pyi` plugin by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4645](https://togithub.com/charliermarsh/ruff/pull/4645)
- \[`flake8-pyi`] Implement PYI053 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4770](https://togithub.com/charliermarsh/ruff/pull/4770)
- \[`flake8-pyi`] Implement PYI054 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4775](https://togithub.com/charliermarsh/ruff/pull/4775)
- \[`flake8-pyi`] Implement `PYI025` by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4791](https://togithub.com/charliermarsh/ruff/pull/4791)
- \[`flake8-pyi`] Implement `PYI045` by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4700](https://togithub.com/charliermarsh/ruff/pull/4700)
- \[`pylint`] Add Pylint rule `C0208` (`use-sequence-for-iteration`) as
`PLC0208` (`iteration-over-set`) by
[@&#8203;tjkuson](https://togithub.com/tjkuson) in
[https://github.com/charliermarsh/ruff/pull/4706](https://togithub.com/charliermarsh/ruff/pull/4706)
- \[`pylint`] Add autofix for `PLR1701` (repeated-isinstance-calls) by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4792](https://togithub.com/charliermarsh/ruff/pull/4792)
- \[`pylint`] Implement Pylint's `yield-inside-async-function` rule
(`PLE1700`) by [@&#8203;chanman3388](https://togithub.com/chanman3388)
in
[https://github.com/charliermarsh/ruff/pull/4668](https://togithub.com/charliermarsh/ruff/pull/4668)
- \[`pylint`] implement E307 for pylint invalid str return type by
[@&#8203;Ryang20718](https://togithub.com/Ryang20718) in
[https://github.com/charliermarsh/ruff/pull/4854](https://togithub.com/charliermarsh/ruff/pull/4854)
- \[`ruff`] Lint pyproject.toml by
[@&#8203;konstin](https://togithub.com/konstin) in
[https://github.com/charliermarsh/ruff/pull/4496](https://togithub.com/charliermarsh/ruff/pull/4496)
- \[`tryceratops`] Ignore error calls with `exc_info` in TRY400 by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4797](https://togithub.com/charliermarsh/ruff/pull/4797)

##### Settings

- Add `pyflakes.extend-generics` setting by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4677](https://togithub.com/charliermarsh/ruff/pull/4677)

##### Bug Fixes

- Fix PLW3301 false positive single argument nested min/max by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4683](https://togithub.com/charliermarsh/ruff/pull/4683)
- Handle dotted alias imports to check for implicit imports by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4685](https://togithub.com/charliermarsh/ruff/pull/4685)
- Flag empty strings in flake8-errmsg rules by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4745](https://togithub.com/charliermarsh/ruff/pull/4745)
- Exclude function definition from too-many-statements rule by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4794](https://togithub.com/charliermarsh/ruff/pull/4794)
- Preserve quotes in F523 fixer by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4836](https://togithub.com/charliermarsh/ruff/pull/4836)
- Fix round-tripping of nested functions by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4875](https://togithub.com/charliermarsh/ruff/pull/4875)
- Avoid early-exit in explicit-f-string-type-conversion by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4886](https://togithub.com/charliermarsh/ruff/pull/4886)
- Avoid no-op fix for nested with expressions by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4906](https://togithub.com/charliermarsh/ruff/pull/4906)
- Fix UP036 auto-fix error by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4679](https://togithub.com/charliermarsh/ruff/pull/4679)
- Use class name as range for `B024` by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4647](https://togithub.com/charliermarsh/ruff/pull/4647)
- Change TODO directive detection to work with multiple pound signs on
the same line by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4558](https://togithub.com/charliermarsh/ruff/pull/4558)
- Allow more immutable funcs for RUF009 by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4660](https://togithub.com/charliermarsh/ruff/pull/4660)
- Avoid using typing-imported symbols for runtime edits by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4649](https://togithub.com/charliermarsh/ruff/pull/4649)
- Fix `async for` formatting by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4675](https://togithub.com/charliermarsh/ruff/pull/4675)
- Ignore **setattr** in FBT003 by
[@&#8203;alexfikl](https://togithub.com/alexfikl) in
[https://github.com/charliermarsh/ruff/pull/4752](https://togithub.com/charliermarsh/ruff/pull/4752)
- Include ImportError in non-fixable try-catch imports by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4793](https://togithub.com/charliermarsh/ruff/pull/4793)
- Avoid extra newline between diagnostics in grouped mode by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4776](https://togithub.com/charliermarsh/ruff/pull/4776)
- Avoid enforcing native-literals rule within nested f-strings by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4488](https://togithub.com/charliermarsh/ruff/pull/4488)
- Respect mixed variable assignment in RET504 by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4835](https://togithub.com/charliermarsh/ruff/pull/4835)
- Make FLY002 autofix into a constant string instead of an f-string if
all `join()` arguments are strings by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4834](https://togithub.com/charliermarsh/ruff/pull/4834)
- Add some exceptions for FBT003
([#&#8203;3247](https://togithub.com/charliermarsh/ruff/issues/3247)) by
[@&#8203;allisonkarlitskaya](https://togithub.com/allisonkarlitskaya) in
[https://github.com/charliermarsh/ruff/pull/4867](https://togithub.com/charliermarsh/ruff/pull/4867)
- Avoid running RUF100 rules when code contains syntax errors by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4869](https://togithub.com/charliermarsh/ruff/pull/4869)
- Avoid index-out-of-bands panic for positional placeholders by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4872](https://togithub.com/charliermarsh/ruff/pull/4872)
- Remove destructive fixes for F523 by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4883](https://togithub.com/charliermarsh/ruff/pull/4883)
- Respect shadowed exports in `__all__` by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4885](https://togithub.com/charliermarsh/ruff/pull/4885)
- Track symbol deletions separately from bindings by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4888](https://togithub.com/charliermarsh/ruff/pull/4888)
- Change fixable_set to include RuleSelector::All/Nursery by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4852](https://togithub.com/charliermarsh/ruff/pull/4852)

#### New Contributors

- [@&#8203;bersbersbers](https://togithub.com/bersbersbers) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4644](https://togithub.com/charliermarsh/ruff/pull/4644)
- [@&#8203;jlaneve](https://togithub.com/jlaneve) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4690](https://togithub.com/charliermarsh/ruff/pull/4690)
- [@&#8203;suharnikov](https://togithub.com/suharnikov) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4678](https://togithub.com/charliermarsh/ruff/pull/4678)
- [@&#8203;alexfikl](https://togithub.com/alexfikl) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4752](https://togithub.com/charliermarsh/ruff/pull/4752)
- [@&#8203;allisonkarlitskaya](https://togithub.com/allisonkarlitskaya)
made their first contribution in
[https://github.com/charliermarsh/ruff/pull/4867](https://togithub.com/charliermarsh/ruff/pull/4867)
- [@&#8203;Ryang20718](https://togithub.com/Ryang20718) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4854](https://togithub.com/charliermarsh/ruff/pull/4854)
- [@&#8203;addisoncrump](https://togithub.com/addisoncrump) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4893](https://togithub.com/charliermarsh/ruff/pull/4893)

**Full Changelog**:
astral-sh/ruff@v0.0.270...v0.0.271

</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:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
jankatins referenced this pull request in jankatins/pr-workflow-example Jun 8, 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.270` -> `0.0.272` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.272/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.272/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.272/compatibility-slim/0.0.270)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.272/confidence-slim/0.0.270)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v0.0.272`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.272)

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

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

#### What's Changed

##### Breaking Changes

- Move flake8-fixme rules to FIX prefix by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4917](https://togithub.com/charliermarsh/ruff/pull/4917)

##### Rules

- \[`flake8-pyi`] Implement PYI050 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4884](https://togithub.com/charliermarsh/ruff/pull/4884)

##### Bug Fixes

- Avoid attributing runtime references to module-level imports by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4942](https://togithub.com/charliermarsh/ruff/pull/4942)
- Skip class scopes when resolving nonlocal references by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4943](https://togithub.com/charliermarsh/ruff/pull/4943)
- Apply `dict.get` fix before ternary rewrite by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4944](https://togithub.com/charliermarsh/ruff/pull/4944)
- Handle implicit string concatenations in conversion-flag rewrites by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4947](https://togithub.com/charliermarsh/ruff/pull/4947)
- Make `C413` fix as suggested for `reversed` call by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4891](https://togithub.com/charliermarsh/ruff/pull/4891)
- ignore if using infinite iterators in `B905` by
[@&#8203;kyoto7250](https://togithub.com/kyoto7250) in
[https://github.com/charliermarsh/ruff/pull/4914](https://togithub.com/charliermarsh/ruff/pull/4914)

**Full Changelog**:
astral-sh/ruff@v0.0.271...v0.0.272

###
[`v0.0.271`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.271)

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

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

#### What's Changed

##### Rules

- Add autofix for flake8-type-checking by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4742](https://togithub.com/charliermarsh/ruff/pull/4742)
- \[`airflow`] Add AIR001: task variable name should be same as task_id
arg by [@&#8203;jlaneve](https://togithub.com/jlaneve) in
[https://github.com/charliermarsh/ruff/pull/4687](https://togithub.com/charliermarsh/ruff/pull/4687)
- \[`flake8-bandit`] Implement S609, linux_commands_wildcard_injection
by [@&#8203;scop](https://togithub.com/scop) in
[https://github.com/charliermarsh/ruff/pull/4504](https://togithub.com/charliermarsh/ruff/pull/4504)
- \[`flake8-bugbear`] Move duplicate-value rule to flake8-bugbear by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4882](https://togithub.com/charliermarsh/ruff/pull/4882)
- \[`flake8-fixme`] Implement `flake8_fixme` and refactor
`TodoDirective` by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4681](https://togithub.com/charliermarsh/ruff/pull/4681)
- \[`flake8-future-annotations`] Implement `FA102` by
[@&#8203;akx](https://togithub.com/akx) in
[https://github.com/charliermarsh/ruff/pull/4702](https://togithub.com/charliermarsh/ruff/pull/4702)
- \[`flake8-pyi`] Add PYI024 for `flake8-pyi` plugin by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4756](https://togithub.com/charliermarsh/ruff/pull/4756)
- \[`flake8-pyi`] Add PYI034 for `flake8-pyi` plugin by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4764](https://togithub.com/charliermarsh/ruff/pull/4764)
- \[`flake8-pyi`] Add `PYI032` rule with autofix by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4695](https://togithub.com/charliermarsh/ruff/pull/4695)
- \[`flake8-pyi`] Add autofix for PYI010 by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4634](https://togithub.com/charliermarsh/ruff/pull/4634)
- \[`flake8-pyi`] Implement PYI029 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4851](https://togithub.com/charliermarsh/ruff/pull/4851)
- \[`flake8-pyi`] Implement PYI035 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4820](https://togithub.com/charliermarsh/ruff/pull/4820)
- \[`flake8-pyi`] Implement PYI048 for `flake8-pyi` plugin by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4645](https://togithub.com/charliermarsh/ruff/pull/4645)
- \[`flake8-pyi`] Implement PYI053 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4770](https://togithub.com/charliermarsh/ruff/pull/4770)
- \[`flake8-pyi`] Implement PYI054 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4775](https://togithub.com/charliermarsh/ruff/pull/4775)
- \[`flake8-pyi`] Implement `PYI025` by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4791](https://togithub.com/charliermarsh/ruff/pull/4791)
- \[`flake8-pyi`] Implement `PYI045` by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4700](https://togithub.com/charliermarsh/ruff/pull/4700)
- \[`pylint`] Add Pylint rule `C0208` (`use-sequence-for-iteration`) as
`PLC0208` (`iteration-over-set`) by
[@&#8203;tjkuson](https://togithub.com/tjkuson) in
[https://github.com/charliermarsh/ruff/pull/4706](https://togithub.com/charliermarsh/ruff/pull/4706)
- \[`pylint`] Add autofix for `PLR1701` (repeated-isinstance-calls) by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4792](https://togithub.com/charliermarsh/ruff/pull/4792)
- \[`pylint`] Implement Pylint's `yield-inside-async-function` rule
(`PLE1700`) by [@&#8203;chanman3388](https://togithub.com/chanman3388)
in
[https://github.com/charliermarsh/ruff/pull/4668](https://togithub.com/charliermarsh/ruff/pull/4668)
- \[`pylint`] implement E307 for pylint invalid str return type by
[@&#8203;Ryang20718](https://togithub.com/Ryang20718) in
[https://github.com/charliermarsh/ruff/pull/4854](https://togithub.com/charliermarsh/ruff/pull/4854)
- \[`ruff`] Lint pyproject.toml by
[@&#8203;konstin](https://togithub.com/konstin) in
[https://github.com/charliermarsh/ruff/pull/4496](https://togithub.com/charliermarsh/ruff/pull/4496)
- \[`tryceratops`] Ignore error calls with `exc_info` in TRY400 by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4797](https://togithub.com/charliermarsh/ruff/pull/4797)

##### Settings

- Add `pyflakes.extend-generics` setting by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4677](https://togithub.com/charliermarsh/ruff/pull/4677)

##### Bug Fixes

- Fix PLW3301 false positive single argument nested min/max by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4683](https://togithub.com/charliermarsh/ruff/pull/4683)
- Handle dotted alias imports to check for implicit imports by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4685](https://togithub.com/charliermarsh/ruff/pull/4685)
- Flag empty strings in flake8-errmsg rules by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4745](https://togithub.com/charliermarsh/ruff/pull/4745)
- Exclude function definition from too-many-statements rule by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4794](https://togithub.com/charliermarsh/ruff/pull/4794)
- Preserve quotes in F523 fixer by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4836](https://togithub.com/charliermarsh/ruff/pull/4836)
- Fix round-tripping of nested functions by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4875](https://togithub.com/charliermarsh/ruff/pull/4875)
- Avoid early-exit in explicit-f-string-type-conversion by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4886](https://togithub.com/charliermarsh/ruff/pull/4886)
- Avoid no-op fix for nested with expressions by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4906](https://togithub.com/charliermarsh/ruff/pull/4906)
- Fix UP036 auto-fix error by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4679](https://togithub.com/charliermarsh/ruff/pull/4679)
- Use class name as range for `B024` by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4647](https://togithub.com/charliermarsh/ruff/pull/4647)
- Change TODO directive detection to work with multiple pound signs on
the same line by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4558](https://togithub.com/charliermarsh/ruff/pull/4558)
- Allow more immutable funcs for RUF009 by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4660](https://togithub.com/charliermarsh/ruff/pull/4660)
- Avoid using typing-imported symbols for runtime edits by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4649](https://togithub.com/charliermarsh/ruff/pull/4649)
- Fix `async for` formatting by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4675](https://togithub.com/charliermarsh/ruff/pull/4675)
- Ignore **setattr** in FBT003 by
[@&#8203;alexfikl](https://togithub.com/alexfikl) in
[https://github.com/charliermarsh/ruff/pull/4752](https://togithub.com/charliermarsh/ruff/pull/4752)
- Include ImportError in non-fixable try-catch imports by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4793](https://togithub.com/charliermarsh/ruff/pull/4793)
- Avoid extra newline between diagnostics in grouped mode by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4776](https://togithub.com/charliermarsh/ruff/pull/4776)
- Avoid enforcing native-literals rule within nested f-strings by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4488](https://togithub.com/charliermarsh/ruff/pull/4488)
- Respect mixed variable assignment in RET504 by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4835](https://togithub.com/charliermarsh/ruff/pull/4835)
- Make FLY002 autofix into a constant string instead of an f-string if
all `join()` arguments are strings by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4834](https://togithub.com/charliermarsh/ruff/pull/4834)
- Add some exceptions for FBT003
([#&#8203;3247](https://togithub.com/charliermarsh/ruff/issues/3247)) by
[@&#8203;allisonkarlitskaya](https://togithub.com/allisonkarlitskaya) in
[https://github.com/charliermarsh/ruff/pull/4867](https://togithub.com/charliermarsh/ruff/pull/4867)
- Avoid running RUF100 rules when code contains syntax errors by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4869](https://togithub.com/charliermarsh/ruff/pull/4869)
- Avoid index-out-of-bands panic for positional placeholders by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4872](https://togithub.com/charliermarsh/ruff/pull/4872)
- Remove destructive fixes for F523 by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4883](https://togithub.com/charliermarsh/ruff/pull/4883)
- Respect shadowed exports in `__all__` by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4885](https://togithub.com/charliermarsh/ruff/pull/4885)
- Track symbol deletions separately from bindings by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4888](https://togithub.com/charliermarsh/ruff/pull/4888)
- Change fixable_set to include RuleSelector::All/Nursery by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4852](https://togithub.com/charliermarsh/ruff/pull/4852)

#### New Contributors

- [@&#8203;bersbersbers](https://togithub.com/bersbersbers) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4644](https://togithub.com/charliermarsh/ruff/pull/4644)
- [@&#8203;jlaneve](https://togithub.com/jlaneve) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4690](https://togithub.com/charliermarsh/ruff/pull/4690)
- [@&#8203;suharnikov](https://togithub.com/suharnikov) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4678](https://togithub.com/charliermarsh/ruff/pull/4678)
- [@&#8203;alexfikl](https://togithub.com/alexfikl) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4752](https://togithub.com/charliermarsh/ruff/pull/4752)
- [@&#8203;allisonkarlitskaya](https://togithub.com/allisonkarlitskaya)
made their first contribution in
[https://github.com/charliermarsh/ruff/pull/4867](https://togithub.com/charliermarsh/ruff/pull/4867)
- [@&#8203;Ryang20718](https://togithub.com/Ryang20718) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4854](https://togithub.com/charliermarsh/ruff/pull/4854)
- [@&#8203;addisoncrump](https://togithub.com/addisoncrump) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4893](https://togithub.com/charliermarsh/ruff/pull/4893)

**Full Changelog**:
astral-sh/ruff@v0.0.270...v0.0.271

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **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/jankatins/pr-workflow-example).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
renovate bot referenced this pull request in allenporter/flux-local Jun 10, 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.270` -> `==0.0.272` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.272/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.272/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.272/compatibility-slim/0.0.270)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.272/confidence-slim/0.0.270)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v0.0.272`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.272)

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

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

#### What's Changed

##### Breaking Changes

- Move flake8-fixme rules to FIX prefix by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4917](https://togithub.com/charliermarsh/ruff/pull/4917)

##### Rules

- \[`flake8-pyi`] Implement PYI050 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4884](https://togithub.com/charliermarsh/ruff/pull/4884)

##### Bug Fixes

- Avoid attributing runtime references to module-level imports by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4942](https://togithub.com/charliermarsh/ruff/pull/4942)
- Skip class scopes when resolving nonlocal references by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4943](https://togithub.com/charliermarsh/ruff/pull/4943)
- Apply `dict.get` fix before ternary rewrite by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4944](https://togithub.com/charliermarsh/ruff/pull/4944)
- Handle implicit string concatenations in conversion-flag rewrites by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4947](https://togithub.com/charliermarsh/ruff/pull/4947)
- Make `C413` fix as suggested for `reversed` call by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4891](https://togithub.com/charliermarsh/ruff/pull/4891)
- ignore if using infinite iterators in `B905` by
[@&#8203;kyoto7250](https://togithub.com/kyoto7250) in
[https://github.com/charliermarsh/ruff/pull/4914](https://togithub.com/charliermarsh/ruff/pull/4914)

**Full Changelog**:
astral-sh/ruff@v0.0.271...v0.0.272

###
[`v0.0.271`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.271)

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

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

#### What's Changed

##### Rules

- Add autofix for flake8-type-checking by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4742](https://togithub.com/charliermarsh/ruff/pull/4742)
- \[`airflow`] Add AIR001: task variable name should be same as task_id
arg by [@&#8203;jlaneve](https://togithub.com/jlaneve) in
[https://github.com/charliermarsh/ruff/pull/4687](https://togithub.com/charliermarsh/ruff/pull/4687)
- \[`flake8-bandit`] Implement S609, linux_commands_wildcard_injection
by [@&#8203;scop](https://togithub.com/scop) in
[https://github.com/charliermarsh/ruff/pull/4504](https://togithub.com/charliermarsh/ruff/pull/4504)
- \[`flake8-bugbear`] Move duplicate-value rule to flake8-bugbear by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4882](https://togithub.com/charliermarsh/ruff/pull/4882)
- \[`flake8-fixme`] Implement `flake8_fixme` and refactor
`TodoDirective` by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4681](https://togithub.com/charliermarsh/ruff/pull/4681)
- \[`flake8-future-annotations`] Implement `FA102` by
[@&#8203;akx](https://togithub.com/akx) in
[https://github.com/charliermarsh/ruff/pull/4702](https://togithub.com/charliermarsh/ruff/pull/4702)
- \[`flake8-pyi`] Add PYI024 for `flake8-pyi` plugin by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4756](https://togithub.com/charliermarsh/ruff/pull/4756)
- \[`flake8-pyi`] Add PYI034 for `flake8-pyi` plugin by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4764](https://togithub.com/charliermarsh/ruff/pull/4764)
- \[`flake8-pyi`] Add `PYI032` rule with autofix by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4695](https://togithub.com/charliermarsh/ruff/pull/4695)
- \[`flake8-pyi`] Add autofix for PYI010 by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4634](https://togithub.com/charliermarsh/ruff/pull/4634)
- \[`flake8-pyi`] Implement PYI029 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4851](https://togithub.com/charliermarsh/ruff/pull/4851)
- \[`flake8-pyi`] Implement PYI035 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4820](https://togithub.com/charliermarsh/ruff/pull/4820)
- \[`flake8-pyi`] Implement PYI048 for `flake8-pyi` plugin by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4645](https://togithub.com/charliermarsh/ruff/pull/4645)
- \[`flake8-pyi`] Implement PYI053 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4770](https://togithub.com/charliermarsh/ruff/pull/4770)
- \[`flake8-pyi`] Implement PYI054 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4775](https://togithub.com/charliermarsh/ruff/pull/4775)
- \[`flake8-pyi`] Implement `PYI025` by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4791](https://togithub.com/charliermarsh/ruff/pull/4791)
- \[`flake8-pyi`] Implement `PYI045` by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4700](https://togithub.com/charliermarsh/ruff/pull/4700)
- \[`pylint`] Add Pylint rule `C0208` (`use-sequence-for-iteration`) as
`PLC0208` (`iteration-over-set`) by
[@&#8203;tjkuson](https://togithub.com/tjkuson) in
[https://github.com/charliermarsh/ruff/pull/4706](https://togithub.com/charliermarsh/ruff/pull/4706)
- \[`pylint`] Add autofix for `PLR1701` (repeated-isinstance-calls) by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4792](https://togithub.com/charliermarsh/ruff/pull/4792)
- \[`pylint`] Implement Pylint's `yield-inside-async-function` rule
(`PLE1700`) by [@&#8203;chanman3388](https://togithub.com/chanman3388)
in
[https://github.com/charliermarsh/ruff/pull/4668](https://togithub.com/charliermarsh/ruff/pull/4668)
- \[`pylint`] implement E307 for pylint invalid str return type by
[@&#8203;Ryang20718](https://togithub.com/Ryang20718) in
[https://github.com/charliermarsh/ruff/pull/4854](https://togithub.com/charliermarsh/ruff/pull/4854)
- \[`ruff`] Lint pyproject.toml by
[@&#8203;konstin](https://togithub.com/konstin) in
[https://github.com/charliermarsh/ruff/pull/4496](https://togithub.com/charliermarsh/ruff/pull/4496)
- \[`tryceratops`] Ignore error calls with `exc_info` in TRY400 by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4797](https://togithub.com/charliermarsh/ruff/pull/4797)

##### Settings

- Add `pyflakes.extend-generics` setting by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4677](https://togithub.com/charliermarsh/ruff/pull/4677)

##### Bug Fixes

- Fix PLW3301 false positive single argument nested min/max by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4683](https://togithub.com/charliermarsh/ruff/pull/4683)
- Handle dotted alias imports to check for implicit imports by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4685](https://togithub.com/charliermarsh/ruff/pull/4685)
- Flag empty strings in flake8-errmsg rules by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4745](https://togithub.com/charliermarsh/ruff/pull/4745)
- Exclude function definition from too-many-statements rule by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4794](https://togithub.com/charliermarsh/ruff/pull/4794)
- Preserve quotes in F523 fixer by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4836](https://togithub.com/charliermarsh/ruff/pull/4836)
- Fix round-tripping of nested functions by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4875](https://togithub.com/charliermarsh/ruff/pull/4875)
- Avoid early-exit in explicit-f-string-type-conversion by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4886](https://togithub.com/charliermarsh/ruff/pull/4886)
- Avoid no-op fix for nested with expressions by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4906](https://togithub.com/charliermarsh/ruff/pull/4906)
- Fix UP036 auto-fix error by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4679](https://togithub.com/charliermarsh/ruff/pull/4679)
- Use class name as range for `B024` by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4647](https://togithub.com/charliermarsh/ruff/pull/4647)
- Change TODO directive detection to work with multiple pound signs on
the same line by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4558](https://togithub.com/charliermarsh/ruff/pull/4558)
- Allow more immutable funcs for RUF009 by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4660](https://togithub.com/charliermarsh/ruff/pull/4660)
- Avoid using typing-imported symbols for runtime edits by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4649](https://togithub.com/charliermarsh/ruff/pull/4649)
- Fix `async for` formatting by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4675](https://togithub.com/charliermarsh/ruff/pull/4675)
- Ignore **setattr** in FBT003 by
[@&#8203;alexfikl](https://togithub.com/alexfikl) in
[https://github.com/charliermarsh/ruff/pull/4752](https://togithub.com/charliermarsh/ruff/pull/4752)
- Include ImportError in non-fixable try-catch imports by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4793](https://togithub.com/charliermarsh/ruff/pull/4793)
- Avoid extra newline between diagnostics in grouped mode by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4776](https://togithub.com/charliermarsh/ruff/pull/4776)
- Avoid enforcing native-literals rule within nested f-strings by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4488](https://togithub.com/charliermarsh/ruff/pull/4488)
- Respect mixed variable assignment in RET504 by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4835](https://togithub.com/charliermarsh/ruff/pull/4835)
- Make FLY002 autofix into a constant string instead of an f-string if
all `join()` arguments are strings by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4834](https://togithub.com/charliermarsh/ruff/pull/4834)
- Add some exceptions for FBT003
([#&#8203;3247](https://togithub.com/charliermarsh/ruff/issues/3247)) by
[@&#8203;allisonkarlitskaya](https://togithub.com/allisonkarlitskaya) in
[https://github.com/charliermarsh/ruff/pull/4867](https://togithub.com/charliermarsh/ruff/pull/4867)
- Avoid running RUF100 rules when code contains syntax errors by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4869](https://togithub.com/charliermarsh/ruff/pull/4869)
- Avoid index-out-of-bands panic for positional placeholders by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4872](https://togithub.com/charliermarsh/ruff/pull/4872)
- Remove destructive fixes for F523 by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4883](https://togithub.com/charliermarsh/ruff/pull/4883)
- Respect shadowed exports in `__all__` by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4885](https://togithub.com/charliermarsh/ruff/pull/4885)
- Track symbol deletions separately from bindings by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4888](https://togithub.com/charliermarsh/ruff/pull/4888)
- Change fixable_set to include RuleSelector::All/Nursery by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4852](https://togithub.com/charliermarsh/ruff/pull/4852)

#### New Contributors

- [@&#8203;bersbersbers](https://togithub.com/bersbersbers) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4644](https://togithub.com/charliermarsh/ruff/pull/4644)
- [@&#8203;jlaneve](https://togithub.com/jlaneve) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4690](https://togithub.com/charliermarsh/ruff/pull/4690)
- [@&#8203;suharnikov](https://togithub.com/suharnikov) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4678](https://togithub.com/charliermarsh/ruff/pull/4678)
- [@&#8203;alexfikl](https://togithub.com/alexfikl) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4752](https://togithub.com/charliermarsh/ruff/pull/4752)
- [@&#8203;allisonkarlitskaya](https://togithub.com/allisonkarlitskaya)
made their first contribution in
[https://github.com/charliermarsh/ruff/pull/4867](https://togithub.com/charliermarsh/ruff/pull/4867)
- [@&#8203;Ryang20718](https://togithub.com/Ryang20718) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4854](https://togithub.com/charliermarsh/ruff/pull/4854)
- [@&#8203;addisoncrump](https://togithub.com/addisoncrump) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4893](https://togithub.com/charliermarsh/ruff/pull/4893)

**Full Changelog**:
astral-sh/ruff@v0.0.270...v0.0.271

</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:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in allenporter/pyrainbird Jun 10, 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.270` -> `==0.0.272` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.272/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.272/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.272/compatibility-slim/0.0.270)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.272/confidence-slim/0.0.270)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v0.0.272`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.272)

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

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

#### What's Changed

##### Breaking Changes

- Move flake8-fixme rules to FIX prefix by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4917](https://togithub.com/charliermarsh/ruff/pull/4917)

##### Rules

- \[`flake8-pyi`] Implement PYI050 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4884](https://togithub.com/charliermarsh/ruff/pull/4884)

##### Bug Fixes

- Avoid attributing runtime references to module-level imports by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4942](https://togithub.com/charliermarsh/ruff/pull/4942)
- Skip class scopes when resolving nonlocal references by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4943](https://togithub.com/charliermarsh/ruff/pull/4943)
- Apply `dict.get` fix before ternary rewrite by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4944](https://togithub.com/charliermarsh/ruff/pull/4944)
- Handle implicit string concatenations in conversion-flag rewrites by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4947](https://togithub.com/charliermarsh/ruff/pull/4947)
- Make `C413` fix as suggested for `reversed` call by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4891](https://togithub.com/charliermarsh/ruff/pull/4891)
- ignore if using infinite iterators in `B905` by
[@&#8203;kyoto7250](https://togithub.com/kyoto7250) in
[https://github.com/charliermarsh/ruff/pull/4914](https://togithub.com/charliermarsh/ruff/pull/4914)

**Full Changelog**:
astral-sh/ruff@v0.0.271...v0.0.272

###
[`v0.0.271`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.271)

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

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

#### What's Changed

##### Rules

- Add autofix for flake8-type-checking by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4742](https://togithub.com/charliermarsh/ruff/pull/4742)
- \[`airflow`] Add AIR001: task variable name should be same as task_id
arg by [@&#8203;jlaneve](https://togithub.com/jlaneve) in
[https://github.com/charliermarsh/ruff/pull/4687](https://togithub.com/charliermarsh/ruff/pull/4687)
- \[`flake8-bandit`] Implement S609, linux_commands_wildcard_injection
by [@&#8203;scop](https://togithub.com/scop) in
[https://github.com/charliermarsh/ruff/pull/4504](https://togithub.com/charliermarsh/ruff/pull/4504)
- \[`flake8-bugbear`] Move duplicate-value rule to flake8-bugbear by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4882](https://togithub.com/charliermarsh/ruff/pull/4882)
- \[`flake8-fixme`] Implement `flake8_fixme` and refactor
`TodoDirective` by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4681](https://togithub.com/charliermarsh/ruff/pull/4681)
- \[`flake8-future-annotations`] Implement `FA102` by
[@&#8203;akx](https://togithub.com/akx) in
[https://github.com/charliermarsh/ruff/pull/4702](https://togithub.com/charliermarsh/ruff/pull/4702)
- \[`flake8-pyi`] Add PYI024 for `flake8-pyi` plugin by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4756](https://togithub.com/charliermarsh/ruff/pull/4756)
- \[`flake8-pyi`] Add PYI034 for `flake8-pyi` plugin by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4764](https://togithub.com/charliermarsh/ruff/pull/4764)
- \[`flake8-pyi`] Add `PYI032` rule with autofix by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4695](https://togithub.com/charliermarsh/ruff/pull/4695)
- \[`flake8-pyi`] Add autofix for PYI010 by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4634](https://togithub.com/charliermarsh/ruff/pull/4634)
- \[`flake8-pyi`] Implement PYI029 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4851](https://togithub.com/charliermarsh/ruff/pull/4851)
- \[`flake8-pyi`] Implement PYI035 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4820](https://togithub.com/charliermarsh/ruff/pull/4820)
- \[`flake8-pyi`] Implement PYI048 for `flake8-pyi` plugin by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4645](https://togithub.com/charliermarsh/ruff/pull/4645)
- \[`flake8-pyi`] Implement PYI053 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4770](https://togithub.com/charliermarsh/ruff/pull/4770)
- \[`flake8-pyi`] Implement PYI054 by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4775](https://togithub.com/charliermarsh/ruff/pull/4775)
- \[`flake8-pyi`] Implement `PYI025` by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4791](https://togithub.com/charliermarsh/ruff/pull/4791)
- \[`flake8-pyi`] Implement `PYI045` by
[@&#8203;density](https://togithub.com/density) in
[https://github.com/charliermarsh/ruff/pull/4700](https://togithub.com/charliermarsh/ruff/pull/4700)
- \[`pylint`] Add Pylint rule `C0208` (`use-sequence-for-iteration`) as
`PLC0208` (`iteration-over-set`) by
[@&#8203;tjkuson](https://togithub.com/tjkuson) in
[https://github.com/charliermarsh/ruff/pull/4706](https://togithub.com/charliermarsh/ruff/pull/4706)
- \[`pylint`] Add autofix for `PLR1701` (repeated-isinstance-calls) by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4792](https://togithub.com/charliermarsh/ruff/pull/4792)
- \[`pylint`] Implement Pylint's `yield-inside-async-function` rule
(`PLE1700`) by [@&#8203;chanman3388](https://togithub.com/chanman3388)
in
[https://github.com/charliermarsh/ruff/pull/4668](https://togithub.com/charliermarsh/ruff/pull/4668)
- \[`pylint`] implement E307 for pylint invalid str return type by
[@&#8203;Ryang20718](https://togithub.com/Ryang20718) in
[https://github.com/charliermarsh/ruff/pull/4854](https://togithub.com/charliermarsh/ruff/pull/4854)
- \[`ruff`] Lint pyproject.toml by
[@&#8203;konstin](https://togithub.com/konstin) in
[https://github.com/charliermarsh/ruff/pull/4496](https://togithub.com/charliermarsh/ruff/pull/4496)
- \[`tryceratops`] Ignore error calls with `exc_info` in TRY400 by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4797](https://togithub.com/charliermarsh/ruff/pull/4797)

##### Settings

- Add `pyflakes.extend-generics` setting by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4677](https://togithub.com/charliermarsh/ruff/pull/4677)

##### Bug Fixes

- Fix PLW3301 false positive single argument nested min/max by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4683](https://togithub.com/charliermarsh/ruff/pull/4683)
- Handle dotted alias imports to check for implicit imports by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4685](https://togithub.com/charliermarsh/ruff/pull/4685)
- Flag empty strings in flake8-errmsg rules by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4745](https://togithub.com/charliermarsh/ruff/pull/4745)
- Exclude function definition from too-many-statements rule by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4794](https://togithub.com/charliermarsh/ruff/pull/4794)
- Preserve quotes in F523 fixer by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4836](https://togithub.com/charliermarsh/ruff/pull/4836)
- Fix round-tripping of nested functions by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4875](https://togithub.com/charliermarsh/ruff/pull/4875)
- Avoid early-exit in explicit-f-string-type-conversion by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4886](https://togithub.com/charliermarsh/ruff/pull/4886)
- Avoid no-op fix for nested with expressions by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4906](https://togithub.com/charliermarsh/ruff/pull/4906)
- Fix UP036 auto-fix error by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4679](https://togithub.com/charliermarsh/ruff/pull/4679)
- Use class name as range for `B024` by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4647](https://togithub.com/charliermarsh/ruff/pull/4647)
- Change TODO directive detection to work with multiple pound signs on
the same line by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4558](https://togithub.com/charliermarsh/ruff/pull/4558)
- Allow more immutable funcs for RUF009 by
[@&#8203;qdegraaf](https://togithub.com/qdegraaf) in
[https://github.com/charliermarsh/ruff/pull/4660](https://togithub.com/charliermarsh/ruff/pull/4660)
- Avoid using typing-imported symbols for runtime edits by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4649](https://togithub.com/charliermarsh/ruff/pull/4649)
- Fix `async for` formatting by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4675](https://togithub.com/charliermarsh/ruff/pull/4675)
- Ignore **setattr** in FBT003 by
[@&#8203;alexfikl](https://togithub.com/alexfikl) in
[https://github.com/charliermarsh/ruff/pull/4752](https://togithub.com/charliermarsh/ruff/pull/4752)
- Include ImportError in non-fixable try-catch imports by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4793](https://togithub.com/charliermarsh/ruff/pull/4793)
- Avoid extra newline between diagnostics in grouped mode by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4776](https://togithub.com/charliermarsh/ruff/pull/4776)
- Avoid enforcing native-literals rule within nested f-strings by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4488](https://togithub.com/charliermarsh/ruff/pull/4488)
- Respect mixed variable assignment in RET504 by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4835](https://togithub.com/charliermarsh/ruff/pull/4835)
- Make FLY002 autofix into a constant string instead of an f-string if
all `join()` arguments are strings by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4834](https://togithub.com/charliermarsh/ruff/pull/4834)
- Add some exceptions for FBT003
([#&#8203;3247](https://togithub.com/charliermarsh/ruff/issues/3247)) by
[@&#8203;allisonkarlitskaya](https://togithub.com/allisonkarlitskaya) in
[https://github.com/charliermarsh/ruff/pull/4867](https://togithub.com/charliermarsh/ruff/pull/4867)
- Avoid running RUF100 rules when code contains syntax errors by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4869](https://togithub.com/charliermarsh/ruff/pull/4869)
- Avoid index-out-of-bands panic for positional placeholders by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4872](https://togithub.com/charliermarsh/ruff/pull/4872)
- Remove destructive fixes for F523 by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4883](https://togithub.com/charliermarsh/ruff/pull/4883)
- Respect shadowed exports in `__all__` by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4885](https://togithub.com/charliermarsh/ruff/pull/4885)
- Track symbol deletions separately from bindings by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4888](https://togithub.com/charliermarsh/ruff/pull/4888)
- Change fixable_set to include RuleSelector::All/Nursery by
[@&#8203;evanrittenhouse](https://togithub.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4852](https://togithub.com/charliermarsh/ruff/pull/4852)

#### New Contributors

- [@&#8203;bersbersbers](https://togithub.com/bersbersbers) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4644](https://togithub.com/charliermarsh/ruff/pull/4644)
- [@&#8203;jlaneve](https://togithub.com/jlaneve) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4690](https://togithub.com/charliermarsh/ruff/pull/4690)
- [@&#8203;suharnikov](https://togithub.com/suharnikov) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4678](https://togithub.com/charliermarsh/ruff/pull/4678)
- [@&#8203;alexfikl](https://togithub.com/alexfikl) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4752](https://togithub.com/charliermarsh/ruff/pull/4752)
- [@&#8203;allisonkarlitskaya](https://togithub.com/allisonkarlitskaya)
made their first contribution in
[https://github.com/charliermarsh/ruff/pull/4867](https://togithub.com/charliermarsh/ruff/pull/4867)
- [@&#8203;Ryang20718](https://togithub.com/Ryang20718) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4854](https://togithub.com/charliermarsh/ruff/pull/4854)
- [@&#8203;addisoncrump](https://togithub.com/addisoncrump) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4893](https://togithub.com/charliermarsh/ruff/pull/4893)

**Full Changelog**:
astral-sh/ruff@v0.0.270...v0.0.271

</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:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
konstin pushed a commit that referenced this pull request Jun 13, 2023
@tjkuson tjkuson deleted the iterate-over-set branch July 10, 2023 09:55
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.

4 participants