chore(deps): update dependency lint/ruff to v0.0.284
Metadata
Current evaluation
Automated dependency update merging lint/ruff v0.0.284, replacing v0.0.272. Approved by reviewers, passed CI checks, and successfully merged into main with no coverage impact.
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://beta.ruff.rs/docs) ([source](https://togithub.com/astral-sh/ruff), [changelog](https://togithub.com/astral-sh/ruff/releases)) | `==0.0.272` -> `==0.0.284` | [](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>astral-sh/ruff (lint/ruff)</summary>
### [`v0.0.284`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.284)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.283...v0.0.284)
#### What's Changed
This release fixes a few bugs, notably the previous release announced a breaking change where the default target
Python version changed from 3.10 to 3.8 but the change was not applied. Thanks to [@​rco-ableton](https://togithub.com/rco-ableton) for fixing this in
[https://github.com/astral-sh/ruff/pull/6444](https://togithub.com/astral-sh/ruff/pull/6444)
##### Bug Fixes
- Do not trigger `S108` if path is inside `tempfile.*` call by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/6416](https://togithub.com/astral-sh/ruff/pull/6416)
- Do not allow on zero tab width by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/6429](https://togithub.com/astral-sh/ruff/pull/6429)
- Fix false-positive in submodule resolution by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6435](https://togithub.com/astral-sh/ruff/pull/6435)
#### New Contributors
- [@​rco-ableton](https://togithub.com/rco-ableton) made their first contribution in [https://github.com/astral-sh/ruff/pull/6444](https://togithub.com/astral-sh/ruff/pull/6444)
**Full Changelog**: https://github.com/astral-sh/ruff/compare/v0.0.283...v0.0.284
### [`v0.0.283`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.283)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.282...v0.0.283)
<!-- Release notes generated using configuration in .github/release.yml at main -->
#### What's Changed
##### Breaking Changes
- Assume Python 3.8 instead of 3.10 for target version by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/6397](https://togithub.com/astral-sh/ruff/pull/6397)
##### Rules
- \[`flake8-pyi`] `PYI019`: Detects if a type variable is used instead of `Self` in return annotations by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/6204](https://togithub.com/astral-sh/ruff/pull/6204)
- \[`flake8-pyi`] `PYI051`: Detects unions of `Literal` types by [@​LaBatata101](https://togithub.com/LaBatata101) in [https://github.com/astral-sh/ruff/pull/6215](https://togithub.com/astral-sh/ruff/pull/6215)
- \[`flake8-pyi`] `PYI055`: Detects unions of `type`s by [@​LaBatata101](https://togithub.com/LaBatata101) in [https://github.com/astral-sh/ruff/pull/6316](https://togithub.com/astral-sh/ruff/pull/6316)
- \[`pylint`] `E1300`: Detects invalid string format characters by [@​silvanocerza](https://togithub.com/silvanocerza) in [https://github.com/astral-sh/ruff/pull/6171](https://togithub.com/astral-sh/ruff/pull/6171)
- \[`pyupgrade`] `UP040`: Upgrades type alias annotations to use PEP-695 syntax by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/6289](https://togithub.com/astral-sh/ruff/pull/6289)
##### Rule Changes
- \[`flake8-boolean-trap`] `FBT003`: Add `is_` and `is_not` to excluded functions by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/6307](https://togithub.com/astral-sh/ruff/pull/6307)
- \[`flake8-logging-format`] Allow capitalized names for logger candidate heuristic match by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6356](https://togithub.com/astral-sh/ruff/pull/6356)
- \[`flake8-pyi`] Applicable rules are now checked non-stub code by [@​andersk](https://togithub.com/andersk) in [https://github.com/astral-sh/ruff/pull/6297](https://togithub.com/astral-sh/ruff/pull/6297)
- `PYI013`: [`ellipsis-in-non-empty-class-body`](https://beta.ruff.rs/docs/rules/ellipsis-in-non-empty-class-body)
- `PYI016`: [`duplicate-union-member`](https://beta.ruff.rs/docs/rules/duplicate-union-member)
- `PYI018`: [`unused-private-type-var`](https://beta.ruff.rs/docs/rules/unused-private-type-var)
- `PYI019`: [`custom-type-var-return-type`](https://beta.ruff.rs/docs/rules/custom-type-var-return-type)
- `PYI024`: [`collections-named-tuple`](https://beta.ruff.rs/docs/rules/collections-named-tuple)
- `PYI025`: [`unaliased-collections-abc-set-import`](https://beta.ruff.rs/docs/rules/unaliased-collections-abc-set-import)
- `PYI030`: [`unnecessary-literal-union`](https://beta.ruff.rs/docs/rules/unnecessary-literal-union)
- `PYI032`: [`any-eq-ne-annotation`](https://beta.ruff.rs/docs/rules/any-eq-ne-annotation)
- `PYI034`: [`non-self-return-type`](https://beta.ruff.rs/docs/rules/non-self-return-type)
- `PYI036`: [`bad-exit-annotation`](https://beta.ruff.rs/docs/rules/bad-exit-annotation)
- `PYI041`: [`redundant-numeric-union`](https://beta.ruff.rs/docs/rules/redundant-numeric-union)
- `PYI042`: [`snake-case-type-alias`](https://beta.ruff.rs/docs/rules/snake-case-type-alias)
- `PYI043`: [`t-suffixed-type-alias`](https://beta.ruff.rs/docs/rules/t-suffixed-type-alias)
- `PYI045`: [`iter-method-return-iterable`](https://beta.ruff.rs/docs/rules/iter-method-return-iterable)
- `PYI046`: [`unused-private-protocol`](https://beta.ruff.rs/docs/rules/unused-private-protocol)
- `PYI047`: [`unused-private-type-alias`](https://beta.ruff.rs/docs/rules/unused-private-type-alias)
- `PYI049`: [`unused-private-typed-dict`](https://beta.ruff.rs/docs/rules/unused-private-typed-dict)
- `PYI050`: [`no-return-argument-annotation-in-stub`](https://beta.ruff.rs/docs/rules/no-return-argument-annotation-in-stub) (Python ≥ 3.11)
- `PYI051`: [`redundant-literal-union`](https://beta.ruff.rs/docs/rules/redundant-literal-union)
- `PYI056`: [`unsupported-method-call-on-all`](https://beta.ruff.rs/docs/rules/unsupported-method-call-on-all)
- \[`flake8-pyi`] `PYI027` is being replaced by `PYI022` / `UP035` by [@​LaBatata101](https://togithub.com/LaBatata101) in [https://github.com/astral-sh/ruff/pull/6354](https://togithub.com/astral-sh/ruff/pull/6354)
- \[`pydocstyle`] `D103`: Don't require docstrings in `.pyi` files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6239](https://togithub.com/astral-sh/ruff/pull/6239)
- \[`pydocstyle`] `D203`: Ignore same-line docstrings for lines-before and lines-after rules by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6344](https://togithub.com/astral-sh/ruff/pull/6344)
- \[`pylint`] `PLE0605`: Allow generic tuple and list calls in `__all__` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6247](https://togithub.com/astral-sh/ruff/pull/6247)
- \[`pylint`] `PLR0124`: Add detection of comparisons with built-in calls by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6324](https://togithub.com/astral-sh/ruff/pull/6324)
- \[`pyupgrade`] `UP032`: Add support for `await` expressions in f-strings by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/6304](https://togithub.com/astral-sh/ruff/pull/6304)
- \[`pyupgrade`] `UP032`: Add support for implicitly concatenated strings by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/6263](https://togithub.com/astral-sh/ruff/pull/6263)
- \[`pyupgrade`] `UP032`: Add support for repeated format fields by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/6266](https://togithub.com/astral-sh/ruff/pull/6266)
- \[`ruff`] `RUF012`: Permit `ClassVar` and `Final` without subscript by [@​bluetech](https://togithub.com/bluetech) in [https://github.com/astral-sh/ruff/pull/6273](https://togithub.com/astral-sh/ruff/pull/6273)
##### Bug Fixes
- \[`flake8-bugbear`] `B006`: Respect `typing_extensions` imports of `Annotated` by [@​PIG208](https://togithub.com/PIG208) in [https://github.com/astral-sh/ruff/pull/6361](https://togithub.com/astral-sh/ruff/pull/6361)
- \[`flake8-pyi`] `PYI019`: Fix panic with positional-only arguments by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6350](https://togithub.com/astral-sh/ruff/pull/6350)
- \[`flake8-use-pathlib`] Avoid raising `PTH206` with `maxsplit` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6283](https://togithub.com/astral-sh/ruff/pull/6283)
- \[`flake8`] `F841`: Update autofix to not remove Jupyer magic expressions by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/6141](https://togithub.com/astral-sh/ruff/pull/6141)
- \[`pycodestyle`] `E721`: Include comparisons to builtin types by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6325](https://togithub.com/astral-sh/ruff/pull/6325)
- \[`pycodestyle`] `E721`: Match left-hand side `types()` call in `types-comparison` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6326](https://togithub.com/astral-sh/ruff/pull/6326)
- \[`pyupgrade`] `UP031`: Avoid auto-fixing if there are comments within the right-hand side by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/6364](https://togithub.com/astral-sh/ruff/pull/6364)
- \[`pyupgrade`] `UP032`: Avoid auto-fixing if comments are present around format call arguments by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/6342](https://togithub.com/astral-sh/ruff/pull/6342)
- \[`pyupgrade`] `UP032`: Improve invalid expression check by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/6308](https://togithub.com/astral-sh/ruff/pull/6308)
- Avoid attempting to fix `.format(...)` calls with too-few-arguments by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6401](https://togithub.com/astral-sh/ruff/pull/6401)
- Fix bug where `.gitignore` files in parent directories were incorrectly used by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6368](https://togithub.com/astral-sh/ruff/pull/6368)
- Fix duplicate violations raised on nested bitwise or `Union` expressions by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6399](https://togithub.com/astral-sh/ruff/pull/6399)
##### Playground
- Add a simple tooltip to the sidebar by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6295](https://togithub.com/astral-sh/ruff/pull/6295)
- Add an icon for FIR by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6292](https://togithub.com/astral-sh/ruff/pull/6292)
- Increase icon opacity on-hover by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6291](https://togithub.com/astral-sh/ruff/pull/6291)
- Tweak background on theme button by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6290](https://togithub.com/astral-sh/ruff/pull/6290)
##### Other Changes
- Improve handling of violations around Jupyter magic expressions by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5552](https://togithub.com/astral-sh/ruff/pull/5552)
- Reduce memory usage by boxing type params and arguments fields on the class definition node by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6275](https://togithub.com/astral-sh/ruff/pull/6275)
- Upgrade Rust to 1.71 by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/6323](https://togithub.com/astral-sh/ruff/pull/6323)
#### New Contributors
- [@​silvanocerza](https://togithub.com/silvanocerza) made their first contribution in [https://github.com/astral-sh/ruff/pull/6171](https://togithub.com/astral-sh/ruff/pull/6171)
- [@​PIG208](https://togithub.com/PIG208) made their first contribution in [https://github.com/astral-sh/ruff/pull/6361](https://togithub.com/astral-sh/ruff/pull/6361)
**Full Changelog**: https://github.com/astral-sh/ruff/compare/v0.0.282...v0.0.283
### [`v0.0.282`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.282)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.281...v0.0.282)
<!-- Release notes generated using configuration in .github/release.yml at v0.0.282 -->
#### What's Changed
##### Bug Fixes
- Reset model state when exiting deferred visitors by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6208](https://togithub.com/astral-sh/ruff/pull/6208)
- Skip trivia when searching for named exception by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6218](https://togithub.com/astral-sh/ruff/pull/6218)
- Avoid PERF401 false positive on list access in loop by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6220](https://togithub.com/astral-sh/ruff/pull/6220)
- Avoid detecting continuations at non-start-of-line by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6219](https://togithub.com/astral-sh/ruff/pull/6219)
- Revert "Expand scope of `quoted-annotation` rule ([#​5766](https://togithub.com/astral-sh/ruff/issues/5766))" by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6237](https://togithub.com/astral-sh/ruff/pull/6237)
#### New Contributors
- [@​klistwan](https://togithub.com/klistwan) made their first contribution in [https://github.com/astral-sh/ruff/pull/6146](https://togithub.com/astral-sh/ruff/pull/6146)
**Full Changelog**: https://github.com/astral-sh/ruff/compare/v0.0.281...v0.0.282
### [`v0.0.281`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.281)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.280...v0.0.281)
<!-- Release notes generated using configuration in .github/release.yml at v0.0.281 -->
#### What's Changed
See the [release blog post](https://astral.sh/blog/ruff-v0.0.281) for more, including detailed descriptions of any newly added rules.
##### New rules
- \[`flake8-pyi`] Implement `PYI018` by [@​LaBatata101](https://togithub.com/LaBatata101) in [https://github.com/astral-sh/ruff/pull/6018](https://togithub.com/astral-sh/ruff/pull/6018)
- \[`flake8-pyi`] Implement `PYI047` by [@​LaBatata101](https://togithub.com/LaBatata101) in [https://github.com/astral-sh/ruff/pull/6134](https://togithub.com/astral-sh/ruff/pull/6134)
- \[`flake8-pyi`] Implement `PYI049` by [@​LaBatata101](https://togithub.com/LaBatata101) in [https://github.com/astral-sh/ruff/pull/6136](https://togithub.com/astral-sh/ruff/pull/6136)
- \[`flake8-pyi`] Implement `PYI056` by [@​LaBatata101](https://togithub.com/LaBatata101) in [https://github.com/astral-sh/ruff/pull/5959](https://togithub.com/astral-sh/ruff/pull/5959)
- \[`flake8-pyi`] Implement `PYI046` by [@​LaBatata101](https://togithub.com/LaBatata101) in [https://github.com/astral-sh/ruff/pull/6098](https://togithub.com/astral-sh/ruff/pull/6098)
- \[`flake8-use-pathlib`] Implement `glob` (`PTH207`) by [@​sbrugman](https://togithub.com/sbrugman) in [https://github.com/astral-sh/ruff/pull/5939](https://togithub.com/astral-sh/ruff/pull/5939)
- \[`flake8-use-pathlib`] Implement `os-sep-split` (`PTH206`) by [@​sbrugman](https://togithub.com/sbrugman) in [https://github.com/astral-sh/ruff/pull/5936](https://togithub.com/astral-sh/ruff/pull/5936)
- \[`pycodestyle`] Implement `E241` and `E242` (tab/multiple ws after commas) by [@​akx](https://togithub.com/akx) in [https://github.com/astral-sh/ruff/pull/6094](https://togithub.com/astral-sh/ruff/pull/6094)
- \[`pylint`] Implement `self-assigning-variable` (`W0127`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/6015](https://togithub.com/astral-sh/ruff/pull/6015)
- \[`pylint`] Implement `eq-without-hash` rule (PLW1641) by [@​jelly](https://togithub.com/jelly) in [https://github.com/astral-sh/ruff/pull/5955](https://togithub.com/astral-sh/ruff/pull/5955)
- \[`pylint`] Implement `subprocess-popen-preexec-fn` (`W1509`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5978](https://togithub.com/astral-sh/ruff/pull/5978)
##### Rule changes
- \[`flake8-bugbear`] Extends `B002` to detect unary prefix decrement operators by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5998](https://togithub.com/astral-sh/ruff/pull/5998)
- \[`flake8-pytest-style`] Avoid raising PT012 for simple `with` statements by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/6081](https://togithub.com/astral-sh/ruff/pull/6081)
- \[`flake8-pytest-style`] Allow pytest.raises body to contain a single func or class definition by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/6083](https://togithub.com/astral-sh/ruff/pull/6083)
- \[`flake8-simplify`] Extend SIM118 with `not in` by [@​sbrugman](https://togithub.com/sbrugman) in [https://github.com/astral-sh/ruff/pull/5995](https://togithub.com/astral-sh/ruff/pull/5995)
- \[`perflint`] Skip `PERF203` violations for multi-statement loops by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6145](https://togithub.com/astral-sh/ruff/pull/6145)
- \[`pyupgrade`] Add support for `int`, `float`, `bool` in `UP018` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/6013](https://togithub.com/astral-sh/ruff/pull/6013)
- \[`tryceratops`] Add suggested fix for `TRY201` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/6008](https://togithub.com/astral-sh/ruff/pull/6008)
##### Settings
- Allow specification of `logging.Logger` re-exports via `logger-objects` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5750](https://togithub.com/astral-sh/ruff/pull/5750)
- Set default `max-complexity` to 10 for empty McCabe settings by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6073](https://togithub.com/astral-sh/ruff/pull/6073)
- \[`pep8-naming`]: New config option `extend-ignore-names` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/6169](https://togithub.com/astral-sh/ruff/pull/6169)
##### Bug Fixes
- Avoid raising `UP032` if `format` call arguments contain multiline expressions by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/5971](https://togithub.com/astral-sh/ruff/pull/5971)
- Fix `F507` false positive by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/5986](https://togithub.com/astral-sh/ruff/pull/5986)
- Fix logging rules with whitespace around dot by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6022](https://togithub.com/astral-sh/ruff/pull/6022)
- Ignore end-of-line comments when dirtying if-with-same-arms branches by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6031](https://togithub.com/astral-sh/ruff/pull/6031)
- Avoid treating `Literal` members as expressions with `__future__` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6032](https://togithub.com/astral-sh/ruff/pull/6032)
- Avoid refactoring `x[:1]`-like slices in RUF015 by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6150](https://togithub.com/astral-sh/ruff/pull/6150)
- Avoid key-in-dict violations for `self` accesses by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6165](https://togithub.com/astral-sh/ruff/pull/6165)
- Avoid falsely marking non-submodules as submodule aliases by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6182](https://togithub.com/astral-sh/ruff/pull/6182)
- Flag `[` as an invalid noqa suffix by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5982](https://togithub.com/astral-sh/ruff/pull/5982)
- Ignore some common builtin overrides on standard library subclasses by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6074](https://togithub.com/astral-sh/ruff/pull/6074)
- Avoid A003 violations for explicitly overridden methods by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6076](https://togithub.com/astral-sh/ruff/pull/6076)
- Include file permissions in key for cached files by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/5901](https://togithub.com/astral-sh/ruff/pull/5901)
- Ignore `explicit-string-concatenation` on single line by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/6028](https://togithub.com/astral-sh/ruff/pull/6028)
- Fix `SIM102` to handle indented `elif` by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/6072](https://togithub.com/astral-sh/ruff/pull/6072)
- Raise `PTH201` for `Path("")` by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/6095](https://togithub.com/astral-sh/ruff/pull/6095)
- Update `SIM115` to cover `pathlib.Path.open` by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/611](https://togithub.com/astral-sh/ruff/pull/611)
- Ignore end-of-line file exemption comments by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6160](https://togithub.com/astral-sh/ruff/pull/6160)
- Implement `--diff` for Jupyter Notebooks by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/6149](https://togithub.com/astral-sh/ruff/pull/6149)
- Skip BOM when determining Locator's line starts by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6159](https://togithub.com/astral-sh/ruff/pull/6159)
- Avoid parenthesizing comprehension element by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/6198](https://togithub.com/astral-sh/ruff/pull/6198)
- Do not raise `SIM105` for non-exceptions by [@​sbrugman](https://togithub.com/sbrugman) in [https://github.com/astral-sh/ruff/pull/5985](https://togithub.com/astral-sh/ruff/pull/5985)
#### New Contributors
- [@​AlexWaygood](https://togithub.com/AlexWaygood) made their first contribution in [https://github.com/astral-sh/ruff/pull/5973](https://togithub.com/astral-sh/ruff/pull/5973)
- [@​RMPR](https://togithub.com/RMPR) made their first contribution in [https://github.com/astral-sh/ruff/pull/6048](https://togithub.com/astral-sh/ruff/pull/6048)
- [@​arembridge](https://togithub.com/arembridge) made their first contribution in [https://github.com/astral-sh/ruff/pull/6079](https://togithub.com/astral-sh/ruff/pull/6079)
- [@​Eutropios](https://togithub.com/Eutropios) made their first contribution in [https://github.com/astral-sh/ruff/pull/6082](https://togithub.com/astral-sh/ruff/pull/6082)
- [@​jelly](https://togithub.com/jelly) made their first contribution in [https://github.com/astral-sh/ruff/pull/5955](https://togithub.com/astral-sh/ruff/pull/5955)
**Full Changelog**: https://github.com/astral-sh/ruff/compare/v0.0.280...v0.0.281
### [`v0.0.280`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.280)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.279...v0.0.280)
<!-- Release notes generated using configuration in .github/release.yml at v0.0.280 -->
#### What's Changed
##### Bug Fixes
- Avoid collapsing `elif` and `else` branches during import sorting by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5964](https://togithub.com/astral-sh/ruff/pull/5964)
**Full Changelog**: https://github.com/astral-sh/ruff/compare/v0.0.279...v0.0.280
### [`v0.0.279`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.279)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.278...v0.0.279)
<!-- Release notes generated using configuration in .github/release.yml at v0.0.279 -->
#### What's Changed
##### Rules
- \[`flake8-pyi`] Implement flake8-pyi's PYI026 by [@​LaBatata101](https://togithub.com/LaBatata101) in [https://github.com/astral-sh/ruff/pull/5844](https://togithub.com/astral-sh/ruff/pull/5844)
- \[`flake8-pyi`] Implement flake8-pyi's `PYI017` by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/5895](https://togithub.com/astral-sh/ruff/pull/5895)
- \[`flake8-pyi`] Implement flake8-pyi's `PYI036` by [@​density](https://togithub.com/density) in [https://github.com/astral-sh/ruff/pull/5668](https://togithub.com/astral-sh/ruff/pull/5668)
- \[`flake8-pyi`] Implement flake8-pyi's `PYI041` by [@​density](https://togithub.com/density) in [https://github.com/astral-sh/ruff/pull/5722](https://togithub.com/astral-sh/ruff/pull/5722)
- \[`flake8-use-pathlib`] Implement `os-path-getsize` and `os-path-get(a|m|c)-time` (`PTH202-205`) by [@​sbrugman](https://togithub.com/sbrugman) in [https://github.com/astral-sh/ruff/pull/5835](https://togithub.com/astral-sh/ruff/pull/5835)
- \[`flake8-use-pathlib`] Implement `path-constructor-default-argument` (`PTH201`) by [@​sbrugman](https://togithub.com/sbrugman) in [https://github.com/astral-sh/ruff/pull/5833](https://togithub.com/astral-sh/ruff/pull/5833)
- \[`pandas-vet`] Implement constant series rule (`PD101`) by [@​sbrugman](https://togithub.com/sbrugman) in [https://github.com/astral-sh/ruff/pull/5802](https://togithub.com/astral-sh/ruff/pull/5802)
- \[`pylint`] Implement Pylint's `consider-using-in` (`PLR1714`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5193](https://togithub.com/astral-sh/ruff/pull/5193)
##### Rule changes
- \[`flake8-annotations`] Check for `Any` in other types for `ANN401` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5601](https://togithub.com/astral-sh/ruff/pull/5601)
- \[`flake8-bugbear`] Add autofix for B004 by [@​density](https://togithub.com/density) in [https://github.com/astral-sh/ruff/pull/5788](https://togithub.com/astral-sh/ruff/pull/5788)
- \[`flake8-bugbear`] Remove `B904`'s lowercase exemption by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5751](https://togithub.com/astral-sh/ruff/pull/5751)
- \[`flake8-use-pathlib`] extend PTH118 with `os.sep` by [@​sbrugman](https://togithub.com/sbrugman) in [https://github.com/astral-sh/ruff/pull/5935](https://togithub.com/astral-sh/ruff/pull/5935)
- \[`pyupgrade`] Expand scope of `quoted-annotation` rule (`UP037`) by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5766](https://togithub.com/astral-sh/ruff/pull/5766)
- \[`pyupgrade`] Extend PEP 604 rewrites to support some quoted annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5725](https://togithub.com/astral-sh/ruff/pull/5725)
- \[`ruff`] Expand `RUF015` to include all expression types by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5767](https://togithub.com/astral-sh/ruff/pull/5767)
##### Bug Fixes
- Consider single element subscript expr for implicit optional by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5717](https://togithub.com/astral-sh/ruff/pull/5717)
- Ignore `Enum`-and-`str` subclasses for slots enforcement by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5749](https://togithub.com/astral-sh/ruff/pull/5749)
- Avoid removing raw strings in comparison fixes by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5755](https://togithub.com/astral-sh/ruff/pull/5755)
- Fix nested calls to `sorted` with differing arguments by [@​density](https://togithub.com/density) in [https://github.com/astral-sh/ruff/pull/5761](https://togithub.com/astral-sh/ruff/pull/5761)
- Use unused variable detection to power `incorrect-dict-iterator` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5763](https://togithub.com/astral-sh/ruff/pull/5763)
- Include alias when formatting import-from structs by [@​guillaumeLepape](https://togithub.com/guillaumeLepape) in [https://github.com/astral-sh/ruff/pull/5786](https://togithub.com/astral-sh/ruff/pull/5786)
- Make `lint_only` aware of the source kind by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5876](https://togithub.com/astral-sh/ruff/pull/5876)
- Restore `redefined-while-unused` violations in classes by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5926](https://togithub.com/astral-sh/ruff/pull/5926)
- Flatten nested tuples when fixing UP007 violations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5724](https://togithub.com/astral-sh/ruff/pull/5724)
- Ignore Jupyter Notebooks for `--add-noqa` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5727](https://togithub.com/astral-sh/ruff/pull/5727)
- Avoid checking `EXE001` and `EXE002` on WSL by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5735](https://togithub.com/astral-sh/ruff/pull/5735)
- Properly group assignment targets by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/astral-sh/ruff/pull/5728](https://togithub.com/astral-sh/ruff/pull/5728)
- Avoid stack overflow for non-BitOr binary types by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5743](https://togithub.com/astral-sh/ruff/pull/5743)
- Move function visit out of `Expr::Call` branches by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5772](https://togithub.com/astral-sh/ruff/pull/5772)
- \[B006] Add bytes to immutable types by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/5776](https://togithub.com/astral-sh/ruff/pull/5776)
- Format `SetComp` by [@​lkh42t](https://togithub.com/lkh42t) in [https://github.com/astral-sh/ruff/pull/5774](https://togithub.com/astral-sh/ruff/pull/5774)
- Gate `runtime-import-in-type-checking-block` (`TCH004`) behind enabled flag by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5789](https://togithub.com/astral-sh/ruff/pull/5789)
- perf: only compute start offset for overlong lines by [@​sbrugman](https://togithub.com/sbrugman) in [https://github.com/astral-sh/ruff/pull/5811](https://togithub.com/astral-sh/ruff/pull/5811)
- Change `pandas-use-of-dot-read-table` rule to emit only when `read_table` is used on CSV data by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5807](https://togithub.com/astral-sh/ruff/pull/5807)
- Do not fix `NamedTuple` calls containing both a list of fields and keywords by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/5799](https://togithub.com/astral-sh/ruff/pull/5799)
- Ignore directories when collecting files to lint by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/5775](https://togithub.com/astral-sh/ruff/pull/5775)
- Add filename to `noqa` warnings by [@​sobolevn](https://togithub.com/sobolevn) in [https://github.com/astral-sh/ruff/pull/5856](https://togithub.com/astral-sh/ruff/pull/5856)
- Handle io errors gracefully by [@​konstin](https://togithub.com/konstin) in [https://github.com/astral-sh/ruff/pull/5611](https://togithub.com/astral-sh/ruff/pull/5611)
- Allow `respect_gitignore` when not in a git repo by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5937](https://togithub.com/astral-sh/ruff/pull/5937)
#### New Contributors
- [@​eggplants](https://togithub.com/eggplants) made their first contribution in [https://github.com/astral-sh/ruff/pull/5741](https://togithub.com/astral-sh/ruff/pull/5741)
- [@​guillaumeLepape](https://togithub.com/guillaumeLepape) made their first contribution in [https://github.com/astral-sh/ruff/pull/5786](https://togithub.com/astral-sh/ruff/pull/5786)
- [@​odiseo0](https://togithub.com/odiseo0) made their first contribution in [https://github.com/astral-sh/ruff/pull/5888](https://togithub.com/astral-sh/ruff/pull/5888)
- [@​DavidCain](https://togithub.com/DavidCain) made their first contribution in [https://github.com/astral-sh/ruff/pull/5889](https://togithub.com/astral-sh/ruff/pull/5889)
- [@​LaBatata101](https://togithub.com/LaBatata101) made their first contribution in [https://github.com/astral-sh/ruff/pull/5844](https://togithub.com/astral-sh/ruff/pull/5844)
**Full Changelog**: https://github.com/astral-sh/ruff/compare/v0.0.278...v0.0.279
### [`v0.0.278`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.278)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.277...v0.0.278)
<!-- Release notes generated using configuration in .github/release.yml at main -->
See the [release blog post](https://astral.sh/blog/ruff-v0.0.278) for more, including detailed descriptions of any newly added rules.
#### What's Changed
##### Rules
- \[`pylint`] Implement `typevar-bivariance` (`PLC0131`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5517](https://togithub.com/astral-sh/ruff/pull/5517)
- \[`flake8-pyi`] Implement `unnecessary-literal-union` (`PYI030`) by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/5570](https://togithub.com/astral-sh/ruff/pull/5570)
- \[`pylint`] Implement `type-name-incorrect-variance` (`PLC0105`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5651](https://togithub.com/astral-sh/ruff/pull/5651)
- \[`ruff`] Implement `unnecessary-list-allocation-for-first-element` (`RUF015`) by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/5549](https://togithub.com/astral-sh/ruff/pull/5549)
- \[`flake8-bugbear`] Implement `re-sub-positional-args` (`B034`) by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5669](https://togithub.com/astral-sh/ruff/pull/5669)
- \[`ruff`] Implement `invalid-index-type` (`RUF016`) by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/5602](https://togithub.com/astral-sh/ruff/pull/5602)
##### Settings
- \[`isort`] Add `--case-sensitive` flag by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/5539](https://togithub.com/astral-sh/ruff/pull/5539)
- \[`isort`] Support globbing in `isort` options by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5473](https://togithub.com/astral-sh/ruff/pull/5473)
##### Bug Fixes
- Support autofix for some multiline `str.format` calls by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/5638](https://togithub.com/astral-sh/ruff/pull/5638)
- Avoid triggering `unnecessary-map` (`C417`) for late-bound lambdas by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5520](https://togithub.com/astral-sh/ruff/pull/5520)
- Avoid triggering DTZ001-006 when using `.astimezone()` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5524](https://togithub.com/astral-sh/ruff/pull/5524)
- Enable attribute lookups via semantic model by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5536](https://togithub.com/astral-sh/ruff/pull/5536)
- Avoid syntax errors when rewriting str(dict) in f-strings by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5538](https://togithub.com/astral-sh/ruff/pull/5538)
- Differentiate between runtime and typing-time annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5575](https://togithub.com/astral-sh/ruff/pull/5575)
- Only run pyproject.toml lint rules when enabled by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5578](https://togithub.com/astral-sh/ruff/pull/5578)
- Refactor isort directive skips to use iterators by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5623](https://togithub.com/astral-sh/ruff/pull/5623)
- Allow descriptor instantiations in dataclass fields by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5537](https://togithub.com/astral-sh/ruff/pull/5537)
- Refactor `noqa` directive parsing away from regex-based implementation by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5554](https://togithub.com/astral-sh/ruff/pull/5554)
- Emit warnings for invalid `# noqa` directives by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5571](https://togithub.com/astral-sh/ruff/pull/5571)
- Support individual codes on `# flake8: noqa` directives by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5618](https://togithub.com/astral-sh/ruff/pull/5618)
- Add `tkinter` import convention by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5626](https://togithub.com/astral-sh/ruff/pull/5626)
- Avoid `PERF401` if conditional depends on list var by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5603](https://togithub.com/astral-sh/ruff/pull/5603)
- Fix typo in complex-if-statement-in-stub message by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5635](https://togithub.com/astral-sh/ruff/pull/5635)
- Make TRY301 trigger only if a `raise` throws a caught exception by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/5455](https://togithub.com/astral-sh/ruff/pull/5455)
- Skip flake8-future-annotations checks in stub files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5652](https://togithub.com/astral-sh/ruff/pull/5652)
- Always allow PEP 585 and PEP 604 rewrites in stub files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5653](https://togithub.com/astral-sh/ruff/pull/5653)
- Add support for `Union` declarations without `|` to PYI016 by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/5598](https://togithub.com/astral-sh/ruff/pull/5598)
- Ignore `_name_` and `_value_` accesses in `flake8-self` rules by [@​monosans](https://togithub.com/monosans) in [https://github.com/astral-sh/ruff/pull/5663](https://togithub.com/astral-sh/ruff/pull/5663)
- Refactor `repeated_keys()` to use `ComparableExpr` by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/5696](https://togithub.com/astral-sh/ruff/pull/5696)
#### New Contributors
- [@​karosis88](https://togithub.com/karosis88) made their first contribution in [https://github.com/astral-sh/ruff/pull/5560](https://togithub.com/astral-sh/ruff/pull/5560)
- [@​petermattia](https://togithub.com/petermattia) made their first contribution in [https://github.com/astral-sh/ruff/pull/5579](https://togithub.com/astral-sh/ruff/pull/5579)
- [@​DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos) made their first contribution in [https://github.com/astral-sh/ruff/pull/5607](https://togithub.com/astral-sh/ruff/pull/5607)
**Full Changelog**: https://github.com/astral-sh/ruff/compare/v0.0.277...v0.0.278
### [`v0.0.277`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.277)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.276...v0.0.277)
<!-- Release notes generated using configuration in .github/release.yml at v0.0.277 -->
#### What's Changed
##### Breaking Changes
- Add .ipynb_checkpoints, .pyenv, .pytest_cache, and .vscode to default excludes by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5513](https://togithub.com/astral-sh/ruff/pull/5513)
##### Rules
- \[`pylint`] Implement Pylint `typevar-name-mismatch` (`C0132`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5501](https://togithub.com/astral-sh/ruff/pull/5501)
##### Settings
- Add `ruff rule --all` subcommand (with JSON output) by [@​akx](https://togithub.com/akx) in [https://github.com/astral-sh/ruff/pull/5059](https://togithub.com/astral-sh/ruff/pull/5059)
##### Bug Fixes
- Fix eval detection for suspicious-eval-usage by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5506](https://togithub.com/astral-sh/ruff/pull/5506)
- Avoid PERF rules for iteration-dependent assignments by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5508](https://togithub.com/astral-sh/ruff/pull/5508)
- Avoid returning first-match for rule prefixes by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5511](https://togithub.com/astral-sh/ruff/pull/5511)
**Full Changelog**: https://github.com/astral-sh/ruff/compare/v0.0.276...v0.0.277
### [`v0.0.276`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.276)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.275...v0.0.276)
<!-- Release notes generated using configuration in .github/release.yml at v0.0.276 -->
See the [release blog post](https://astral.sh/blog/ruff-v0.0.276) for more, including detailed descriptions of any newly added rules.
#### What's Changed
Highlights include: experimental support for linting Jupyter Notebooks.
To opt-in to linting Jupyter Notebook files, add the `*.ipynb` pattern to your [`include`](settings.md#include)
setting, like so:
```toml
[tool.ruff]
### Allow Ruff to discover `*.ipynb` files.
include = ["*.py", "*.pyi", "**/pyproject.toml", "*.ipynb"]
```
This will prompt Ruff to discover Jupyter Notebook files in any specified directories, and lint them
accordingly.
Jupyter Notebook support is currently opt-in and experimental. We'd love your help testing it out.
Have feedback? Run into issues? [Let us know!](https://togithub.com/astral-sh/ruff/issues/new)
##### New Rules
- \[`flake8-pyi`] Implement `PYI002`, `PYI003`, `PYI004`, `PYI005` by [@​density](https://togithub.com/density) in [https://github.com/astral-sh/ruff/pull/5457](https://togithub.com/astral-sh/ruff/pull/5457)
- \[`numpy`] Implement `numpy-deprecated-function` (`NPY003`) by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5468](https://togithub.com/astral-sh/ruff/pull/5468)
- \[`perflint`] Implement `unnecessary-list-cast` (`PERF101`) by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/5121](https://togithub.com/astral-sh/ruff/pull/5121)
- \[`perflint`] Implement `try-except-in-loop` (`PERF203`) by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/5166](https://togithub.com/astral-sh/ruff/pull/5166)
- \[`perflint`] Implement `manual-list-comprehension` (`PERF401`) and `manual-list-copy` (`PERF402`) rules by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/5298](https://togithub.com/astral-sh/ruff/pull/5298)
- \[`pylint`] Implement Pylint `single-string-used-for-slots` (`C0205`) as `single-string-slots` (`PLC0205`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5399](https://togithub.com/astral-sh/ruff/pull/5399)
##### Jupyter
- Experimental release for Jupyter notebook integration by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5363](https://togithub.com/astral-sh/ruff/pull/5363)
- Enable --watch for Jupyter notebooks by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5394](https://togithub.com/astral-sh/ruff/pull/5394)
- Consider Jupyter index for code frames (`--show-source`) by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5402](https://togithub.com/astral-sh/ruff/pull/5402)
- fixup! Consider Jupyter index for code frames (`--show-source`) ([#​5402](https://togithub.com/astral-sh/ruff/issues/5402)) by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5414](https://togithub.com/astral-sh/ruff/pull/5414)
##### Settings
- \[`pyupgrade`] Restore the `keep-runtime-typing` setting by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5470](https://togithub.com/astral-sh/ruff/pull/5470)
- Add `PythonVersion::Py312` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5316](https://togithub.com/astral-sh/ruff/pull/5316)
##### Bug Fixes
- Support `pydantic.BaseSettings` in `mutable-class-default` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5312](https://togithub.com/astral-sh/ruff/pull/5312)
- Allow `__slots__` assignments in `mutable-class-default` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5314](https://togithub.com/astral-sh/ruff/pull/5314)
- Avoid syntax errors when removing f-string prefixes by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5319](https://togithub.com/astral-sh/ruff/pull/5319)
- Ignore unpacking in `iteration-over-set` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5392](https://togithub.com/astral-sh/ruff/pull/5392)
- Replace same length equal line with dash line in D407 by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5383](https://togithub.com/astral-sh/ruff/pull/5383)
- Exclude docstrings from PYI053 by [@​intgr](https://togithub.com/intgr) in [https://github.com/astral-sh/ruff/pull/5405](https://togithub.com/astral-sh/ruff/pull/5405)
- Use "manual" fixability for E731 in shadowed context by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5430](https://togithub.com/astral-sh/ruff/pull/5430)
- Detect consecutive, non-newline-delimited NumPy sections by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5467](https://togithub.com/astral-sh/ruff/pull/5467)
- Fix `unnecessary-encode-utf8` to fix `encode` on parenthesized strings correctly by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/5478](https://togithub.com/astral-sh/ruff/pull/5478)
- Allow `Final` assignments in stubs by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5490](https://togithub.com/astral-sh/ruff/pull/5490)
- Respect `abc` decorators when classifying function types by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5315](https://togithub.com/astral-sh/ruff/pull/5315)
- Allow `@Author` format for "Missing Author" rule in `flake8-todos` by [@​mayrholu](https://togithub.com/mayrholu) in [https://github.com/astral-sh/ruff/pull/4903](https://togithub.com/astral-sh/ruff/pull/4903)
- Ignore type aliases for RUF013 by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5344](https://togithub.com/astral-sh/ruff/pull/5344)
- Change W605 autofix to use raw strings if possible by [@​hauntsaninja](https://togithub.com/hauntsaninja) in [https://github.com/astral-sh/ruff/pull/5352](https://togithub.com/astral-sh/ruff/pull/5352)
- Add space when migrating to raw string by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5358](https://togithub.com/astral-sh/ruff/pull/5358)
- Update the `invalid-escape-sequence` rule by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5359](https://togithub.com/astral-sh/ruff/pull/5359)
- Include BaseException in B017 rule by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5466](https://togithub.com/astral-sh/ruff/pull/5466)
- \[`flake8-django`] Skip duplicate violations in `DJ012` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5469](https://togithub.com/astral-sh/ruff/pull/5469)
#### New Contributors
- [@​mayrholu](https://togithub.com/mayrholu) made their first contribution in [https://github.com/astral-sh/ruff/pull/4903](https://togithub.com/astral-sh/ruff/pull/4903)
- [@​hauntsaninja](https://togithub.com/hauntsaninja) made their first contribution in [https://github.com/astral-sh/ruff/pull/5352](https://togithub.com/astral-sh/ruff/pull/5352)
- [@​ethunk](https://togithub.com/ethunk) made their first contribution in [https://github.com/astral-sh/ruff/pull/5397](https://togithub.com/astral-sh/ruff/pull/5397)
- [@​LouisDISPA](https://togithub.com/LouisDISPA) made their first contribution in [https://github.com/astral-sh/ruff/pull/5475](https://togithub.com/astral-sh/ruff/pull/5475)
**Full Changelog**: https://github.com/astral-sh/ruff/compare/v0.0.275...v0.0.276
### [`v0.0.275`](https://togithub.com/astral-sh/ruff/compare/v0.0.274...v0.0.275)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.274...v0.0.275)
### [`v0.0.274`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.274)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.273...v0.0.274)
<!-- Release notes generated using configuration in .github/release.yml at v0.0.274 -->
#### What's Changed
Follow-up release to `v0.0.273` to fix a panic in cache accesses.
##### Bug Fixes
- Use package roots rather than package members for cache initialization by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5233](https://togithub.com/astral-sh/ruff/pull/5233)
- Avoid `.unwrap()` on cache access by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5229](https://togithub.com/astral-sh/ruff/pull/5229)
- Revert change to `RUF010` to remove unnecessary `str` calls by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5232](https://togithub.com/astral-sh/ruff/pull/5232)
- Avoid erroneous RUF013 violations for quoted annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5234](https://togithub.com/astral-sh/ruff/pull/5234)
**Full Changelog**: https://github.com/astral-sh/ruff/compare/v0.0.273...v0.0.274
### [`v0.0.273`](https://togithub.com/astral-sh/ruff/compare/v0.0.272...v0.0.273)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.272...v0.0.273)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "every weekend" in timezone Etc/UTC, Automerge - "every weekend" in timezone Etc/UTC.
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/canonical/starbase).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40My4yIiwidXBkYXRlZEluVmVyIjoiMzYuNDMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Automated dependency update merging lint/ruff v0.0.284, replacing v0.0.272. Approved by reviewers, passed CI checks, and successfully merged into main with no coverage impact. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged automated dependency update for lint/ruff from v0.0.272 to v0.0.284 via Renovate bot. The change passed CI, maintained 100% test coverage, and was integrated into main without conflicts. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #91 chore(deps): update dependency lint/ruff to v0.0.272 | starbase | merged | Merged automated dependency update for lint/ruff from v0.0.269 to v0.0.272. Approved by a reviewer, passed CI checks, and merged without coverage changes. | |
| #130 chore(deps): update dependency lint/ruff to v0.0.290 | starbase | merged | Merged automated dependency update upgrading lint/ruff from v0.0.285 to v0.0.290. Approved by one reviewer, passed CI checks, and maintained 100% code coverage. | |
| #131 chore(deps): update dependency lint/ruff to v0.0.291 | starbase | merged | Successfully merged an automated dependency update that upgraded lint/ruff from v0.0.290 to v0.0.291. The change received reviewer approval, passed all CI checks, and was integrated into the main branch. | |
| #230 chore(deps): update dependency lint/ruff to v0.1.15 | craft-cli | merged | Merged automated dependency update upgrading lint/ruff from v0.1.14 to v0.1.15. Approved by two reviewers, passed CI checks, and maintained 94.81% test coverage across a single file change. | |
| #214 chore(deps): update dependency lint/ruff to v0.1.7 | craft-cli | merged | Merged an automated dependency update upgrading lint/ruff from v0.1.6 to v0.1.7. Approved by two reviewers, passed CI checks, maintained 94.77% test coverage, and modified a single file before final merge. | |
| #165 chore(deps): update dependency lint/ruff to v0.1.7 | craft-application | merged | Merged an automated dependency update for lint/ruff from v0.1.6 to v0.1.7. Approved by two reviewers, passed CI checks, and successfully integrated into the main branch. | |
| #109 chore(deps): update dependency lint/ruff to v0.4.7 | craft-archives | merged | Automated dependency update for lint/ruff to v0.4.7 passed CI checks and code coverage validation, then was successfully merged into the main branch. | |
| #181 chore(deps): update dependency lint/ruff to v0.1.14 | craft-application | merged | Merged an automated dependency update upgrading lint/ruff from v0.1.11 to v0.1.14. The change passed CI, received approvals, and maintained 99.29% test coverage. | |
| #129 chore(deps): update dependency lint/ruff to v0.1.2 | craft-application | merged | Dependency update for lint/ruff from v0.1.1 to v0.1.2 was approved by two reviewers, passed CI checks, and successfully merged. | |
| #142 chore(deps): update dependency lint/ruff to v0.1.1 | starbase | merged | Merged automated dependency update upgrading lint/ruff from v0.1.0 to v0.1.1. Approved by reviewer, passed CI checks, and successfully merged into main with a single line change. |