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

[flake8-pyi] Implement PYI012 #3743

Merged
merged 17 commits into from
Mar 27, 2023
Merged

[flake8-pyi] Implement PYI012 #3743

merged 17 commits into from
Mar 27, 2023

Conversation

JBLDKY
Copy link
Contributor

@JBLDKY JBLDKY commented Mar 26, 2023

Looking for some feedback on my implementation of PYI012!

Initial commit that triggers the violation. No real logic yet.
Changed the name of the rule to be more compliant with naming standards
@github-actions
Copy link
Contributor

github-actions bot commented Mar 26, 2023

PR Check Results

Ecosystem

✅ ecosystem check detected no changes.

Benchmark

Linux

group                                      main                                   pr
-----                                      ----                                   --
linter/all-rules/large/dataset.py          1.01     13.8±0.04ms     3.0 MB/sec    1.00     13.6±0.05ms     3.0 MB/sec
linter/all-rules/numpy/ctypeslib.py        1.02      3.6±0.01ms     4.6 MB/sec    1.00      3.6±0.01ms     4.7 MB/sec
linter/all-rules/numpy/globals.py          1.03    502.7±0.98µs     5.9 MB/sec    1.00    489.1±1.10µs     6.0 MB/sec
linter/all-rules/pydantic/types.py         1.01      6.1±0.02ms     4.2 MB/sec    1.00      6.0±0.01ms     4.2 MB/sec
linter/default-rules/large/dataset.py      1.02      7.4±0.09ms     5.5 MB/sec    1.00      7.3±0.01ms     5.6 MB/sec
linter/default-rules/numpy/ctypeslib.py    1.02   1670.4±6.37µs    10.0 MB/sec    1.00   1641.0±3.17µs    10.1 MB/sec
linter/default-rules/numpy/globals.py      1.02    186.7±0.36µs    15.8 MB/sec    1.00    183.5±1.45µs    16.1 MB/sec
linter/default-rules/pydantic/types.py     1.01      3.5±0.01ms     7.3 MB/sec    1.00      3.4±0.01ms     7.5 MB/sec

Windows

group                                      main                                   pr
-----                                      ----                                   --
linter/all-rules/large/dataset.py          1.01     19.6±0.33ms     2.1 MB/sec    1.00     19.4±0.30ms     2.1 MB/sec
linter/all-rules/numpy/ctypeslib.py        1.03      5.2±0.10ms     3.2 MB/sec    1.00      5.1±0.12ms     3.3 MB/sec
linter/all-rules/numpy/globals.py          1.01   653.8±16.97µs     4.5 MB/sec    1.00   647.8±16.05µs     4.6 MB/sec
linter/all-rules/pydantic/types.py         1.00      8.6±0.23ms     3.0 MB/sec    1.00      8.6±0.29ms     3.0 MB/sec
linter/default-rules/large/dataset.py      1.01     10.6±0.20ms     3.8 MB/sec    1.00     10.5±0.14ms     3.9 MB/sec
linter/default-rules/numpy/ctypeslib.py    1.00      2.3±0.03ms     7.4 MB/sec    1.02      2.3±0.05ms     7.3 MB/sec
linter/default-rules/numpy/globals.py      1.00   263.4±11.22µs    11.2 MB/sec    1.02   269.0±13.82µs    11.0 MB/sec
linter/default-rules/pydantic/types.py     1.00      4.9±0.18ms     5.2 MB/sec    1.00      4.9±0.09ms     5.2 MB/sec

@JonathanPlasse
Copy link
Contributor

LGTM

Do you plan to implement the auto-fix?

@JBLDKY
Copy link
Contributor Author

JBLDKY commented Mar 26, 2023

I certainly am planning to implement the auto-fix!
Thanks for taking a look at the draft

@charliermarsh
Copy link
Member

Take a look at crates/ruff/src/rules/flake8_pie/rules.rs#no_unnecessary_pass for an autofix implementation. It's a similar rule (though I'm ok adding this one too).

also changed the displayed messages to be more inline with the rest of the codebase
I was under the impression that every occurrence of the pass statement in every class was supposed to be diagnosed. However, upon examining the original rule more closely, that was not the case. See the new updated test for more information.
as opposed to .pyi
@JonathanPlasse
Copy link
Contributor

To test your implementation, you can also run flake8-pyi and ruff on typeshed and see if you have a different number of errors or not.

@JBLDKY
Copy link
Contributor Author

JBLDKY commented Mar 27, 2023

Great idea, will do that tonight. Been struggling with the CI Clippy telling me:

error[E0599]: no method named `try_amend` found for struct `ruff_diagnostics::Diagnostic` in the current scope
  --> crates/ruff/src/rules/flake8_pyi/rules/pass_in_class_body.rs:39:28
   |
39 |                 diagnostic.try_amend(|| {
   |                            ^^^^^^^^^ method not found in `ruff_diagnostics::Diagnostic`

For more information about this error, try `rustc --explain E0599`.
error: could not compile `ruff` due to previous error
warning: build failed, waiting for other jobs to finish...
Error: Process completed with exit code 101.

Clippy complains about no such thing when I run it locally and the pre-commit passes all tests too.

@JonathanPlasse
Copy link
Contributor

JonathanPlasse commented Mar 27, 2023

I had to rebase my branch some time ago to fix a similar error.
try_amend was renamed try_set_fix.

@JBLDKY
Copy link
Contributor Author

JBLDKY commented Mar 27, 2023

I had to rebase my branch some time ago to fix a similar error. try_amend was renamed try_set_fix.

Well that's embarrassing, thank you very much. All is good now!

@JBLDKY JBLDKY marked this pull request as ready for review March 27, 2023 17:10
@charliermarsh charliermarsh enabled auto-merge (squash) March 27, 2023 18:12
@charliermarsh charliermarsh enabled auto-merge (squash) March 27, 2023 18:14
@charliermarsh charliermarsh changed the title Implementation of flake-8 PYI012 [flake8-pyi] Implement PYI012` Mar 27, 2023
@charliermarsh charliermarsh changed the title [flake8-pyi] Implement PYI012` [flake8-pyi] Implement PYI012 Mar 27, 2023
@charliermarsh charliermarsh enabled auto-merge (squash) March 27, 2023 18:15
@charliermarsh charliermarsh added the rule Implementing or modifying a lint rule label Mar 27, 2023
@charliermarsh charliermarsh merged commit 0eb5a22 into astral-sh:main Mar 27, 2023
@JBLDKY JBLDKY deleted the pyi012 branch March 27, 2023 18:33
renovate bot added a commit to ixm-one/pytest-cmake-presets that referenced this pull request Mar 30, 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) | `^0.0.259` ->
`^0.0.260` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/compatibility-slim/0.0.259)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/confidence-slim/0.0.259)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

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

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

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

#### What's Changed

##### Rules

- \[`flake8-bugbear`] Add more immutable functions for `B008` by
[@&#8203;rouge8](https://togithub.com/rouge8) in
[astral-sh/ruff#3764
- \[`flake8-bugbear`] Allow `pathlib.Path()` in `B008` by
[@&#8203;rouge8](https://togithub.com/rouge8) in
[astral-sh/ruff#3794
- \[`flake8-bugbear`] Expand the scope of useless-expression (B018) by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3455
- \[`flake8-bugbear`]: Implement rule `B031` by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[astral-sh/ruff#3680
- \[`flake8-gettext`] Implement `flake8-gettext` by
[@&#8203;leiserfg](https://togithub.com/leiserfg) in
[astral-sh/ruff#3785
- \[`flake8-logging-format`] Add support for `.log(level, msg)` calls in
`flake8-logging-format` by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[astral-sh/ruff#3726
- \[`flake8-logging-format`] Allow aliased `logging` module as a logger
candidate by [@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[astral-sh/ruff#3718
- \[`flake8-pyi`] Add autofix for `PYI014` by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3729
- \[`flake8-pyi`] Implement `PYI012` by
[@&#8203;JBLDKY](https://togithub.com/JBLDKY) in
[astral-sh/ruff#3743
- \[`flake8-pyi`] Implement `PYI015` by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3728
- \[`flake8-simplify`] Fix SIM222 and SIM223 false negative by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3740
- \[`isort`]: support submodules in known\_(first|third)\_party config
options by [@&#8203;astaric](https://togithub.com/astaric) in
[astral-sh/ruff#3768
- \[`pycodestyle`] Use unicode-width to determine line-length instead of
character count by
[@&#8203;MichaReiser](https://togithub.com/MichaReiser) in
[astral-sh/ruff#3714
- \[`pydocstyle`] Implement autofix for `D403` by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3731
- \[`pylint`] Avoid `useless-import alias` (`C0414`) in `.pyi` files by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3761
- \[`pylint`] Exempt `PLR1711` and `RET501` if non-`None` annotation by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3705
- \[`tryceratops`] Exempt return with side effects for TRY300 by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3780

##### Bug Fixes

- Avoid parsing `ForwardRef` contents as type references by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3698
- Avoid parsing f-strings in type annotations by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3699
- Include `with` statements in complexity calculation by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3771
- Use import alias locations for `pep8-naming` import rules by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3772
- Allow `TID252` to fix all valid module paths by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3796
- Fix SIM118 auto-fix by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3695
- Avoid panics for implicitly concatenated forward references by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3700
- Allow simple container literals as default values by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3703
- Traverse over nested string type annotations by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3724
- Use `wild::args()` and add `wild` as a dependency by
[@&#8203;agriyakhetarpal](https://togithub.com/agriyakhetarpal) in
[astral-sh/ruff#3739
- Avoid overlong-line errors for lines that end with URLs by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3663
- Sort statistics by count by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3748
- Reduce explicit clones by
[@&#8203;MichaReiser](https://togithub.com/MichaReiser) in
[astral-sh/ruff#3793
- Add flymake-ruff to docs by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3800

#### New Contributors

- [@&#8203;agriyakhetarpal](https://togithub.com/agriyakhetarpal) made
their first contribution in
[astral-sh/ruff#3739
- [@&#8203;leiserfg](https://togithub.com/leiserfg) made their first
contribution in
[astral-sh/ruff#3741
- [@&#8203;JBLDKY](https://togithub.com/JBLDKY) made their first
contribution in
[astral-sh/ruff#3743
- [@&#8203;astaric](https://togithub.com/astaric) made their first
contribution in
[astral-sh/ruff#3768

**Full Changelog**:
astral-sh/ruff@v0.0.259...v0.0.260

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

Signed-off-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot added a commit to allenporter/pyrainbird that referenced this pull request Mar 31, 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) | `==0.0.259` ->
`==0.0.260` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/compatibility-slim/0.0.259)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/confidence-slim/0.0.259)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

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

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

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

#### What's Changed

##### Rules

- \[`flake8-bugbear`] Add more immutable functions for `B008` by
[@&#8203;rouge8](https://togithub.com/rouge8) in
[astral-sh/ruff#3764
- \[`flake8-bugbear`] Allow `pathlib.Path()` in `B008` by
[@&#8203;rouge8](https://togithub.com/rouge8) in
[astral-sh/ruff#3794
- \[`flake8-bugbear`] Expand the scope of useless-expression (B018) by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3455
- \[`flake8-bugbear`]: Implement rule `B031` by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[astral-sh/ruff#3680
- \[`flake8-gettext`] Implement `flake8-gettext` by
[@&#8203;leiserfg](https://togithub.com/leiserfg) in
[astral-sh/ruff#3785
- \[`flake8-logging-format`] Add support for `.log(level, msg)` calls in
`flake8-logging-format` by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[astral-sh/ruff#3726
- \[`flake8-logging-format`] Allow aliased `logging` module as a logger
candidate by [@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[astral-sh/ruff#3718
- \[`flake8-pyi`] Add autofix for `PYI014` by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3729
- \[`flake8-pyi`] Implement `PYI012` by
[@&#8203;JBLDKY](https://togithub.com/JBLDKY) in
[astral-sh/ruff#3743
- \[`flake8-pyi`] Implement `PYI015` by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3728
- \[`flake8-simplify`] Fix SIM222 and SIM223 false negative by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3740
- \[`isort`]: support submodules in known\_(first|third)\_party config
options by [@&#8203;astaric](https://togithub.com/astaric) in
[astral-sh/ruff#3768
- \[`pycodestyle`] Use unicode-width to determine line-length instead of
character count by
[@&#8203;MichaReiser](https://togithub.com/MichaReiser) in
[astral-sh/ruff#3714
- \[`pydocstyle`] Implement autofix for `D403` by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3731
- \[`pylint`] Avoid `useless-import alias` (`C0414`) in `.pyi` files by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3761
- \[`pylint`] Exempt `PLR1711` and `RET501` if non-`None` annotation by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3705
- \[`tryceratops`] Exempt return with side effects for TRY300 by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3780

##### Bug Fixes

- Avoid parsing `ForwardRef` contents as type references by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3698
- Avoid parsing f-strings in type annotations by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3699
- Include `with` statements in complexity calculation by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3771
- Use import alias locations for `pep8-naming` import rules by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3772
- Allow `TID252` to fix all valid module paths by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3796
- Fix SIM118 auto-fix by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3695
- Avoid panics for implicitly concatenated forward references by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3700
- Allow simple container literals as default values by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3703
- Traverse over nested string type annotations by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3724
- Use `wild::args()` and add `wild` as a dependency by
[@&#8203;agriyakhetarpal](https://togithub.com/agriyakhetarpal) in
[astral-sh/ruff#3739
- Avoid overlong-line errors for lines that end with URLs by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3663
- Sort statistics by count by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3748
- Reduce explicit clones by
[@&#8203;MichaReiser](https://togithub.com/MichaReiser) in
[astral-sh/ruff#3793
- Add flymake-ruff to docs by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3800

#### New Contributors

- [@&#8203;agriyakhetarpal](https://togithub.com/agriyakhetarpal) made
their first contribution in
[astral-sh/ruff#3739
- [@&#8203;leiserfg](https://togithub.com/leiserfg) made their first
contribution in
[astral-sh/ruff#3741
- [@&#8203;JBLDKY](https://togithub.com/JBLDKY) made their first
contribution in
[astral-sh/ruff#3743
- [@&#8203;astaric](https://togithub.com/astaric) made their first
contribution in
[astral-sh/ruff#3768

**Full Changelog**:
astral-sh/ruff@v0.0.259...v0.0.260

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot added a commit to allenporter/flux-local that referenced this pull request Apr 1, 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) | `==0.0.259` ->
`==0.0.260` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/compatibility-slim/0.0.259)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.260/confidence-slim/0.0.259)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

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

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

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

#### What's Changed

##### Rules

- \[`flake8-bugbear`] Add more immutable functions for `B008` by
[@&#8203;rouge8](https://togithub.com/rouge8) in
[astral-sh/ruff#3764
- \[`flake8-bugbear`] Allow `pathlib.Path()` in `B008` by
[@&#8203;rouge8](https://togithub.com/rouge8) in
[astral-sh/ruff#3794
- \[`flake8-bugbear`] Expand the scope of useless-expression (B018) by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3455
- \[`flake8-bugbear`]: Implement rule `B031` by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[astral-sh/ruff#3680
- \[`flake8-gettext`] Implement `flake8-gettext` by
[@&#8203;leiserfg](https://togithub.com/leiserfg) in
[astral-sh/ruff#3785
- \[`flake8-logging-format`] Add support for `.log(level, msg)` calls in
`flake8-logging-format` by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[astral-sh/ruff#3726
- \[`flake8-logging-format`] Allow aliased `logging` module as a logger
candidate by [@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[astral-sh/ruff#3718
- \[`flake8-pyi`] Add autofix for `PYI014` by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3729
- \[`flake8-pyi`] Implement `PYI012` by
[@&#8203;JBLDKY](https://togithub.com/JBLDKY) in
[astral-sh/ruff#3743
- \[`flake8-pyi`] Implement `PYI015` by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3728
- \[`flake8-simplify`] Fix SIM222 and SIM223 false negative by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3740
- \[`isort`]: support submodules in known\_(first|third)\_party config
options by [@&#8203;astaric](https://togithub.com/astaric) in
[astral-sh/ruff#3768
- \[`pycodestyle`] Use unicode-width to determine line-length instead of
character count by
[@&#8203;MichaReiser](https://togithub.com/MichaReiser) in
[astral-sh/ruff#3714
- \[`pydocstyle`] Implement autofix for `D403` by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3731
- \[`pylint`] Avoid `useless-import alias` (`C0414`) in `.pyi` files by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3761
- \[`pylint`] Exempt `PLR1711` and `RET501` if non-`None` annotation by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3705
- \[`tryceratops`] Exempt return with side effects for TRY300 by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3780

##### Bug Fixes

- Avoid parsing `ForwardRef` contents as type references by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3698
- Avoid parsing f-strings in type annotations by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3699
- Include `with` statements in complexity calculation by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3771
- Use import alias locations for `pep8-naming` import rules by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3772
- Allow `TID252` to fix all valid module paths by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3796
- Fix SIM118 auto-fix by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3695
- Avoid panics for implicitly concatenated forward references by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3700
- Allow simple container literals as default values by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3703
- Traverse over nested string type annotations by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3724
- Use `wild::args()` and add `wild` as a dependency by
[@&#8203;agriyakhetarpal](https://togithub.com/agriyakhetarpal) in
[astral-sh/ruff#3739
- Avoid overlong-line errors for lines that end with URLs by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3663
- Sort statistics by count by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[astral-sh/ruff#3748
- Reduce explicit clones by
[@&#8203;MichaReiser](https://togithub.com/MichaReiser) in
[astral-sh/ruff#3793
- Add flymake-ruff to docs by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#3800

#### New Contributors

- [@&#8203;agriyakhetarpal](https://togithub.com/agriyakhetarpal) made
their first contribution in
[astral-sh/ruff#3739
- [@&#8203;leiserfg](https://togithub.com/leiserfg) made their first
contribution in
[astral-sh/ruff#3741
- [@&#8203;JBLDKY](https://togithub.com/JBLDKY) made their first
contribution in
[astral-sh/ruff#3743
- [@&#8203;astaric](https://togithub.com/astaric) made their first
contribution in
[astral-sh/ruff#3768

**Full Changelog**:
astral-sh/ruff@v0.0.259...v0.0.260

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rule Implementing or modifying a lint rule
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants