Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add devcontainer support (#4676) #4678

Merged
merged 4 commits into from
May 30, 2023
Merged

Add devcontainer support (#4676) #4678

merged 4 commits into from
May 30, 2023

Conversation

vadim-su
Copy link
Contributor

Summary

Added devcontainers environment support.

Devcontainer environment contains:

  • Main utilities needed to develop Ruff
  • Configurated pre-commit
  • Additional extensions for vscode

Known problems:

Test Explorer doesn't work

[2023-05-27 11:51:25.922] [INFO] Test Explorer found
[2023-05-27 11:51:25.922] [INFO] Initializing Rust adapter
[2023-05-27 11:51:25.924] [INFO] Loading Rust Tests
[2023-05-27 11:51:26.244] [WARN] Unsupported target type: bench for linter
[2023-05-27 11:51:26.244] [WARN] Unsupported target type: bench for parser
[2023-05-27 11:58:23.366] [DEBUG] Unable to retrieve enumeration of tests. Details: Error: Command failed: cargo test -p ruff_testing_macros --lib -- --list
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on build directory
   Compiling syn v2.0.15
   Compiling ruff_testing_macros v0.0.0 (/workspaces/ruff/crates/ruff_testing_macros)
error[E0432]: unresolved imports `syn::FnArg`, `syn::ItemFn`, `syn::Pat`
  --> crates/ruff_testing_macros/src/lib.rs:13:61
   |
13 | use syn::{bracketed, parse_macro_input, parse_quote, Error, FnArg, ItemFn, LitStr, Pat, Token};
   |                                                             ^^^^^  ^^^^^^          ^^^
   |                                                             |      |               |
   |                                                             |      |               no `Pat` in the root
   |                                                             |      |               help: a similar name exists in the module: `Path`
   |                                                             |      no `ItemFn` in the root
   |                                                             no `FnArg` in the root

For more information about this error, try `rustc --explain E0432`.
error: could not compile `ruff_testing_macros` due to previous error

Test Plan

Using vscode `devcontainer` extension
  1. Open the project in vscode
  2. Reopen in container
    image
    image
Using Codespace
  1. Click on Code
  2. Go to the Codespaces tab
  3. Click the big green 🟩 button
    image

@github-actions
Copy link
Contributor

github-actions bot commented May 27, 2023

PR Check Results

Ecosystem

✅ ecosystem check detected no changes.

Benchmark

Linux

group                                      main                                   pr
-----                                      ----                                   --
linter/all-rules/large/dataset.py          1.00     14.1±0.15ms     2.9 MB/sec    1.00     14.0±0.08ms     2.9 MB/sec
linter/all-rules/numpy/ctypeslib.py        1.00      3.4±0.00ms     4.9 MB/sec    1.00      3.4±0.01ms     4.9 MB/sec
linter/all-rules/numpy/globals.py          1.01    426.3±0.90µs     6.9 MB/sec    1.00    423.5±0.73µs     7.0 MB/sec
linter/all-rules/pydantic/types.py         1.00      5.9±0.01ms     4.3 MB/sec    1.00      5.8±0.02ms     4.4 MB/sec
linter/default-rules/large/dataset.py      1.00      6.8±0.02ms     5.9 MB/sec    1.00      6.8±0.01ms     6.0 MB/sec
linter/default-rules/numpy/ctypeslib.py    1.01   1505.7±5.99µs    11.1 MB/sec    1.00   1496.9±2.73µs    11.1 MB/sec
linter/default-rules/numpy/globals.py      1.00    170.2±0.20µs    17.3 MB/sec    1.00    170.2±2.77µs    17.3 MB/sec
linter/default-rules/pydantic/types.py     1.00      3.1±0.01ms     8.2 MB/sec    1.00      3.1±0.00ms     8.2 MB/sec
parser/large/dataset.py                    1.00      5.2±0.00ms     7.8 MB/sec    1.02      5.3±0.02ms     7.7 MB/sec
parser/numpy/ctypeslib.py                  1.00   1026.7±0.93µs    16.2 MB/sec    1.01   1040.5±1.27µs    16.0 MB/sec
parser/numpy/globals.py                    1.00    106.0±0.18µs    27.8 MB/sec    1.02    107.8±0.61µs    27.4 MB/sec
parser/pydantic/types.py                   1.00      2.2±0.01ms    11.4 MB/sec    1.02      2.3±0.00ms    11.2 MB/sec

Windows

group                                      main                                   pr
-----                                      ----                                   --
linter/all-rules/large/dataset.py          1.00     16.7±0.29ms     2.4 MB/sec    1.00     16.8±0.23ms     2.4 MB/sec
linter/all-rules/numpy/ctypeslib.py        1.00      4.2±0.06ms     4.0 MB/sec    1.00      4.2±0.04ms     4.0 MB/sec
linter/all-rules/numpy/globals.py          1.00    500.8±6.47µs     5.9 MB/sec    1.00    501.0±8.38µs     5.9 MB/sec
linter/all-rules/pydantic/types.py         1.01      7.1±0.10ms     3.6 MB/sec    1.00      7.0±0.06ms     3.6 MB/sec
linter/default-rules/large/dataset.py      1.00      8.2±0.17ms     4.9 MB/sec    1.00      8.2±0.11ms     4.9 MB/sec
linter/default-rules/numpy/ctypeslib.py    1.00  1746.3±23.37µs     9.5 MB/sec    1.02  1776.9±27.51µs     9.4 MB/sec
linter/default-rules/numpy/globals.py      1.00    202.5±4.47µs    14.6 MB/sec    1.01    205.4±4.99µs    14.4 MB/sec
linter/default-rules/pydantic/types.py     1.00      3.7±0.04ms     6.9 MB/sec    1.01      3.8±0.06ms     6.8 MB/sec
parser/large/dataset.py                    1.00      6.4±0.05ms     6.3 MB/sec    1.00      6.4±0.04ms     6.3 MB/sec
parser/numpy/ctypeslib.py                  1.00  1226.3±13.73µs    13.6 MB/sec    1.00  1227.6±15.80µs    13.6 MB/sec
parser/numpy/globals.py                    1.00    125.5±2.37µs    23.5 MB/sec    1.00    125.3±2.18µs    23.5 MB/sec
parser/pydantic/types.py                   1.00      2.8±0.03ms     9.2 MB/sec    1.00      2.8±0.03ms     9.2 MB/sec

Copy link
Member

@MichaReiser MichaReiser left a comment

Choose a reason for hiding this comment

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

This is cool. Thank you.

I fixed the issue with Test Explorer in #4722

For some reason, GitHub errors with a 500 error if I open ruff in code space. That's a pitty (or will it work only after merging this PR?)

I've a few smaller comments but overall this is looking good.

.devcontainer/devcontainer.json Outdated Show resolved Hide resolved
.devcontainer/devcontainer.json Show resolved Hide resolved

pip install maturin pre-commit

pre-commit install
Copy link
Member

Choose a reason for hiding this comment

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

This seems to install pre-commit globally on my machine and not just in the devcontainer. The result is that all my git commands now fail, because I don't have pre-commit installed.

Do you know why it installs the pre-commit hook outside of the devcontainer? Should we just remove it?

Edit: Okay, the reason why is because the pre-commit hook gets added to .git/hooks. I would prefer to not adding it for now because it messes with the users' setup.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Interesting effect 😅
I completely forgot that it makes changes not only to the environment

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Should I keep it on the list of packages to install?

Copy link
Member

Choose a reason for hiding this comment

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

Yeah, I think installing is fine. User's can then opt-in by running the pre-commit install manually.

@vadim-su
Copy link
Contributor Author

Codespace works very well for me
image

@vadim-su
Copy link
Contributor Author

This is probably due to the fact that the branch is in my repository.

@MichaReiser
Copy link
Member

Codespace works very well for me image

The VS Code Codespaces works fine for me. It's just that opening codespaces on Github fails. Let's see if it is "fixed" after merging your PR.

Thank you!

@MichaReiser MichaReiser merged commit 0bc3d99 into astral-sh:main May 30, 2023
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://github.com/charliermarsh/ruff)
([changelog](https://github.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://github.com/charliermarsh/ruff/releases/tag/v0.0.271)

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

##### Settings

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

##### Bug Fixes

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

#### New Contributors

- [@&#8203;bersbersbers](https://github.com/bersbersbers) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4644](https://github.com/charliermarsh/ruff/pull/4644)
- [@&#8203;jlaneve](https://github.com/jlaneve) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4690](https://github.com/charliermarsh/ruff/pull/4690)
- [@&#8203;suharnikov](https://github.com/suharnikov) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4678](https://github.com/charliermarsh/ruff/pull/4678)
- [@&#8203;alexfikl](https://github.com/alexfikl) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4752](https://github.com/charliermarsh/ruff/pull/4752)
- [@&#8203;allisonkarlitskaya](https://github.com/allisonkarlitskaya)
made their first contribution in
[https://github.com/charliermarsh/ruff/pull/4867](https://github.com/charliermarsh/ruff/pull/4867)
- [@&#8203;Ryang20718](https://github.com/Ryang20718) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4854](https://github.com/charliermarsh/ruff/pull/4854)
- [@&#8203;addisoncrump](https://github.com/addisoncrump) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4893](https://github.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://github.com/charliermarsh/ruff)
([changelog](https://github.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://github.com/astral-sh/ruff/releases/tag/v0.0.272)

[Compare
Source](https://github.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://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4917](https://github.com/charliermarsh/ruff/pull/4917)

##### Rules

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

##### Bug Fixes

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

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

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

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

##### Settings

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

##### Bug Fixes

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

#### New Contributors

- [@&#8203;bersbersbers](https://github.com/bersbersbers) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4644](https://github.com/charliermarsh/ruff/pull/4644)
- [@&#8203;jlaneve](https://github.com/jlaneve) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4690](https://github.com/charliermarsh/ruff/pull/4690)
- [@&#8203;suharnikov](https://github.com/suharnikov) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4678](https://github.com/charliermarsh/ruff/pull/4678)
- [@&#8203;alexfikl](https://github.com/alexfikl) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4752](https://github.com/charliermarsh/ruff/pull/4752)
- [@&#8203;allisonkarlitskaya](https://github.com/allisonkarlitskaya)
made their first contribution in
[https://github.com/charliermarsh/ruff/pull/4867](https://github.com/charliermarsh/ruff/pull/4867)
- [@&#8203;Ryang20718](https://github.com/Ryang20718) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4854](https://github.com/charliermarsh/ruff/pull/4854)
- [@&#8203;addisoncrump](https://github.com/addisoncrump) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4893](https://github.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://github.com/charliermarsh/ruff)
([changelog](https://github.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://github.com/astral-sh/ruff/releases/tag/v0.0.272)

[Compare
Source](https://github.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://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4917](https://github.com/charliermarsh/ruff/pull/4917)

##### Rules

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

##### Bug Fixes

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

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

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

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

##### Settings

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

##### Bug Fixes

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

#### New Contributors

- [@&#8203;bersbersbers](https://github.com/bersbersbers) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4644](https://github.com/charliermarsh/ruff/pull/4644)
- [@&#8203;jlaneve](https://github.com/jlaneve) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4690](https://github.com/charliermarsh/ruff/pull/4690)
- [@&#8203;suharnikov](https://github.com/suharnikov) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4678](https://github.com/charliermarsh/ruff/pull/4678)
- [@&#8203;alexfikl](https://github.com/alexfikl) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4752](https://github.com/charliermarsh/ruff/pull/4752)
- [@&#8203;allisonkarlitskaya](https://github.com/allisonkarlitskaya)
made their first contribution in
[https://github.com/charliermarsh/ruff/pull/4867](https://github.com/charliermarsh/ruff/pull/4867)
- [@&#8203;Ryang20718](https://github.com/Ryang20718) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4854](https://github.com/charliermarsh/ruff/pull/4854)
- [@&#8203;addisoncrump](https://github.com/addisoncrump) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4893](https://github.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://github.com/charliermarsh/ruff)
([changelog](https://github.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://github.com/astral-sh/ruff/releases/tag/v0.0.272)

[Compare
Source](https://github.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://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4917](https://github.com/charliermarsh/ruff/pull/4917)

##### Rules

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

##### Bug Fixes

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

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

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

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

##### Settings

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

##### Bug Fixes

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

#### New Contributors

- [@&#8203;bersbersbers](https://github.com/bersbersbers) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4644](https://github.com/charliermarsh/ruff/pull/4644)
- [@&#8203;jlaneve](https://github.com/jlaneve) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4690](https://github.com/charliermarsh/ruff/pull/4690)
- [@&#8203;suharnikov](https://github.com/suharnikov) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4678](https://github.com/charliermarsh/ruff/pull/4678)
- [@&#8203;alexfikl](https://github.com/alexfikl) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4752](https://github.com/charliermarsh/ruff/pull/4752)
- [@&#8203;allisonkarlitskaya](https://github.com/allisonkarlitskaya)
made their first contribution in
[https://github.com/charliermarsh/ruff/pull/4867](https://github.com/charliermarsh/ruff/pull/4867)
- [@&#8203;Ryang20718](https://github.com/Ryang20718) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4854](https://github.com/charliermarsh/ruff/pull/4854)
- [@&#8203;addisoncrump](https://github.com/addisoncrump) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4893](https://github.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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants