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

When checking module visibility, don't check entire ancestry #3835

Merged
merged 1 commit into from
Apr 3, 2023

Conversation

Hnasar
Copy link
Contributor

@Hnasar Hnasar commented Mar 31, 2023

When checking module visibility, don't check entire ancestry

I have a network system mounted on a directory that starts with an underscore, e.g. /mnt/_foo/home/timothy/ projects/my_package/foo.py`

I found that ruff wasn't showing lints for undocumented public classes, functions or modules in foo.py.

When checking for module visibility, we should stop after the module path. (In ruff, unlike pydocstyle, the module visibility overrides any
class or function visibility.)

This should fix the bug where an unrelated parent directory affects the visibility checks.

@github-actions
Copy link
Contributor

github-actions bot commented Mar 31, 2023

PR Check Results

Ecosystem

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

bokeh (+8, -0)

+ tests/unit/bokeh/_testing/util/test_env.py:1:1: D100 Missing docstring in public module
+ tests/unit/bokeh/_testing/util/test_env.py:45:5: D103 Missing docstring in public function
+ tests/unit/bokeh/_testing/util/test_env.py:51:5: D103 Missing docstring in public function
+ tests/unit/bokeh/_testing/util/test_env.py:66:5: D103 Missing docstring in public function
+ tests/unit/bokeh/_testing/util/test_env.py:73:5: D103 Missing docstring in public function
+ tests/unit/bokeh/_testing/util/test_env.py:80:5: D103 Missing docstring in public function
+ tests/unit/bokeh/_testing/util/test_env.py:87:5: D103 Missing docstring in public function
+ tests/unit/bokeh/_testing/util/test_env.py:94:5: D103 Missing docstring in public function

Benchmark

Linux

group                                      main                                   pr
-----                                      ----                                   --
linter/all-rules/large/dataset.py          1.03     15.1±0.04ms     2.7 MB/sec    1.00     14.7±0.06ms     2.8 MB/sec
linter/all-rules/numpy/ctypeslib.py        1.01      3.8±0.00ms     4.4 MB/sec    1.00      3.8±0.01ms     4.4 MB/sec
linter/all-rules/numpy/globals.py          1.00    414.4±1.81µs     7.1 MB/sec    1.00    412.4±1.65µs     7.2 MB/sec
linter/all-rules/pydantic/types.py         1.02      6.5±0.04ms     3.9 MB/sec    1.00      6.3±0.01ms     4.0 MB/sec
linter/default-rules/large/dataset.py      1.03      8.0±0.05ms     5.1 MB/sec    1.00      7.8±0.02ms     5.2 MB/sec
linter/default-rules/numpy/ctypeslib.py    1.02   1761.0±7.13µs     9.5 MB/sec    1.00   1732.5±7.66µs     9.6 MB/sec
linter/default-rules/numpy/globals.py      1.02    185.1±1.66µs    15.9 MB/sec    1.00    180.9±0.40µs    16.3 MB/sec
linter/default-rules/pydantic/types.py     1.02      3.7±0.01ms     7.0 MB/sec    1.00      3.6±0.00ms     7.1 MB/sec

Windows

group                                      main                                   pr
-----                                      ----                                   --
linter/all-rules/large/dataset.py          1.01     20.9±0.43ms  1992.7 KB/sec    1.00     20.8±0.41ms  2006.3 KB/sec
linter/all-rules/numpy/ctypeslib.py        1.02      5.4±0.24ms     3.1 MB/sec    1.00      5.3±0.13ms     3.1 MB/sec
linter/all-rules/numpy/globals.py          1.02   660.2±31.01µs     4.5 MB/sec    1.00   650.1±31.62µs     4.5 MB/sec
linter/all-rules/pydantic/types.py         1.02      9.1±0.26ms     2.8 MB/sec    1.00      8.9±0.23ms     2.9 MB/sec
linter/default-rules/large/dataset.py      1.02     10.7±0.21ms     3.8 MB/sec    1.00     10.5±0.19ms     3.9 MB/sec
linter/default-rules/numpy/ctypeslib.py    1.01      2.3±0.07ms     7.1 MB/sec    1.00      2.3±0.11ms     7.2 MB/sec
linter/default-rules/numpy/globals.py      1.05   278.0±24.35µs    10.6 MB/sec    1.00   265.5±12.32µs    11.1 MB/sec
linter/default-rules/pydantic/types.py     1.02      4.9±0.12ms     5.2 MB/sec    1.00      4.8±0.15ms     5.3 MB/sec

@charliermarsh charliermarsh added the bug Something isn't working label Apr 1, 2023
@Hnasar Hnasar force-pushed the fix-private-parent-bug branch 2 times, most recently from 93ea04a to de6225e Compare April 3, 2023 04:06
I have a network system mounted on a directory that starts with an
underscore, e.g. `/mnt/_foo/home/timothy/projects/my_package/foo.py`

I found that ruff wasn't showing lints for undocumented public classes,
functions or modules in foo.py.

When checking for module visibility, we should stop after the module
path. (In ruff, unlike pydocstyle, the module visibility overrides any
class or function visibility.)

This should fix the bug where an unrelated parent directory affects the
visibility checks.
@charliermarsh charliermarsh merged commit 849091d into astral-sh:main Apr 3, 2023
@Hnasar Hnasar deleted the fix-private-parent-bug branch April 4, 2023 22:37
bruxisma referenced this pull request in ixm-one/pytest-cmake-presets Apr 5, 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.260` ->
`^0.0.261` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.261/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.261/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.261/compatibility-slim/0.0.260)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.261/confidence-slim/0.0.260)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

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

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

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

