chore(deps): update bugfixes
Metadata
Current evaluation
Merged automated dependency updates via Renovate bot. Updated lint/ruff to 0.0.267, pyright to 1.1.308, and types/pyright to 1.1.308 to apply bug fixes. Successfully merged.
Suggested action: —
No scores available.
Issue body
[](https://renovatebot.com)
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [lint/ruff](https://togithub.com/charliermarsh/ruff) ([changelog](https://togithub.com/charliermarsh/ruff/releases)) | `==0.0.256` -> `==0.0.267` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
| [pyright](https://togithub.com/RobertCraigie/pyright-python) | `==1.1.306` -> `==1.1.308` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
| [types/pyright](https://togithub.com/RobertCraigie/pyright-python) | `==1.1.306` -> `==1.1.308` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
---
### Release Notes
<details>
<summary>charliermarsh/ruff</summary>
### [`v0.0.267`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.267)
[Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.266...v0.0.267)
<!-- Release notes generated using configuration in .github/release.yml at main -->
#### Summary
Follow-up release to v0.0.266 to fix an issue with `python -m ruff`- and `import ruff`-based workflows.
(No new rules or functionality.)
#### What's Changed
##### Rules
- Implement `RUF010` to detect explicit type conversions within f-strings by [@​LotemAm](https://togithub.com/LotemAm) in [https://github.com/charliermarsh/ruff/pull/4387](https://togithub.com/charliermarsh/ruff/pull/4387)
##### Other Changes
- Workaround for maturin bug by [@​konstin](https://togithub.com/konstin) in [https://github.com/charliermarsh/ruff/pull/4399](https://togithub.com/charliermarsh/ruff/pull/4399)
#### New Contributors
- [@​OMEGARAZER](https://togithub.com/OMEGARAZER) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3938](https://togithub.com/charliermarsh/ruff/pull/3938)
- [@​LotemAm](https://togithub.com/LotemAm) made their first contribution in [https://github.com/charliermarsh/ruff/pull/4387](https://togithub.com/charliermarsh/ruff/pull/4387)
**Full Changelog**: https://github.com/charliermarsh/ruff/compare/v0.0.266...v0.0.267
### [`v0.0.266`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.266)
[Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.265...v0.0.266)
<!-- Release notes generated using configuration in .github/release.yml at main -->
#### What's Changed
##### Breaking Changes
- Remove deprecated `update-check` setting by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4313](https://togithub.com/charliermarsh/ruff/pull/4313)
- JSON Emitter: Use one indexed column numbers for edits by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/4007](https://togithub.com/charliermarsh/ruff/pull/4007)
##### Rules
- \[`pygrep-hooks`] Implement pygrep-hook's Mock-mistake diagnostic by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4366](https://togithub.com/charliermarsh/ruff/pull/4366)
- \[`pylint`] Implement `nested-min-max` (`W3301`) by [@​mccullocht](https://togithub.com/mccullocht) in [https://github.com/charliermarsh/ruff/pull/4200](https://togithub.com/charliermarsh/ruff/pull/4200)
- \[`flynt`] Implement Flynt static string join transform as FLY002 by [@​akx](https://togithub.com/akx) in [https://github.com/charliermarsh/ruff/pull/4196](https://togithub.com/charliermarsh/ruff/pull/4196)
- \[`pylint`] Include positional- and keyword-only arguments in too-many-arguments by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4329](https://togithub.com/charliermarsh/ruff/pull/4329)
- \[`ruff`] Update confusable character mapping by [@​akx](https://togithub.com/akx) in [https://github.com/charliermarsh/ruff/pull/4274](https://togithub.com/charliermarsh/ruff/pull/4274)
##### Settings
- Add .git-rewrite folder to default ignored folder paths by [@​jleclanche](https://togithub.com/jleclanche) in [https://github.com/charliermarsh/ruff/pull/4261](https://togithub.com/charliermarsh/ruff/pull/4261)
- Feat: detect changes also in configuration files by [@​mikeleppane](https://togithub.com/mikeleppane) in [https://github.com/charliermarsh/ruff/pull/4169](https://togithub.com/charliermarsh/ruff/pull/4169)
##### Bug Fixes
- Revert the B027 autofix logic by [@​aacunningham](https://togithub.com/aacunningham) in [https://github.com/charliermarsh/ruff/pull/4310](https://togithub.com/charliermarsh/ruff/pull/4310)
- Consider Flask app logger as logger candidate by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/4253](https://togithub.com/charliermarsh/ruff/pull/4253)
- Enforce max-doc-length for multi-line docstrings by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4347](https://togithub.com/charliermarsh/ruff/pull/4347)
- Avoid re-using imports beyond current edit site by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4378](https://togithub.com/charliermarsh/ruff/pull/4378)
- Respect insertion location when importing symbols by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4258](https://togithub.com/charliermarsh/ruff/pull/4258)
- Fix jemalloc page size on aarch64 by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/4247](https://togithub.com/charliermarsh/ruff/pull/4247)
- Fix replace_whitespace() tabulation to space by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/4226](https://togithub.com/charliermarsh/ruff/pull/4226)
- Avoid fixing `PD002` in a lambda expression by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/4286](https://togithub.com/charliermarsh/ruff/pull/4286)
- Avoid `D403` if first char cannot be uppercased by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/4283](https://togithub.com/charliermarsh/ruff/pull/4283)
- Avoid panics for f-string rewrites at start-of-file by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4291](https://togithub.com/charliermarsh/ruff/pull/4291)
- Rewrite `not not a` as `bool(a)` in boolean contexts by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4294](https://togithub.com/charliermarsh/ruff/pull/4294)
- Include static and class methods in in abstract decorator list by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4298](https://togithub.com/charliermarsh/ruff/pull/4298)
- Specify exact command in incorrect parentheses suggestion by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4300](https://togithub.com/charliermarsh/ruff/pull/4300)
- Ignore `TRY301` exceptions without except handlers by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4301](https://togithub.com/charliermarsh/ruff/pull/4301)
- Preserve whitespace around `ListComp` brackets in `C419` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/4099](https://togithub.com/charliermarsh/ruff/pull/4099)
- Tweak capitalization of B021 message by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4350](https://togithub.com/charliermarsh/ruff/pull/4350)
- Avoid debug panic with empty indent replacement by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4364](https://togithub.com/charliermarsh/ruff/pull/4364)
- Use target name in hardcoded-password diagnostics by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4365](https://togithub.com/charliermarsh/ruff/pull/4365)
- Avoid underflow in expected-special-method-signature by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4377](https://togithub.com/charliermarsh/ruff/pull/4377)
- Respect `__all__` imports when determining definition visibility by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4357](https://togithub.com/charliermarsh/ruff/pull/4357)
- Ignore some methods on list in `flake8-boolean-trap` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4385](https://togithub.com/charliermarsh/ruff/pull/4385)
- Fix false positives in PD002 by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/charliermarsh/ruff/pull/4337](https://togithub.com/charliermarsh/ruff/pull/4337)
- Run autofix on initial watcher pass by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4311](https://togithub.com/charliermarsh/ruff/pull/4311)
- Avoid SIM105 autofixes that would remove comments by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4330](https://togithub.com/charliermarsh/ruff/pull/4330)
- Handle `.encode` calls on parenthesized expressions by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4338](https://togithub.com/charliermarsh/ruff/pull/4338)
- Truncate `SyntaxError`s before newline character by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/4124](https://togithub.com/charliermarsh/ruff/pull/4124)
- Use non-empty ranges for logical-lines diagnostics by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/4133](https://togithub.com/charliermarsh/ruff/pull/4133)
#### New Contributors
- [@​jleclanche](https://togithub.com/jleclanche) made their first contribution in [https://github.com/charliermarsh/ruff/pull/4261](https://togithub.com/charliermarsh/ruff/pull/4261)
- [@​aureliojargas](https://togithub.com/aureliojargas) made their first contribution in [https://github.com/charliermarsh/ruff/pull/4306](https://togithub.com/charliermarsh/ruff/pull/4306)
- [@​intgr](https://togithub.com/intgr) made their first contribution in [https://github.com/charliermarsh/ruff/pull/4304](https://togithub.com/charliermarsh/ruff/pull/4304)
- [@​mikeleppane](https://togithub.com/mikeleppane) made their first contribution in [https://github.com/charliermarsh/ruff/pull/4169](https://togithub.com/charliermarsh/ruff/pull/4169)
- [@​dependabot](https://togithub.com/dependabot) made their first contribution in [https://github.com/charliermarsh/ruff/pull/4354](https://togithub.com/charliermarsh/ruff/pull/4354)
**Full Changelog**: https://github.com/charliermarsh/ruff/compare/v0.0.265...v0.0.266
### [`v0.0.265`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.265)
[Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.264...v0.0.265)
<!-- Release notes generated using configuration in .github/release.yml at main -->
#### What's Changed
##### Breaking Changes
- Change `--fix-only` exit semantics to mirror `--fix` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4146](https://togithub.com/charliermarsh/ruff/pull/4146)
##### Rules
- \[flake8-pyi] PYI020 by [@​arya-k](https://togithub.com/arya-k) in [https://github.com/charliermarsh/ruff/pull/4211](https://togithub.com/charliermarsh/ruff/pull/4211)
- Update B027 to support autofixing by [@​aacunningham](https://togithub.com/aacunningham) in [https://github.com/charliermarsh/ruff/pull/4178](https://togithub.com/charliermarsh/ruff/pull/4178)
- \[`flake8-pyi`] Implement `PYI042` and `PYI043` by [@​arya-k](https://togithub.com/arya-k) in [https://github.com/charliermarsh/ruff/pull/4214](https://togithub.com/charliermarsh/ruff/pull/4214)
- \[`pylint`] Implement import-self (`W0406`) by [@​chanman3388](https://togithub.com/chanman3388) in [https://github.com/charliermarsh/ruff/pull/4154](https://togithub.com/charliermarsh/ruff/pull/4154)
- Warn on PEP 604 syntax not in an annotation, but don't autofix by [@​wookie184](https://togithub.com/wookie184) in [https://github.com/charliermarsh/ruff/pull/4170](https://togithub.com/charliermarsh/ruff/pull/4170)
##### Bug Fixes
- Fix panic in pydocstyle D214 when docstring indentation is empty by [@​madkinsz](https://togithub.com/madkinsz) in [https://github.com/charliermarsh/ruff/pull/4216](https://togithub.com/charliermarsh/ruff/pull/4216)
- Render tabs as 4 spaces in diagnostics by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/4132](https://togithub.com/charliermarsh/ruff/pull/4132)
- Fix era panic caused by out of bound edition by [@​leiserfg](https://togithub.com/leiserfg) in [https://github.com/charliermarsh/ruff/pull/4206](https://togithub.com/charliermarsh/ruff/pull/4206)
- End of statement insertion should occur after newline by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/4215](https://togithub.com/charliermarsh/ruff/pull/4215)
- Ignore **debuggerskip** in unused variable checks by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4229](https://togithub.com/charliermarsh/ruff/pull/4229)
##### CLI
- Show settings path in `--show-settings` output by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/4199](https://togithub.com/charliermarsh/ruff/pull/4199)
##### Documentation
- Allow linking to individual rules by [@​calumy](https://togithub.com/calumy) in [https://github.com/charliermarsh/ruff/pull/4158](https://togithub.com/charliermarsh/ruff/pull/4158)
#### New Contributors
- [@​wookie184](https://togithub.com/wookie184) made their first contribution in [https://github.com/charliermarsh/ruff/pull/4170](https://togithub.com/charliermarsh/ruff/pull/4170)
- [@​arya-k](https://togithub.com/arya-k) made their first contribution in [https://github.com/charliermarsh/ruff/pull/4211](https://togithub.com/charliermarsh/ruff/pull/4211)
**Full Changelog**: https://github.com/charliermarsh/ruff/compare/v0.0.264...v0.0.265
### [`v0.0.264`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.264)
[Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.263...v0.0.264)
<!-- Release notes generated using configuration in .github/release.yml at 8cb76f85eba1c970a8c800348fd1e0c874621a57 -->
#### What's Changed
##### Rules
- Autofix `EM101`, `EM102`, `EM103` if possible by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/4123](https://togithub.com/charliermarsh/ruff/pull/4123)
- Add bugbear immutable functions as allowed in dataclasses by [@​mosauter](https://togithub.com/mosauter) in [https://github.com/charliermarsh/ruff/pull/4122](https://togithub.com/charliermarsh/ruff/pull/4122)
##### Settings
- Add support for providing command-line arguments via `argfile` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4087](https://togithub.com/charliermarsh/ruff/pull/4087)
##### Bug Fixes
- Make D410/D411 autofixes mutually exclusive by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/charliermarsh/ruff/pull/4110](https://togithub.com/charliermarsh/ruff/pull/4110)
- Remove `pyright` comment prefix from PYI033 checks by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/charliermarsh/ruff/pull/4152](https://togithub.com/charliermarsh/ruff/pull/4152)
- Fix F811 false positive with match by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/4161](https://togithub.com/charliermarsh/ruff/pull/4161)
- Fix `E713` and `E714` false positives for multiple comparisons by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/4083](https://togithub.com/charliermarsh/ruff/pull/4083)
- Fix B023 shadowed variables in nested functions by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/4111](https://togithub.com/charliermarsh/ruff/pull/4111)
- Preserve star-handling special-casing for force-single-line by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4129](https://togithub.com/charliermarsh/ruff/pull/4129)
- Respect parent-scoping rules for `NamedExpr` assignments by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4145](https://togithub.com/charliermarsh/ruff/pull/4145)
- Fix UP032 auto-fix by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/4165](https://togithub.com/charliermarsh/ruff/pull/4165)
- Allow boolean parameters for `pytest.param` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4176](https://togithub.com/charliermarsh/ruff/pull/4176)
##### Internal
- Replace row/column based `Location` with byte-offsets. by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3931](https://togithub.com/charliermarsh/ruff/pull/3931)
- perf(logical-lines): Various small perf improvements by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/4022](https://togithub.com/charliermarsh/ruff/pull/4022)
- Use `memchr` to speedup newline search on x86 by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3985](https://togithub.com/charliermarsh/ruff/pull/3985)
- Remove `ScopeStack` in favor of child-parent `ScopeId` pointers by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4138](https://togithub.com/charliermarsh/ruff/pull/4138)
**Full Changelog**: https://github.com/charliermarsh/ruff/compare/v0.0.263...v0.0.264
### [`v0.0.263`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.263)
[Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.262...v0.0.263)
<!-- Release notes generated using configuration in .github/release.yml at main -->
#### What's Changed
##### Rules
- \[`flake8-bugbear`] Add `pytest.raises(Exception)` support to B017 by [@​alanhdu](https://togithub.com/alanhdu) in [https://github.com/charliermarsh/ruff/pull/4052](https://togithub.com/charliermarsh/ruff/pull/4052)
- \[`flake8-import-conventions`] Implement new rule `ICN003` to ban `from ... import ...` for selected modules by [@​edgarrmondragon](https://togithub.com/edgarrmondragon) in [https://github.com/charliermarsh/ruff/pull/4040](https://togithub.com/charliermarsh/ruff/pull/4040)
- \[`pylint`] Implement PLE0302 `unexpected-special-method-signature` by [@​mccullocht](https://togithub.com/mccullocht) in [https://github.com/charliermarsh/ruff/pull/4075](https://togithub.com/charliermarsh/ruff/pull/4075)
- \[`pep8-naming`] Ignore `N815` for `TypedDict` fields by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/4066](https://togithub.com/charliermarsh/ruff/pull/4066)
##### Bug Fixes
- Avoid `PYI015` for valid default value without annotation by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/4043](https://togithub.com/charliermarsh/ruff/pull/4043)
- Avoid infinite-propagation of inline comments when force-splitting imports by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4074](https://togithub.com/charliermarsh/ruff/pull/4074)
- Fix SIM222 and SIM223 false positives and auto-fix by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/4063](https://togithub.com/charliermarsh/ruff/pull/4063)
- Unify positional and keyword arguments when checking for missing arguments in docstring by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/charliermarsh/ruff/pull/4067](https://togithub.com/charliermarsh/ruff/pull/4067)
- Avoid `RUF008` if field annotation is immutable by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/4039](https://togithub.com/charliermarsh/ruff/pull/4039)
- Increment priority should be (branch-local, global) by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/4070](https://togithub.com/charliermarsh/ruff/pull/4070)
- Ignore `ClassVar` annotation for `RUF008`, `RUF009` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/4081](https://togithub.com/charliermarsh/ruff/pull/4081)
- Support --fix in watch mode by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/charliermarsh/ruff/pull/4035](https://togithub.com/charliermarsh/ruff/pull/4035)
#### New Contributors
- [@​alanhdu](https://togithub.com/alanhdu) made their first contribution in [https://github.com/charliermarsh/ruff/pull/4052](https://togithub.com/charliermarsh/ruff/pull/4052)
- [@​pronoym99](https://togithub.com/pronoym99) made their first contribution in [https://github.com/charliermarsh/ruff/pull/4055](https://togithub.com/charliermarsh/ruff/pull/4055)
- [@​Secrus](https://togithub.com/Secrus) made their first contribution in [https://github.com/charliermarsh/ruff/pull/4085](https://togithub.com/charliermarsh/ruff/pull/4085)
- [@​madkinsz](https://togithub.com/madkinsz) made their first contribution in [https://github.com/charliermarsh/ruff/pull/4084](https://togithub.com/charliermarsh/ruff/pull/4084)
- [@​mccullocht](https://togithub.com/mccullocht) made their first contribution in [https://github.com/charliermarsh/ruff/pull/4075](https://togithub.com/charliermarsh/ruff/pull/4075)
**Full Changelog**: https://github.com/charliermarsh/ruff/compare/v0.0.262...v0.0.263
### [`v0.0.262`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.262)
[Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.261...v0.0.262)
<!-- Release notes generated using configuration in .github/release.yml at main -->
#### What's Changed
##### Configuration
- Allow users to extend the set of included files via `include` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3914](https://togithub.com/charliermarsh/ruff/pull/3914)
- Implement isort custom sections and ordering ([#​2419](https://togithub.com/charliermarsh/ruff/issues/2419)) by [@​hackedd](https://togithub.com/hackedd) in [https://github.com/charliermarsh/ruff/pull/3900](https://togithub.com/charliermarsh/ruff/pull/3900)
##### Rules
- \[`flake8-simplify`] Add autofix for `contextlib.suppress` (`SIM105`) by [@​leiserfg](https://togithub.com/leiserfg) in [https://github.com/charliermarsh/ruff/pull/3915](https://togithub.com/charliermarsh/ruff/pull/3915)
- \[`flake8-bandit`] Ignore assert errors (S101) in `TYPE_CHECKING` blocks by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3960](https://togithub.com/charliermarsh/ruff/pull/3960)
- \[`flake8-comprehensions`] Implement `unnecessary-literal-within-dict-call` (`C418`) by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3969](https://togithub.com/charliermarsh/ruff/pull/3969)
- \[`ruff`] Add checks for mutable defaults `dataclass`es by [@​mosauter](https://togithub.com/mosauter) in [https://github.com/charliermarsh/ruff/pull/3877](https://togithub.com/charliermarsh/ruff/pull/3877)
- \[`flake8-import-conventions`] Add a rule for `BannedImportAlias` by [@​stancld](https://togithub.com/stancld) in [https://github.com/charliermarsh/ruff/pull/3926](https://togithub.com/charliermarsh/ruff/pull/3926)
- \[`flake8-pyi`] Implement duplicate types in unions (`PYI016`) by [@​USER-5](https://togithub.com/USER-5) in [https://github.com/charliermarsh/ruff/pull/3922](https://togithub.com/charliermarsh/ruff/pull/3922)
- \[`flake8-bandit`] Implement flake8-bandit shell injection rules by [@​robyoung](https://togithub.com/robyoung) in [https://github.com/charliermarsh/ruff/pull/3924](https://togithub.com/charliermarsh/ruff/pull/3924)
- \[`flake8-comprehensions`] Redirect `PIE802` to `C419` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3971](https://togithub.com/charliermarsh/ruff/pull/3971)
##### Bug Fixes
- Fix unicode handling in PLE2515 by [@​konstin](https://togithub.com/konstin) in [https://github.com/charliermarsh/ruff/pull/3898](https://togithub.com/charliermarsh/ruff/pull/3898)
- Avoid adding required imports to stub files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3940](https://togithub.com/charliermarsh/ruff/pull/3940)
- Add 'or if cond' to `E712` message by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3962](https://togithub.com/charliermarsh/ruff/pull/3962)
- Ignore argument assignments when enforcing `RET504` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4004](https://togithub.com/charliermarsh/ruff/pull/4004)
- Fix (doc-)line-too-long start location by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/4006](https://togithub.com/charliermarsh/ruff/pull/4006)
- Ignore stub file assignments to value-requiring targets by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4030](https://togithub.com/charliermarsh/ruff/pull/4030)
- Allow legacy C and T selectors in JSON schema by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3889](https://togithub.com/charliermarsh/ruff/pull/3889)
- Ignore `PLW2901` when using typing cast by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3891](https://togithub.com/charliermarsh/ruff/pull/3891)
- Visit comprehension to detect group name usage/overrides by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3887](https://togithub.com/charliermarsh/ruff/pull/3887)
- Ensure that tab characters aren't in multi-line strings before throwing a violation by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/charliermarsh/ruff/pull/3837](https://togithub.com/charliermarsh/ruff/pull/3837)
- Avoid N802 violations for `@override` methods by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3912](https://togithub.com/charliermarsh/ruff/pull/3912)
- Check for arguments in inner/outer call for `C414` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3916](https://togithub.com/charliermarsh/ruff/pull/3916)
- Do not skip analysis if `*args` present for `F523` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3923](https://togithub.com/charliermarsh/ruff/pull/3923)
- Extend SIM105 to match also 'Ellipsis only' bodies in exception handlers by [@​leiserfg](https://togithub.com/leiserfg) in [https://github.com/charliermarsh/ruff/pull/3925](https://togithub.com/charliermarsh/ruff/pull/3925)
- Support `pyright: ignore` comments by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3941](https://togithub.com/charliermarsh/ruff/pull/3941)
- Tidy up some `pygrep-hooks` rules by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3942](https://togithub.com/charliermarsh/ruff/pull/3942)
- Use identifier range for pytest rules by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3948](https://togithub.com/charliermarsh/ruff/pull/3948)
- Allow `typing_extensions.TypeVar` assignments in `.pyi` files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3951](https://togithub.com/charliermarsh/ruff/pull/3951)
- Raise percent-format upgrade rule (`UP031`) for hanging modulos by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3953](https://togithub.com/charliermarsh/ruff/pull/3953)
- Check for parenthesis in implicit str concat in `PT006` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3955](https://togithub.com/charliermarsh/ruff/pull/3955)
- Do not consider nested comment as part of code by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3984](https://togithub.com/charliermarsh/ruff/pull/3984)
- Preserve type annotations when fixing `E731` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3983](https://togithub.com/charliermarsh/ruff/pull/3983)
- Remove autofix behavior for uncapitalized-environment-variables (`SIM112`) by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3988](https://togithub.com/charliermarsh/ruff/pull/3988)
- Respect typing-modules when evaluating no-return functions by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4001](https://togithub.com/charliermarsh/ruff/pull/4001)
- Avoid short-circuiting when detecting RET rules by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4002](https://togithub.com/charliermarsh/ruff/pull/4002)
- Set non-empty range for indentation diagnostics by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/4005](https://togithub.com/charliermarsh/ruff/pull/4005)
- Ignore relative imports in `banned-api` rules by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4024](https://togithub.com/charliermarsh/ruff/pull/4024)
- Support relative imports in `banned-api` enforcement by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4025](https://togithub.com/charliermarsh/ruff/pull/4025)
- Treat non-future function annotations as required-at-runtime by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4028](https://togithub.com/charliermarsh/ruff/pull/4028)
- Ignore certain flake8-pyi errors within function bodies by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/4029](https://togithub.com/charliermarsh/ruff/pull/4029)
#### New Contributors
- [@​tjkuson](https://togithub.com/tjkuson) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3886](https://togithub.com/charliermarsh/ruff/pull/3886)
- [@​mosauter](https://togithub.com/mosauter) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3877](https://togithub.com/charliermarsh/ruff/pull/3877)
- [@​stancld](https://togithub.com/stancld) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3926](https://togithub.com/charliermarsh/ruff/pull/3926)
- [@​USER-5](https://togithub.com/USER-5) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3922](https://togithub.com/charliermarsh/ruff/pull/3922)
- [@​robyoung](https://togithub.com/robyoung) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3924](https://togithub.com/charliermarsh/ruff/pull/3924)
- [@​hackedd](https://togithub.com/hackedd) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3900](https://togithub.com/charliermarsh/ruff/pull/3900)
- [@​justinchuby](https://togithub.com/justinchuby) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3982](https://togithub.com/charliermarsh/ruff/pull/3982)
- [@​mirecl](https://togithub.com/mirecl) made their first contribution in [https://github.com/charliermarsh/ruff/pull/4008](https://togithub.com/charliermarsh/ruff/pull/4008)
- [@​Xemnas0](https://togithub.com/Xemnas0) made their first contribution in [https://github.com/charliermarsh/ruff/pull/4026](https://togithub.com/charliermarsh/ruff/pull/4026)
**Full Changelog**: https://github.com/charliermarsh/ruff/compare/v0.0.261...v0.0.262
### [`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 [@​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 [@​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 [@​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 [@​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 [@​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 [@​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 [@​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 [@​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 [@​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 [@​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 [@​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 [@​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 [@​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 [@​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 [@​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 [@​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 [@​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 [@​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 [@​brucearctor](https://togithub.com/brucearctor) in [https://github.com/charliermarsh/ruff/pull/3857](https://togithub.com/charliermarsh/ruff/pull/3857)
#### New Contributors
- [@​AetherUnbound](https://togithub.com/AetherUnbound) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3806](https://togithub.com/charliermarsh/ruff/pull/3806)
- [@​Hnasar](https://togithub.com/Hnasar) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3835](https://togithub.com/charliermarsh/ruff/pull/3835)
- [@​nvuillam](https://togithub.com/nvuillam) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3848](https://togithub.com/charliermarsh/ruff/pull/3848)
- [@​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**: https://github.com/charliermarsh/ruff/compare/v0.0.260...v0.0.261
### [`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 [@​rouge8](https://togithub.com/rouge8) in [https://github.com/charliermarsh/ruff/pull/3764](https://togithub.com/charliermarsh/ruff/pull/3764)
- \[`flake8-bugbear`] Allow `pathlib.Path()` in `B008` by [@​rouge8](https://togithub.com/rouge8) in [https://github.com/charliermarsh/ruff/pull/3794](https://togithub.com/charliermarsh/ruff/pull/3794)
- \[`flake8-bugbear`] Expand the scope of useless-expression (B018) by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3455](https://togithub.com/charliermarsh/ruff/pull/3455)
- \[`flake8-bugbear`]: Implement rule `B031` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3680](https://togithub.com/charliermarsh/ruff/pull/3680)
- \[`flake8-gettext`] Implement `flake8-gettext` by [@​leiserfg](https://togithub.com/leiserfg) in [https://github.com/charliermarsh/ruff/pull/3785](https://togithub.com/charliermarsh/ruff/pull/3785)
- \[`flake8-logging-format`] Add support for `.log(level, msg)` calls in `flake8-logging-format` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3726](https://togithub.com/charliermarsh/ruff/pull/3726)
- \[`flake8-logging-format`] Allow aliased `logging` module as a logger candidate by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3718](https://togithub.com/charliermarsh/ruff/pull/3718)
- \[`flake8-pyi`] Add autofix for `PYI014` by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3729](https://togithub.com/charliermarsh/ruff/pull/3729)
- \[`flake8-pyi`] Implement `PYI012` by [@​JBLDKY](https://togithub.com/JBLDKY) in [https://github.com/charliermarsh/ruff/pull/3743](https://togithub.com/charliermarsh/ruff/pull/3743)
- \[`flake8-pyi`] Implement `PYI015` by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3728](https://togithub.com/charliermarsh/ruff/pull/3728)
- \[`flake8-simplify`] Fix SIM222 and SIM223 false negative by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3740](https://togithub.com/charliermarsh/ruff/pull/3740)
- \[`isort`]: support submodules in known\_(first|third)\_party config options by [@​astaric](https://togithub.com/astaric) in [https://github.com/charliermarsh/ruff/pull/3768](https://togithub.com/charliermarsh/ruff/pull/3768)
- \[`pycodestyle`] Use unicode-width to determine line-length instead of character count by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3714](https://togithub.com/charliermarsh/ruff/pull/3714)
- \[`pydocstyle`] Implement autofix for `D403` by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3731](https://togithub.com/charliermarsh/ruff/pull/3731)
- \[`pylint`] Avoid `useless-import alias` (`C0414`) in `.pyi` files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3761](https://togithub.com/charliermarsh/ruff/pull/3761)
- \[`pylint`] Exempt `PLR1711` and `RET501` if non-`None` annotation by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3705](https://togithub.com/charliermarsh/ruff/pull/3705)
- \[`tryceratops`] Exempt return with side effects for TRY300 by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3780](https://togithub.com/charliermarsh/ruff/pull/3780)
##### Bug Fixes
- Avoid parsing `ForwardRef` contents as type references by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3698](https://togithub.com/charliermarsh/ruff/pull/3698)
- Avoid parsing f-strings in type annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3699](https://togithub.com/charliermarsh/ruff/pull/3699)
- Include `with` statements in complexity calculation by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3771](https://togithub.com/charliermarsh/ruff/pull/3771)
- Use import alias locations for `pep8-naming` import rules by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3772](https://togithub.com/charliermarsh/ruff/pull/3772)
- Allow `TID252` to fix all valid module paths by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3796](https://togithub.com/charliermarsh/ruff/pull/3796)
- Fix SIM118 auto-fix by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3695](https://togithub.com/charliermarsh/ruff/pull/3695)
- Avoid panics for implicitly concatenated forward references by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3700](https://togithub.com/charliermarsh/ruff/pull/3700)
- Allow simple container literals as default values by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3703](https://togithub.com/charliermarsh/ruff/pull/3703)
- Traverse over nested string type annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3724](https://togithub.com/charliermarsh/ruff/pull/3724)
- Use `wild::args()` and add `wild` as a dependency by [@​agriyakhetarpal](https://togithub.com/agriyakhetarpal) in [https://github.com/charliermarsh/ruff/pull/3739](https://togithub.com/charliermarsh/ruff/pull/3739)
- Avoid overlong-line errors for lines that end with URLs by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3663](https://togithub.com/charliermarsh/ruff/pull/3663)
- Sort statistics by count by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3748](https://togithub.com/charliermarsh/ruff/pull/3748)
- Reduce explicit clones by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3793](https://togithub.com/charliermarsh/ruff/pull/3793)
- Add flymake-ruff to docs by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3800](https://togithub.com/charliermarsh/ruff/pull/3800)
#### New Contributors
- [@​agriyakhetarpal](https://togithub.com/agriyakhetarpal) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3739](https://togithub.com/charliermarsh/ruff/pull/3739)
- [@​leiserfg](https://togithub.com/leiserfg) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3741](https://togithub.com/charliermarsh/ruff/pull/3741)
- [@​JBLDKY](https://togithub.com/JBLDKY) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3743](https://togithub.com/charliermarsh/ruff/pull/3743)
- [@​astaric](https://togithub.com/astaric) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3768](https://togithub.com/charliermarsh/ruff/pull/3768)
**Full Changelog**: https://github.com/charliermarsh/ruff/compare/v0.0.259...v0.0.260
### [`v0.0.259`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.259)
[Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.258...v0.0.259)
<!-- Release notes generated using configuration in .github/release.yml at main -->
#### Summary
Follow-up release to `v0.0.258` to fix an issue related to rule resolution via `select` and `ignore`.
#### What's Changed
##### Bug Fixes
- Fix RuleSet.remove by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3685](https://togithub.com/charliermarsh/ruff/pull/3685)
- Respect all rule-exemption sources when suppressing parser errors by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3665](https://togithub.com/charliermarsh/ruff/pull/3665)
- Avoid nested loops in `missing_whitespace` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3688](https://togithub.com/charliermarsh/ruff/pull/3688)
**Full Changelog**: https://github.com/charliermarsh/ruff/compare/v0.0.258...v0.0.259
### [`v0.0.258`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.258)
[Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.257...v0.0.258)
<!-- Release notes generated using configuration in .github/release.yml at main -->
#### What's Changed
##### Rules
- \[`flake8-comprehensions`] Update `C416` with dict comprehension (autofixable) by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3605](https://togithub.com/charliermarsh/ruff/pull/3605)
- \[`pylint`]: Implement `assert-on-string-literal` (`W0129`) by [@​latonis](https://togithub.com/latonis) in [https://github.com/charliermarsh/ruff/pull/3610](https://togithub.com/charliermarsh/ruff/pull/3610)
- \[`pyupgrade`] Convert single-argument %-style format calls by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3600](https://togithub.com/charliermarsh/ruff/pull/3600)
- \[`pyupgrade`] Flag PEP 585 and PEP 604 violations in quoted annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3593](https://togithub.com/charliermarsh/ruff/pull/3593)
- \[`pyupgrade`] Enable autofix for annotations within 'simple' string literals by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3657](https://togithub.com/charliermarsh/ruff/pull/3657)
- \[`pyflakes`] Add autofix functionality for `F523` ([#​3613](https://togithub.com/charliermarsh/ruff/issues/3613)) by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3613](https://togithub.com/charliermarsh/ruff/pull/3613)
- \[`flake8-bandit`]: Implement deny-list rules for suspicious member calls by [@​colin99d](https://togithub.com/colin99d) in [https://github.com/charliermarsh/ruff/pull/3239](https://togithub.com/charliermarsh/ruff/pull/3239)
- \[`flake8-annotations`] Add autofix for `ANN204` with magic methods by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3633](https://togithub.com/charliermarsh/ruff/pull/3633)
- \[`pylint`] Implement `binary-op-exception` (`PLW0711`) by [@​latonis](https://togithub.com/latonis) in [https://github.com/charliermarsh/ruff/pull/3639](https://togithub.com/charliermarsh/ruff/pull/3639)
- \[`flake8-django`]: Implement rule DJ012 by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3659](https://togithub.com/charliermarsh/ruff/pull/3659)
##### Bug Fixes
- Check exclusions prior to resolving `pyproject.toml` files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3588](https://togithub.com/charliermarsh/ruff/pull/3588)
- Fix D417 false positive by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3596](https://togithub.com/charliermarsh/ruff/pull/3596)
- Avoid removing comment hash for noqa's with trailing content by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3589](https://togithub.com/charliermarsh/ruff/pull/3589)
- Avoid panics for implicitly-concatenated docstrings by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3584](https://togithub.com/charliermarsh/ruff/pull/3584)
- Fix infinite loop due to rules `D207` & `W605` by [@​vlindhol](https://togithub.com/vlindhol) in [https://github.com/charliermarsh/ruff/pull/3609](https://togithub.com/charliermarsh/ruff/pull/3609)
- Avoid trimming escaped whitespace in D210 by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3635](https://togithub.com/charliermarsh/ruff/pull/3635)
- Handle `UP032` autofix with adjacent keywords by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3636](https://togithub.com/charliermarsh/ruff/pull/3636)
- Consider same-site fixes to be overlapping by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3638](https://togithub.com/charliermarsh/ruff/pull/3638)
- Avoid `RUF007` fixes for more than two arguments by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3654](https://togithub.com/charliermarsh/ruff/pull/3654)
- Allow `pairwise` diagnostics for `zip(..., strict=True)` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3669](https://togithub.com/charliermarsh/ruff/pull/3669)
- isort: fix bad interaction between `force-sort-within-sections` and `force-to-top` by [@​bluetech](https://togithub.com/bluetech) in [https://github.com/charliermarsh/ruff/pull/3645](https://togithub.com/charliermarsh/ruff/pull/3645)
- Gracefully handle lint panics by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3509](https://togithub.com/charliermarsh/ruff/pull/3509)
- Fix TRY300 false positive by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3634](https://togithub.com/charliermarsh/ruff/pull/3634)
- Avoid raising PEP 604 errors with forward-referenced members by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3640](https://togithub.com/charliermarsh/ruff/pull/3640)
- Avoid attempting infinite `open` fix with re-bound builtin by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3650](https://togithub.com/charliermarsh/ruff/pull/3650)
- Check indentation level when executing E231 by [@​kyoto7250](https://togithub.com/kyoto7250) in [https://github.com/charliermarsh/ruff/pull/3668](https://togithub.com/charliermarsh/ruff/pull/3668)
- Flag, but don't fix, unused imports (`F401`) in `ModuleNotFoundError` blocks by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3658](https://togithub.com/charliermarsh/ruff/pull/3658)
#### New Contributors
- [@​Rogdham](https://togithub.com/Rogdham) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3607](https://togithub.com/charliermarsh/ruff/pull/3607)
- [@​vlindhol](https://togithub.com/vlindhol) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3609](https://togithub.com/charliermarsh/ruff/pull/3609)
- [@​dhruvmanila](https://togithub.com/dhruvmanila) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3605](https://togithub.com/charliermarsh/ruff/pull/3605)
- [@​luke396](https://togithub.com/luke396) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3604](https://togithub.com/charliermarsh/ruff/pull/3604)
- [@​fuziontech](https://togithub.com/fuziontech) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3641](https://togithub.com/charliermarsh/ruff/pull/3641)
**Full Changelog**: https://github.com/charliermarsh/ruff/compare/v0.0.257...v0.0.258
### [`v0.0.257`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.257)
[Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.256...v0.0.257)
<!-- Release notes generated using configuration in .github/release.yml at main -->
#### What's Changed
##### Rules
- \[`ruff`] Prefer `itertools.pairwise()` over `zip()` for successive pairs (`RUF007`) by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/charliermarsh/ruff/pull/3501](https://togithub.com/charliermarsh/ruff/pull/3501)
- \[`flake8-bugbear`] Add `no-explicit-stacklevel` (`B028`) by [@​johnor](https://togithub.com/johnor) in [https://github.com/charliermarsh/ruff/pull/3550](https://togithub.com/charliermarsh/ruff/pull/3550)
- \[`pylint`] invalid-characters-\* by [@​r3m0t](https://togithub.com/r3m0t) in [https://github.com/charliermarsh/ruff/pull/3552](https://togithub.com/charliermarsh/ruff/pull/3552)
- \[`pylint`] Implement `useless-return` (`R1711`) by [@​tomecki](https://togithub.com/tomecki) in [https://github.com/charliermarsh/ruff/pull/
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "every weekend" in timezone Etc/UTC, Automerge - "every weekend" in timezone Etc/UTC.
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired.
---
- [ ] <!-- 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/canonical/starbase).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS45NS4xIiwidXBkYXRlZEluVmVyIjoiMzUuOTUuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged automated dependency updates via Renovate bot. Updated lint/ruff to 0.0.267, pyright to 1.1.308, and types/pyright to 1.1.308 to apply bug fixes. Successfully merged. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged automated dependency updates via Renovate. Ruff upgraded from 0.0.256 to 0.0.267, while pyright and types/pyright advanced from 1.1.306 to 1.1.308. Updates include bug fixes and minor rule additions. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #191 chore(deps): update development dependencies (non-major) | starbase | merged | Merged automated dependency updates for lint/ruff to 0.3.0 and types/pyright to 1.1.352. Approved by reviewer, passed CI, and auto-merged via Renovate bot. | |
| #27 chore(deps): update development dependencies (non-major) | craft-grammar | merged | Merged an automated Renovate pull request updating non-major development dependencies. Ruff updated to 0.4.5, mypy to 1.10.0, and pyright to 1.1.364. Approved by one reviewer, passed CI, and merged successfully. | |
| #536 chore(deps): update bugfixes | rockcraft | merged | Merged an automated dependency update from Renovate bot. Updated 11 Python packages to their latest bugfix versions. Approved by two reviewers, passed CI checks, and successfully merged. | |
| #152 chore(deps): update dependency lint/ruff to v0.1.6 | craft-application | merged | Merged automated dependency update upgrading lint/ruff from v0.1.2 to v0.1.6. Processed by Renovate bot, passed CI checks, and maintained 99.27% test coverage per Codecov. | |
| #784 chore(deps): update bugfixes | craft-parts | merged | Merged automated dependency updates for pyright to 1.1.372 and tox-gh to 1.3.2. Approved by two reviewers, passed CI checks, and auto-merged via Renovate configuration. | |
| #223 chore(deps): update dependency lint/ruff to v0.1.14 | craft-cli | merged | Merged automated dependency update for lint/ruff from v0.1.8 to v0.1.14 via Renovate bot. CI and code coverage checks passed, successfully integrating the update. | |
| #155 chore(deps): update dependency lint/ruff to v0.1.15 | craft-store | merged | Automatically updated lint/ruff from v0.1.9 to v0.1.15 via Renovate bot. The PR passed CI checks, received two approvals, and was successfully merged. | |
| #172 chore(deps): update dependency lint/ruff to v0.1.11 | craft-application | merged | Merged a Renovate-generated update upgrading lint/ruff from v0.1.7 to v0.1.11. The change passed CI checks, maintained 99.20% test coverage, received two approvals, and was successfully merged. | |
| #179 chore(deps): update dependency lint/ruff to v0.0.290 | craft-cli | merged | Merged an automated dependency update from Renovate bot, upgrading lint/ruff from v0.0.285 to v0.0.290. The PR passed CI checks, received approval, and was successfully merged into the main branch. | |
| #115 chore(deps): update dependency lint/ruff to v0.1.1 | craft-store | merged | Merged an automated dependency update from renovate[bot] upgrading lint/ruff from v0.1.0 to v0.1.1. Approved, passed CI, and successfully merged into main with a single line change. |