#### What's Changed

##### Rules

- \[`flake8-simplify`] Ignore `collapsible-if` violations for `if
False:` and `if True:` by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/3732](https://togithub.com/charliermarsh/ruff/pull/3732)
- \[`flake8-pie`] Extend `unncessary-generator-any-all` to set
comprehensions by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3824](https://togithub.com/charliermarsh/ruff/pull/3824)
- \[`flake8-simplify`] Implement `dict-get-with-none-default` (`SIM910`)
by [@&#8203;kyoto7250](https://togithub.com/kyoto7250) in
[https://github.com/charliermarsh/ruff/pull/3874](https://togithub.com/charliermarsh/ruff/pull/3874)
- \[`flake8-annotations`] Additional simple magic return types by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/3805](https://togithub.com/charliermarsh/ruff/pull/3805)
- \[`flake8-pyi`]: fix PYI015 false positive on assignment of TypeVar &
friends by [@&#8203;bluetech](https://togithub.com/bluetech) in
[https://github.com/charliermarsh/ruff/pull/3861](https://togithub.com/charliermarsh/ruff/pull/3861)

##### Bug Fixes

- Improve robustness of argument removal for `encode` calls by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3802](https://togithub.com/charliermarsh/ruff/pull/3802)
- Fix SIM222 and SIM223 false positive by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/3832](https://togithub.com/charliermarsh/ruff/pull/3832)
- When checking module visibility, don't check entire ancestry by
[@&#8203;Hnasar](https://togithub.com/Hnasar) in
[https://github.com/charliermarsh/ruff/pull/3835](https://togithub.com/charliermarsh/ruff/pull/3835)
- Improve top-of-file insertions for required imports by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3779](https://togithub.com/charliermarsh/ruff/pull/3779)
- Use multi-fix semantics for `inplace` removal by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3804](https://togithub.com/charliermarsh/ruff/pull/3804)
- Flag non-`Name` expressions in `duplicate-isinstance-call` by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3817](https://togithub.com/charliermarsh/ruff/pull/3817)
- Avoid `unnecessary-comprehension-any-all` for async generators by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3823](https://togithub.com/charliermarsh/ruff/pull/3823)
- Fix `is_module_name()` and improve perf of `is_identifier()` by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/3795](https://togithub.com/charliermarsh/ruff/pull/3795)
- Allow starred arguments in B030 by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3871](https://togithub.com/charliermarsh/ruff/pull/3871)
- Support mutually exclusive branches for `B031` by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/3844](https://togithub.com/charliermarsh/ruff/pull/3844)
- Consider logger candidate from `logging` module only by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/3878](https://togithub.com/charliermarsh/ruff/pull/3878)

##### Core

- Add import insertion support to autofix capabilities by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3787](https://togithub.com/charliermarsh/ruff/pull/3787)
- Generate `ImportMap` from module path to imported dependencies by
[@&#8203;chanman3388](https://togithub.com/chanman3388) in
[https://github.com/charliermarsh/ruff/pull/3243](https://togithub.com/charliermarsh/ruff/pull/3243)

##### Docs

- Add documentation for `ruff-action` (GitHub Action!) by
[@&#8203;brucearctor](https://togithub.com/brucearctor) in
[https://github.com/charliermarsh/ruff/pull/3857](https://togithub.com/charliermarsh/ruff/pull/3857)

#### New Contributors

- [@&#8203;AetherUnbound](https://togithub.com/AetherUnbound) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/3806](https://togithub.com/charliermarsh/ruff/pull/3806)
- [@&#8203;Hnasar](https://togithub.com/Hnasar) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/3835](https://togithub.com/charliermarsh/ruff/pull/3835)
- [@&#8203;nvuillam](https://togithub.com/nvuillam) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/3848](https://togithub.com/charliermarsh/ruff/pull/3848)
- [@&#8203;brucearctor](https://togithub.com/brucearctor) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/3857](https://togithub.com/charliermarsh/ruff/pull/3857)

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

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

Signed-off-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in allenporter/pyrainbird Apr 7, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ruff](https://togithub.com/charliermarsh/ruff) | `==0.0.260` ->
`==0.0.261` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.261/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.261/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.261/compatibility-slim/0.0.260)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.261/confidence-slim/0.0.260)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

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

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

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

#### What's Changed

##### Rules

- \[`flake8-simplify`] Ignore `collapsible-if` violations for `if
False:` and `if True:` by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/3732](https://togithub.com/charliermarsh/ruff/pull/3732)
- \[`flake8-pie`] Extend `unncessary-generator-any-all` to set
comprehensions by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3824](https://togithub.com/charliermarsh/ruff/pull/3824)
- \[`flake8-simplify`] Implement `dict-get-with-none-default` (`SIM910`)
by [@&#8203;kyoto7250](https://togithub.com/kyoto7250) in
[https://github.com/charliermarsh/ruff/pull/3874](https://togithub.com/charliermarsh/ruff/pull/3874)
- \[`flake8-annotations`] Additional simple magic return types by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/3805](https://togithub.com/charliermarsh/ruff/pull/3805)
- \[`flake8-pyi`]: fix PYI015 false positive on assignment of TypeVar &
friends by [@&#8203;bluetech](https://togithub.com/bluetech) in
[https://github.com/charliermarsh/ruff/pull/3861](https://togithub.com/charliermarsh/ruff/pull/3861)

##### Bug Fixes

- Improve robustness of argument removal for `encode` calls by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3802](https://togithub.com/charliermarsh/ruff/pull/3802)
- Fix SIM222 and SIM223 false positive by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/3832](https://togithub.com/charliermarsh/ruff/pull/3832)
- When checking module visibility, don't check entire ancestry by
[@&#8203;Hnasar](https://togithub.com/Hnasar) in
[https://github.com/charliermarsh/ruff/pull/3835](https://togithub.com/charliermarsh/ruff/pull/3835)
- Improve top-of-file insertions for required imports by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3779](https://togithub.com/charliermarsh/ruff/pull/3779)
- Use multi-fix semantics for `inplace` removal by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3804](https://togithub.com/charliermarsh/ruff/pull/3804)
- Flag non-`Name` expressions in `duplicate-isinstance-call` by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3817](https://togithub.com/charliermarsh/ruff/pull/3817)
- Avoid `unnecessary-comprehension-any-all` for async generators by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3823](https://togithub.com/charliermarsh/ruff/pull/3823)
- Fix `is_module_name()` and improve perf of `is_identifier()` by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/3795](https://togithub.com/charliermarsh/ruff/pull/3795)
- Allow starred arguments in B030 by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3871](https://togithub.com/charliermarsh/ruff/pull/3871)
- Support mutually exclusive branches for `B031` by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/3844](https://togithub.com/charliermarsh/ruff/pull/3844)
- Consider logger candidate from `logging` module only by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/3878](https://togithub.com/charliermarsh/ruff/pull/3878)

##### Core

- Add import insertion support to autofix capabilities by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3787](https://togithub.com/charliermarsh/ruff/pull/3787)
- Generate `ImportMap` from module path to imported dependencies by
[@&#8203;chanman3388](https://togithub.com/chanman3388) in
[https://github.com/charliermarsh/ruff/pull/3243](https://togithub.com/charliermarsh/ruff/pull/3243)

##### Docs

- Add documentation for `ruff-action` (GitHub Action!) by
[@&#8203;brucearctor](https://togithub.com/brucearctor) in
[https://github.com/charliermarsh/ruff/pull/3857](https://togithub.com/charliermarsh/ruff/pull/3857)

#### New Contributors

- [@&#8203;AetherUnbound](https://togithub.com/AetherUnbound) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/3806](https://togithub.com/charliermarsh/ruff/pull/3806)
- [@&#8203;Hnasar](https://togithub.com/Hnasar) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/3835](https://togithub.com/charliermarsh/ruff/pull/3835)
- [@&#8203;nvuillam](https://togithub.com/nvuillam) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/3848](https://togithub.com/charliermarsh/ruff/pull/3848)
- [@&#8203;brucearctor](https://togithub.com/brucearctor) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/3857](https://togithub.com/charliermarsh/ruff/pull/3857)

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

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in allenporter/flux-local Apr 7, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ruff](https://togithub.com/charliermarsh/ruff) | `==0.0.260` ->
`==0.0.261` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.261/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.261/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.261/compatibility-slim/0.0.260)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.261/confidence-slim/0.0.260)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

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

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

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

#### What's Changed

##### Rules

- \[`flake8-simplify`] Ignore `collapsible-if` violations for `if
False:` and `if True:` by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/3732](https://togithub.com/charliermarsh/ruff/pull/3732)
- \[`flake8-pie`] Extend `unncessary-generator-any-all` to set
comprehensions by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3824](https://togithub.com/charliermarsh/ruff/pull/3824)
- \[`flake8-simplify`] Implement `dict-get-with-none-default` (`SIM910`)
by [@&#8203;kyoto7250](https://togithub.com/kyoto7250) in
[https://github.com/charliermarsh/ruff/pull/3874](https://togithub.com/charliermarsh/ruff/pull/3874)
- \[`flake8-annotations`] Additional simple magic return types by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/3805](https://togithub.com/charliermarsh/ruff/pull/3805)
- \[`flake8-pyi`]: fix PYI015 false positive on assignment of TypeVar &
friends by [@&#8203;bluetech](https://togithub.com/bluetech) in
[https://github.com/charliermarsh/ruff/pull/3861](https://togithub.com/charliermarsh/ruff/pull/3861)

##### Bug Fixes

- Improve robustness of argument removal for `encode` calls by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3802](https://togithub.com/charliermarsh/ruff/pull/3802)
- Fix SIM222 and SIM223 false positive by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/3832](https://togithub.com/charliermarsh/ruff/pull/3832)
- When checking module visibility, don't check entire ancestry by
[@&#8203;Hnasar](https://togithub.com/Hnasar) in
[https://github.com/charliermarsh/ruff/pull/3835](https://togithub.com/charliermarsh/ruff/pull/3835)
- Improve top-of-file insertions for required imports by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3779](https://togithub.com/charliermarsh/ruff/pull/3779)
- Use multi-fix semantics for `inplace` removal by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3804](https://togithub.com/charliermarsh/ruff/pull/3804)
- Flag non-`Name` expressions in `duplicate-isinstance-call` by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3817](https://togithub.com/charliermarsh/ruff/pull/3817)
- Avoid `unnecessary-comprehension-any-all` for async generators by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3823](https://togithub.com/charliermarsh/ruff/pull/3823)
- Fix `is_module_name()` and improve perf of `is_identifier()` by
[@&#8203;JonathanPlasse](https://togithub.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/3795](https://togithub.com/charliermarsh/ruff/pull/3795)
- Allow starred arguments in B030 by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3871](https://togithub.com/charliermarsh/ruff/pull/3871)
- Support mutually exclusive branches for `B031` by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/3844](https://togithub.com/charliermarsh/ruff/pull/3844)
- Consider logger candidate from `logging` module only by
[@&#8203;dhruvmanila](https://togithub.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/3878](https://togithub.com/charliermarsh/ruff/pull/3878)

##### Core

- Add import insertion support to autofix capabilities by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/3787](https://togithub.com/charliermarsh/ruff/pull/3787)
- Generate `ImportMap` from module path to imported dependencies by
[@&#8203;chanman3388](https://togithub.com/chanman3388) in
[https://github.com/charliermarsh/ruff/pull/3243](https://togithub.com/charliermarsh/ruff/pull/3243)

##### Docs

- Add documentation for `ruff-action` (GitHub Action!) by
[@&#8203;brucearctor](https://togithub.com/brucearctor) in
[https://github.com/charliermarsh/ruff/pull/3857](https://togithub.com/charliermarsh/ruff/pull/3857)

#### New Contributors

- [@&#8203;AetherUnbound](https://togithub.com/AetherUnbound) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/3806](https://togithub.com/charliermarsh/ruff/pull/3806)
- [@&#8203;Hnasar](https://togithub.com/Hnasar) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/3835](https://togithub.com/charliermarsh/ruff/pull/3835)
- [@&#8203;nvuillam](https://togithub.com/nvuillam) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/3848](https://togithub.com/charliermarsh/ruff/pull/3848)
- [@&#8203;brucearctor](https://togithub.com/brucearctor) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/3857](https://togithub.com/charliermarsh/ruff/pull/3857)

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

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

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
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants