chore(deps): update dependency ruff to v0.1.6 - autoclosed
Metadata
Current evaluation
The ruff v0.1.6 dependency update was closed without merging. A maintainer rejected the PR after the project switched to managing ruff via a snap package instead of pip.
Suggested action: —
No scores available.
Issue body
[](https://renovatebot.com)
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ruff](https://docs.astral.sh/ruff) ([source](https://togithub.com/astral-sh/ruff), [changelog](https://togithub.com/astral-sh/ruff/blob/main/CHANGELOG.md)) | `==0.0.282` -> `==0.1.6` | [](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 (ruff)</summary>
### [`v0.1.6`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#016)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.1.5...v0.1.6)
##### Preview features
- \[`flake8-boolean-trap`] Extend `boolean-type-hint-positional-argument` (`FBT001`) to include booleans in unions ([#​7501](https://togithub.com/astral-sh/ruff/pull/7501))
- \[`flake8-pie`] Extend `reimplemented-list-builtin` (`PIE807`) to `dict` reimplementations ([#​8608](https://togithub.com/astral-sh/ruff/pull/8608))
- \[`flake8-pie`] Extend `unnecessary-pass` (`PIE790`) to include ellipses (`...`) ([#​8641](https://togithub.com/astral-sh/ruff/pull/8641))
- \[`flake8-pie`] Implement fix for `unnecessary-spread` (`PIE800`) ([#​8668](https://togithub.com/astral-sh/ruff/pull/8668))
- \[`flake8-quotes`] Implement `unnecessary-escaped-quote` (`Q004`) ([#​8630](https://togithub.com/astral-sh/ruff/pull/8630))
- \[`pycodestyle`] Implement fix for `multiple-spaces-after-keyword` (`E271`) and `multiple-spaces-before-keyword` (`E272`) ([#​8622](https://togithub.com/astral-sh/ruff/pull/8622))
- \[`pycodestyle`] Implement fix for `multiple-spaces-after-operator` (`E222`) and `multiple-spaces-before-operator` (`E221`) ([#​8623](https://togithub.com/astral-sh/ruff/pull/8623))
- \[`pyflakes`] Extend `is-literal` (`F632`) to include comparisons against mutable initializers ([#​8607](https://togithub.com/astral-sh/ruff/pull/8607))
- \[`pylint`] Implement `redefined-argument-from-local` (`PLR1704`) ([#​8159](https://togithub.com/astral-sh/ruff/pull/8159))
- \[`pylint`] Implement fix for `unnecessary-lambda` (`PLW0108`) ([#​8621](https://togithub.com/astral-sh/ruff/pull/8621))
- \[`refurb`] Implement `if-expr-min-max` (`FURB136`) ([#​8664](https://togithub.com/astral-sh/ruff/pull/8664))
- \[`refurb`] Implement `math-constant` (`FURB152`) ([#​8727](https://togithub.com/astral-sh/ruff/pull/8727))
##### Rule changes
- \[`flake8-annotations`] Add autotyping-like return type inference for annotation rules ([#​8643](https://togithub.com/astral-sh/ruff/pull/8643))
- \[`flake8-future-annotations`] Implement fix for `future-required-type-annotation` (`FA102`) ([#​8711](https://togithub.com/astral-sh/ruff/pull/8711))
- \[`flake8-implicit-namespace-package`] Avoid missing namespace violations in scripts with shebangs ([#​8710](https://togithub.com/astral-sh/ruff/pull/8710))
- \[`pydocstyle`] Update `over-indentation` (`D208`) to preserve indentation offsets when fixing overindented lines ([#​8699](https://togithub.com/astral-sh/ruff/pull/8699))
- \[`pyupgrade`] Refine `timeout-error-alias` (`UP041`) to remove false positives ([#​8587](https://togithub.com/astral-sh/ruff/pull/8587))
##### Formatter
- Fix instability in `await` formatting with fluent style ([#​8676](https://togithub.com/astral-sh/ruff/pull/8676))
- Compare formatted and unformatted ASTs during formatter tests ([#​8624](https://togithub.com/astral-sh/ruff/pull/8624))
- Preserve trailing semicolon for Notebooks ([#​8590](https://togithub.com/astral-sh/ruff/pull/8590))
##### CLI
- Improve debug printing for resolving origin of config settings ([#​8729](https://togithub.com/astral-sh/ruff/pull/8729))
- Write unchanged, excluded files to stdout when read via stdin ([#​8596](https://togithub.com/astral-sh/ruff/pull/8596))
##### Configuration
- \[`isort`] Support disabling sections with `no-sections = true` ([#​8657](https://togithub.com/astral-sh/ruff/pull/8657))
- \[`pep8-naming`] Support local and dynamic class- and static-method decorators ([#​8592](https://togithub.com/astral-sh/ruff/pull/8592))
- \[`pydocstyle`] Allow overriding pydocstyle convention rules ([#​8586](https://togithub.com/astral-sh/ruff/pull/8586))
##### Bug fixes
- Avoid syntax error via importing `trio.lowlevel` ([#​8730](https://togithub.com/astral-sh/ruff/pull/8730))
- Omit unrolled augmented assignments in `PIE794` ([#​8634](https://togithub.com/astral-sh/ruff/pull/8634))
- Slice source code instead of generating it for `EM` fixes ([#​7746](https://togithub.com/astral-sh/ruff/pull/7746))
- Allow whitespace around colon in slices for `whitespace-before-punctuation` (`E203`) ([#​8654](https://togithub.com/astral-sh/ruff/pull/8654))
- Use function range for `no-self-use` ([#​8637](https://togithub.com/astral-sh/ruff/pull/8637))
- F-strings doesn't contain bytes literal for `PLW0129` ([#​8675](https://togithub.com/astral-sh/ruff/pull/8675))
- Improve detection of `TYPE_CHECKING` blocks imported from `typing_extensions` or `_typeshed` ([#​8429](https://togithub.com/astral-sh/ruff/pull/8429))
- Treat display as a builtin in IPython ([#​8707](https://togithub.com/astral-sh/ruff/pull/8707))
- Avoid `FURB113` autofix if comments are present ([#​8494](https://togithub.com/astral-sh/ruff/pull/8494))
- Consider the new f-string tokens for `flake8-commas` ([#​8582](https://togithub.com/astral-sh/ruff/pull/8582))
- Remove erroneous bad-dunder-name reference ([#​8742](https://togithub.com/astral-sh/ruff/pull/8742))
- Avoid recommending Self usages in metaclasses ([#​8639](https://togithub.com/astral-sh/ruff/pull/8639))
- Detect runtime-evaluated base classes defined in the current file ([#​8572](https://togithub.com/astral-sh/ruff/pull/8572))
- Avoid inserting trailing commas within f-strings ([#​8574](https://togithub.com/astral-sh/ruff/pull/8574))
- Remove incorrect deprecation label for stdout and stderr ([#​8743](https://togithub.com/astral-sh/ruff/pull/8743))
- Fix unnecessary parentheses in UP007 fix ([#​8610](https://togithub.com/astral-sh/ruff/pull/8610))
- Remove repeated and erroneous scoped settings headers in docs ([#​8670](https://togithub.com/astral-sh/ruff/pull/8670))
- Trim trailing empty strings when converting to f-strings ([#​8712](https://togithub.com/astral-sh/ruff/pull/8712))
- Fix ordering for `force-sort-within-sections` ([#​8665](https://togithub.com/astral-sh/ruff/pull/8665))
- Run unicode prefix rule over tokens ([#​8709](https://togithub.com/astral-sh/ruff/pull/8709))
- Update UP032 to unescape curly braces in literal parts of converted strings ([#​8697](https://togithub.com/astral-sh/ruff/pull/8697))
- List all ipython builtins ([#​8719](https://togithub.com/astral-sh/ruff/pull/8719))
##### Documentation
- Document conventions in the FAQ ([#​8638](https://togithub.com/astral-sh/ruff/pull/8638))
- Redirect from rule codes to rule pages in docs ([#​8636](https://togithub.com/astral-sh/ruff/pull/8636))
- Fix permalink to convention setting ([#​8575](https://togithub.com/astral-sh/ruff/pull/8575))
### [`v0.1.5`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#015)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.1.4...v0.1.5)
##### Preview features
- \[`flake8-bandit`] Implement `mako-templates` (`S702`) ([#​8533](https://togithub.com/astral-sh/ruff/pull/8533))
- \[`flake8-trio`] Implement `TRIO105` ([#​8490](https://togithub.com/astral-sh/ruff/pull/8490))
- \[`flake8-trio`] Implement `TRIO109` ([#​8534](https://togithub.com/astral-sh/ruff/pull/8534))
- \[`flake8-trio`] Implement `TRIO110` ([#​8537](https://togithub.com/astral-sh/ruff/pull/8537))
- \[`flake8-trio`] Implement `TRIO115` ([#​8486](https://togithub.com/astral-sh/ruff/pull/8486))
- \[`refurb`] Implement `type-none-comparison` (`FURB169`) ([#​8487](https://togithub.com/astral-sh/ruff/pull/8487))
- Flag all comparisons against builtin types in `E721` ([#​8491](https://togithub.com/astral-sh/ruff/pull/8491))
- Make `SIM118` fix as safe when the expression is a known dictionary ([#​8525](https://togithub.com/astral-sh/ruff/pull/8525))
##### Formatter
- Fix multiline lambda expression statement formatting ([#​8466](https://togithub.com/astral-sh/ruff/pull/8466))
##### CLI
- Add hidden `--extension` to override inference of source type from file extension ([#​8373](https://togithub.com/astral-sh/ruff/pull/8373))
##### Configuration
- Account for selector specificity when merging `extend_unsafe_fixes` and `override extend_safe_fixes` ([#​8444](https://togithub.com/astral-sh/ruff/pull/8444))
- Add support for disabling cache with `RUFF_NO_CACHE` environment variable ([#​8538](https://togithub.com/astral-sh/ruff/pull/8538))
##### Bug fixes
- \[`E721`] Flag comparisons to `memoryview` ([#​8485](https://togithub.com/astral-sh/ruff/pull/8485))
- Allow collapsed-ellipsis bodies in other statements ([#​8499](https://togithub.com/astral-sh/ruff/pull/8499))
- Avoid `D301` autofix for `u` prefixed strings ([#​8495](https://togithub.com/astral-sh/ruff/pull/8495))
- Only flag `flake8-trio` rules when `trio` import is present ([#​8550](https://togithub.com/astral-sh/ruff/pull/8550))
- Reject more syntactically invalid Python programs ([#​8524](https://togithub.com/astral-sh/ruff/pull/8524))
- Avoid raising `TRIO115` violations for `trio.sleep(...)` calls with non-number values ([#​8532](https://togithub.com/astral-sh/ruff/pull/8532))
- Fix `F841` false negative on assignment to multiple variables ([#​8489](https://togithub.com/astral-sh/ruff/pull/8489))
##### Documentation
- Fix link to isort `known-first-party` ([#​8562](https://togithub.com/astral-sh/ruff/pull/8562))
- Add notes on fix safety to a few rules ([#​8500](https://togithub.com/astral-sh/ruff/pull/8500))
- Add missing toml config tabs ([#​8512](https://togithub.com/astral-sh/ruff/pull/8512))
- Add instructions for configuration of Emacs ([#​8488](https://togithub.com/astral-sh/ruff/pull/8488))
- Improve detail link contrast in dark mode ([#​8548](https://togithub.com/astral-sh/ruff/pull/8548))
- Fix typo in example ([#​8506](https://togithub.com/astral-sh/ruff/pull/8506))
- Added tabs for configuration files in the documentation ([#​8480](https://togithub.com/astral-sh/ruff/pull/8480))
- Recommend `project.requires-python` over `target-version` ([#​8513](https://togithub.com/astral-sh/ruff/pull/8513))
- Add singleton escape hatch to `B008` documentation ([#​8501](https://togithub.com/astral-sh/ruff/pull/8501))
- Fix tab configuration docs ([#​8502](https://togithub.com/astral-sh/ruff/pull/8502))
### [`v0.1.4`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#014)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.1.3...v0.1.4)
##### Preview features
- \[`flake8-trio`] Implement `timeout-without-await` (`TRIO001`) ([#​8439](https://togithub.com/astral-sh/ruff/pull/8439))
- \[`numpy`] Implement NumPy 2.0 migration rule (`NPY200`) ([#​7702](https://togithub.com/astral-sh/ruff/pull/7702))
- \[`pylint`] Implement `bad-open-mode` (`W1501`) ([#​8294](https://togithub.com/astral-sh/ruff/pull/8294))
- \[`pylint`] Implement `import-outside-toplevel` (`C0415`) rule ([#​5180](https://togithub.com/astral-sh/ruff/pull/5180))
- \[`pylint`] Implement `useless-with-lock` (`W2101`) ([#​8321](https://togithub.com/astral-sh/ruff/pull/8321))
- \[`pyupgrade`] Implement `timeout-error-alias` (`UP041`) ([#​8476](https://togithub.com/astral-sh/ruff/pull/8476))
- \[`refurb`] Implement `isinstance-type-none` (`FURB168`) ([#​8308](https://togithub.com/astral-sh/ruff/pull/8308))
- Detect confusable Unicode-to-Unicode units in `RUF001`, `RUF002`, and `RUF003` ([#​4430](https://togithub.com/astral-sh/ruff/pull/4430))
- Add newline after module docstrings in preview style ([#​8283](https://togithub.com/astral-sh/ruff/pull/8283))
##### Formatter
- Add a note on line-too-long to the formatter docs ([#​8314](https://togithub.com/astral-sh/ruff/pull/8314))
- Preserve trailing statement semicolons when using `fmt: skip` ([#​8273](https://togithub.com/astral-sh/ruff/pull/8273))
- Preserve trailing semicolons when using `fmt: off` ([#​8275](https://togithub.com/astral-sh/ruff/pull/8275))
- Avoid duplicating linter-formatter compatibility warnings ([#​8292](https://togithub.com/astral-sh/ruff/pull/8292))
- Avoid inserting a newline after function docstrings ([#​8375](https://togithub.com/astral-sh/ruff/pull/8375))
- Insert newline between docstring and following own line comment ([#​8216](https://togithub.com/astral-sh/ruff/pull/8216))
- Split tuples in return positions by comma first ([#​8280](https://togithub.com/astral-sh/ruff/pull/8280))
- Avoid treating byte strings as docstrings ([#​8350](https://togithub.com/astral-sh/ruff/pull/8350))
- Add `--line-length` option to `format` command ([#​8363](https://togithub.com/astral-sh/ruff/pull/8363))
- Avoid parenthesizing unsplittable because of comments ([#​8431](https://togithub.com/astral-sh/ruff/pull/8431))
##### CLI
- Add `--output-format` to `ruff rule` and `ruff linter` ([#​8203](https://togithub.com/astral-sh/ruff/pull/8203))
##### Bug fixes
- Respect `--force-exclude` in `lint.exclude` and `format.exclude` ([#​8393](https://togithub.com/astral-sh/ruff/pull/8393))
- Respect `--extend-per-file-ignores` on the CLI ([#​8329](https://togithub.com/astral-sh/ruff/pull/8329))
- Extend `bad-dunder-method-name` to permit `__index__` ([#​8300](https://togithub.com/astral-sh/ruff/pull/8300))
- Fix panic with 8 in octal escape ([#​8356](https://togithub.com/astral-sh/ruff/pull/8356))
- Avoid raising `D300` when both triple quote styles are present ([#​8462](https://togithub.com/astral-sh/ruff/pull/8462))
- Consider unterminated f-strings in `FStringRanges` ([#​8154](https://togithub.com/astral-sh/ruff/pull/8154))
- Avoid including literal `shell=True` for truthy, non-`True` diagnostics ([#​8359](https://togithub.com/astral-sh/ruff/pull/8359))
- Avoid triggering single-element test for starred expressions ([#​8433](https://togithub.com/astral-sh/ruff/pull/8433))
- Detect and ignore Jupyter automagics ([#​8398](https://togithub.com/astral-sh/ruff/pull/8398))
- Fix invalid E231 error with f-strings ([#​8369](https://togithub.com/astral-sh/ruff/pull/8369))
- Avoid triggering `NamedTuple` rewrite with starred annotation ([#​8434](https://togithub.com/astral-sh/ruff/pull/8434))
- Avoid un-setting bracket flag in logical lines ([#​8380](https://togithub.com/astral-sh/ruff/pull/8380))
- Place 'r' prefix before 'f' for raw format strings ([#​8464](https://togithub.com/astral-sh/ruff/pull/8464))
- Remove trailing periods from NumPy 2.0 code actions ([#​8475](https://togithub.com/astral-sh/ruff/pull/8475))
- Fix bug where `PLE1307` was raised when formatting `%c` with characters ([#​8407](https://togithub.com/astral-sh/ruff/pull/8407))
- Remove unicode flag from comparable ([#​8440](https://togithub.com/astral-sh/ruff/pull/8440))
- Improve B015 message ([#​8295](https://togithub.com/astral-sh/ruff/pull/8295))
- Use `fixedOverflowWidgets` for playground popover ([#​8458](https://togithub.com/astral-sh/ruff/pull/8458))
- Mark `byte_bounds` as a non-backwards-compatible NumPy 2.0 change ([#​8474](https://togithub.com/astral-sh/ruff/pull/8474))
##### Internals
- Add a dedicated cache directory per Ruff version ([#​8333](https://togithub.com/astral-sh/ruff/pull/8333))
- Allow selective caching for `--fix` and `--diff` ([#​8316](https://togithub.com/astral-sh/ruff/pull/8316))
- Improve performance of comment parsing ([#​8193](https://togithub.com/astral-sh/ruff/pull/8193))
- Improve performance of string parsing ([#​8227](https://togithub.com/astral-sh/ruff/pull/8227))
- Use a dedicated sort key for isort import sorting ([#​7963](https://togithub.com/astral-sh/ruff/pull/7963))
### [`v0.1.3`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#013)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.1.2...v0.1.3)
This release includes a variety of improvements to the Ruff formatter, removing several known and
unintentional deviations from Black.
##### Formatter
- Avoid space around pow for `None`, `True` and `False` ([#​8189](https://togithub.com/astral-sh/ruff/pull/8189))
- Avoid sorting all paths in the format command ([#​8181](https://togithub.com/astral-sh/ruff/pull/8181))
- Insert necessary blank line between class and leading comments ([#​8224](https://togithub.com/astral-sh/ruff/pull/8224))
- Avoid introducing new parentheses in annotated assignments ([#​8233](https://togithub.com/astral-sh/ruff/pull/8233))
- Refine the warnings about incompatible linter options ([#​8196](https://togithub.com/astral-sh/ruff/pull/8196))
- Add test and basic implementation for formatter preview mode ([#​8044](https://togithub.com/astral-sh/ruff/pull/8044))
- Refine warning about incompatible `isort` settings ([#​8192](https://togithub.com/astral-sh/ruff/pull/8192))
- Only omit optional parentheses for starting or ending with parentheses ([#​8238](https://togithub.com/astral-sh/ruff/pull/8238))
- Use source type to determine parser mode for formatting ([#​8205](https://togithub.com/astral-sh/ruff/pull/8205))
- Don't warn about magic trailing comma when `isort.force-single-line` is true ([#​8244](https://togithub.com/astral-sh/ruff/pull/8244))
- Use `SourceKind::diff` for formatter ([#​8240](https://togithub.com/astral-sh/ruff/pull/8240))
- Fix `fmt:off` with trailing child comment ([#​8234](https://togithub.com/astral-sh/ruff/pull/8234))
- Formatter parentheses support for `IpyEscapeCommand` ([#​8207](https://togithub.com/astral-sh/ruff/pull/8207))
##### Linter
- \[`pylint`] Add buffer methods to `bad-dunder-method-name` (`PLW3201`) exclusions ([#​8190](https://togithub.com/astral-sh/ruff/pull/8190))
- Match rule prefixes from `external` codes setting in `unused-noqa` ([#​8177](https://togithub.com/astral-sh/ruff/pull/8177))
- Use `line-length` setting for isort in lieu of `pycodestyle.max-line-length` ([#​8235](https://togithub.com/astral-sh/ruff/pull/8235))
- Update fix for `unnecessary-paren-on-raise-exception` to unsafe for unknown types ([#​8231](https://togithub.com/astral-sh/ruff/pull/8231))
- Correct quick fix message for `W605` ([#​8255](https://togithub.com/astral-sh/ruff/pull/8255))
##### Documentation
- Fix typo in max-doc-length documentation ([#​8201](https://togithub.com/astral-sh/ruff/pull/8201))
- Improve documentation around linter-formatter conflicts ([#​8257](https://togithub.com/astral-sh/ruff/pull/8257))
- Fix link to error suppression documentation in `unused-noqa` ([#​8172](https://togithub.com/astral-sh/ruff/pull/8172))
- Add `external` option to `unused-noqa` documentation ([#​8171](https://togithub.com/astral-sh/ruff/pull/8171))
- Add title attribute to icons ([#​8060](https://togithub.com/astral-sh/ruff/pull/8060))
- Clarify unsafe case in RSE102 ([#​8256](https://togithub.com/astral-sh/ruff/pull/8256))
- Fix skipping formatting examples ([#​8210](https://togithub.com/astral-sh/ruff/pull/8210))
- docs: fix name of `magic-trailing-comma` option in README ([#​8200](https://togithub.com/astral-sh/ruff/pull/8200))
- Add note about scope of rule changing in versioning policy ([#​8169](https://togithub.com/astral-sh/ruff/pull/8169))
- Document: Fix default lint rules ([#​8218](https://togithub.com/astral-sh/ruff/pull/8218))
- Fix a wrong setting in configuration.md ([#​8186](https://togithub.com/astral-sh/ruff/pull/8186))
- Fix misspelled TOML headers in the tutorial ([#​8209](https://togithub.com/astral-sh/ruff/pull/8209))
### [`v0.1.2`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#012)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.1.1...v0.1.2)
This release includes the Beta version of the Ruff formatter — an extremely fast, Black-compatible Python formatter.
Try it today with `ruff format`! [Check out the blog post](https://astral.sh/blog/the-ruff-formatter) and [read the docs](https://docs.astral.sh/ruff/formatter/).
##### Preview features
- \[`pylint`] Implement `non-ascii-module-import` (`C2403`) ([#​8056](https://togithub.com/astral-sh/ruff/pull/8056))
- \[`pylint`] implement `non-ascii-name` (`C2401`) ([#​8038](https://togithub.com/astral-sh/ruff/pull/8038))
- \[`pylint`] Implement unnecessary-lambda (W0108) ([#​7953](https://togithub.com/astral-sh/ruff/pull/7953))
- \[`refurb`] Implement `read-whole-file` (`FURB101`) ([#​7682](https://togithub.com/astral-sh/ruff/pull/7682))
- Add fix for `E223`, `E224`, and `E242` ([#​8143](https://togithub.com/astral-sh/ruff/pull/8143))
- Add fix for `E225`, `E226`, `E227`, and `E228` ([#​8136](https://togithub.com/astral-sh/ruff/pull/8136))
- Add fix for `E252` ([#​8142](https://togithub.com/astral-sh/ruff/pull/8142))
- Add fix for `E261` ([#​8114](https://togithub.com/astral-sh/ruff/pull/8114))
- Add fix for `E273` and `E274` ([#​8144](https://togithub.com/astral-sh/ruff/pull/8144))
- Add fix for `E275` ([#​8133](https://togithub.com/astral-sh/ruff/pull/8133))
- Update `SIM401` to catch ternary operations ([#​7415](https://togithub.com/astral-sh/ruff/pull/7415))
- Update `E721` to allow `is` and `is` not for direct type comparisons ([#​7905](https://togithub.com/astral-sh/ruff/pull/7905))
##### Rule changes
- Add `backports.strenum` to `deprecated-imports` ([#​8113](https://togithub.com/astral-sh/ruff/pull/8113))
- Update `SIM112` to ignore `https_proxy`, `http_proxy`, and `no_proxy` ([#​8140](https://togithub.com/astral-sh/ruff/pull/8140))
- Update fix for `literal-membership` (`PLR6201`) to be unsafe ([#​8097](https://togithub.com/astral-sh/ruff/pull/8097))
- Update fix for `mutable-argument-defaults` (`B006`) to be unsafe ([#​8108](https://togithub.com/astral-sh/ruff/pull/8108))
##### Formatter
- Change `line-ending` default to `auto` ([#​8057](https://togithub.com/astral-sh/ruff/pull/8057))
- Respect parenthesized generators in `has_own_parentheses` ([#​8100](https://togithub.com/astral-sh/ruff/pull/8100))
- Add caching to formatter ([#​8089](https://togithub.com/astral-sh/ruff/pull/8089))
- Remove `--line-length` option from `format` command ([#​8131](https://togithub.com/astral-sh/ruff/pull/8131))
- Add formatter to `line-length` documentation ([#​8150](https://togithub.com/astral-sh/ruff/pull/8150))
- Warn about incompatible formatter options ([#​8088](https://togithub.com/astral-sh/ruff/pull/8088))
- Fix range of unparenthesized tuple subject in match statement ([#​8101](https://togithub.com/astral-sh/ruff/pull/8101))
- Remove experimental formatter warning ([#​8148](https://togithub.com/astral-sh/ruff/pull/8148))
- Don't move type param opening parenthesis comment ([#​8163](https://togithub.com/astral-sh/ruff/pull/8163))
- Update versions in format benchmark script ([#​8110](https://togithub.com/astral-sh/ruff/pull/8110))
- Avoid loading files for cached format results ([#​8134](https://togithub.com/astral-sh/ruff/pull/8134))
##### CLI
- Show the `ruff format` command in help menus ([#​8167](https://togithub.com/astral-sh/ruff/pull/8167))
- Add `ruff version` command with long version display ([#​8034](https://togithub.com/astral-sh/ruff/pull/8034))
##### Configuration
- New `pycodestyle.max-line-length` option ([#​8039](https://togithub.com/astral-sh/ruff/pull/8039))
##### Bug fixes
- Detect `sys.version_info` slices in `outdated-version-block` ([#​8112](https://togithub.com/astral-sh/ruff/pull/8112))
- Avoid if-else simplification for `TYPE_CHECKING` blocks ([#​8072](https://togithub.com/astral-sh/ruff/pull/8072))
- Avoid false-positive print separator diagnostic with starred argument ([#​8079](https://togithub.com/astral-sh/ruff/pull/8079))
##### Documentation
- Fix message for `too-many-arguments` lint ([#​8092](https://togithub.com/astral-sh/ruff/pull/8092))
- Fix `extend-unsafe-fixes` and `extend-safe-fixes` example ([#​8139](https://togithub.com/astral-sh/ruff/pull/8139))
- Add links to `flake8-import-conventions` options ([#​8115](https://togithub.com/astral-sh/ruff/pull/8115))
- Rework the documentation to incorporate the Ruff formatter ([#​7732](https://togithub.com/astral-sh/ruff/pull/7732))
- Fix `Options` JSON schema description ([#​8081](https://togithub.com/astral-sh/ruff/pull/8081))
- Fix typo (`pytext` -> `pytest`) ([#​8117](https://togithub.com/astral-sh/ruff/pull/8117))
- Improve `magic-value-comparison` example in docs ([#​8111](https://togithub.com/astral-sh/ruff/pull/8111))
### [`v0.1.1`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#011)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.1.0...v0.1.1)
##### Rule changes
- Add unsafe fix for `escape-sequence-in-docstring` (`D301`) ([#​7970](https://togithub.com/astral-sh/ruff/pull/7970))
##### Configuration
- Respect `#(deprecated)` attribute in configuration options ([#​8035](https://togithub.com/astral-sh/ruff/pull/8035))
- Add `[format|lint].exclude` options ([#​8000](https://togithub.com/astral-sh/ruff/pull/8000))
- Respect `tab-size` setting in formatter ([#​8006](https://togithub.com/astral-sh/ruff/pull/8006))
- Add `lint.preview` ([#​8002](https://togithub.com/astral-sh/ruff/pull/8002))
##### Preview features
- \[`pylint`] Implement `literal-membership` (`PLR6201`) ([#​7973](https://togithub.com/astral-sh/ruff/pull/7973))
- \[`pylint`] Implement `too-many-boolean-expressions` (`PLR0916`) ([#​7975](https://togithub.com/astral-sh/ruff/pull/7975))
- \[`pylint`] Implement `misplaced-bare-raise` (`E0704`) ([#​7961](https://togithub.com/astral-sh/ruff/pull/7961))
- \[`pylint`] Implement `global-at-module-level` (`W0604`) ([#​8058](https://togithub.com/astral-sh/ruff/pull/8058))
- \[`pylint`] Implement `unspecified-encoding` (`PLW1514`) ([#​7939](https://togithub.com/astral-sh/ruff/pull/7939))
- Add fix for `triple-single-quotes` (`D300`) ([#​7967](https://togithub.com/astral-sh/ruff/pull/7967))
##### Formatter
- New code style badge for `ruff format` ([#​7878](https://togithub.com/astral-sh/ruff/pull/7878))
- Fix comments outside expression parentheses ([#​7873](https://togithub.com/astral-sh/ruff/pull/7873))
- Add `--target-version` to `ruff format` ([#​8055](https://togithub.com/astral-sh/ruff/pull/8055))
- Skip over parentheses when detecting `in` keyword ([#​8054](https://togithub.com/astral-sh/ruff/pull/8054))
- Add `--diff` option to `ruff format` ([#​7937](https://togithub.com/astral-sh/ruff/pull/7937))
- Insert newline after nested function or class statements ([#​7946](https://togithub.com/astral-sh/ruff/pull/7946))
- Use `pass` over ellipsis in non-function/class contexts ([#​8049](https://togithub.com/astral-sh/ruff/pull/8049))
##### Bug fixes
- Lazily evaluate all PEP 695 type alias values ([#​8033](https://togithub.com/astral-sh/ruff/pull/8033))
- Avoid failed assertion when showing fixes from stdin ([#​8029](https://togithub.com/astral-sh/ruff/pull/8029))
- Avoid flagging HTTP and HTTPS literals in urllib-open ([#​8046](https://togithub.com/astral-sh/ruff/pull/8046))
- Avoid flagging `bad-dunder-method-name` for `_` ([#​8015](https://togithub.com/astral-sh/ruff/pull/8015))
- Remove Python 2-only methods from `URLOpen` audit ([#​8047](https://togithub.com/astral-sh/ruff/pull/8047))
- Use set bracket replacement for `iteration-over-set` to preserve whitespace and comments ([#​8001](https://togithub.com/astral-sh/ruff/pull/8001))
##### Documentation
- Update tutorial to match revised Ruff defaults ([#​8066](https://togithub.com/astral-sh/ruff/pull/8066))
- Update rule `B005` docs ([#​8028](https://togithub.com/astral-sh/ruff/pull/8028))
- Update GitHub actions example in docs to use `--output-format` ([#​8014](https://togithub.com/astral-sh/ruff/pull/8014))
- Document `lint.preview` and `format.preview` ([#​8032](https://togithub.com/astral-sh/ruff/pull/8032))
- Clarify that new rules should be added to `RuleGroup::Preview`. ([#​7989](https://togithub.com/astral-sh/ruff/pull/7989))
### [`v0.1.0`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#010)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.292...v0.1.0)
This is the first release which uses the `CHANGELOG` file. See [GitHub Releases](https://togithub.com/astral-sh/ruff/releases) for prior changelog entries.
Read Ruff's new [versioning policy](https://docs.astral.sh/ruff/versioning/).
##### Breaking changes
- Unsafe fixes are no longer displayed or applied without opt-in ([#​7769](https://togithub.com/astral-sh/ruff/pull/7769))
- Drop formatting specific rules from the default set ([#​7900](https://togithub.com/astral-sh/ruff/pull/7900))
- The deprecated `format` setting has been removed ([#​7984](https://togithub.com/astral-sh/ruff/pull/7984))
- The `format` setting cannot be used to configure the output format, use `output-format` instead
- The `RUFF_FORMAT` environment variable is ignored, use `RUFF_OUTPUT_FORMAT` instead
- The `--format` option has been removed from `ruff check`, use `--output-format` instead
##### Rule changes
- Extend `reimplemented-starmap` (`FURB140`) to catch calls with a single and starred argument ([#​7768](https://togithub.com/astral-sh/ruff/pull/7768))
- Improve cases covered by `RUF015` ([#​7848](https://togithub.com/astral-sh/ruff/pull/7848))
- Update `SIM15` to allow `open` followed by `close` ([#​7916](https://togithub.com/astral-sh/ruff/pull/7916))
- Respect `msgspec.Struct` default-copy semantics in `RUF012` ([#​7786](https://togithub.com/astral-sh/ruff/pull/7786))
- Add `sqlalchemy` methods to \`flake8-boolean-trap\`\` exclusion list ([#​7874](https://togithub.com/astral-sh/ruff/pull/7874))
- Add fix for `PLR1714` ([#​7910](https://togithub.com/astral-sh/ruff/pull/7910))
- Add fix for `PIE804` ([#​7884](https://togithub.com/astral-sh/ruff/pull/7884))
- Add fix for `PLC0208` ([#​7887](https://togithub.com/astral-sh/ruff/pull/7887))
- Add fix for `PYI055` ([#​7886](https://togithub.com/astral-sh/ruff/pull/7886))
- Update `non-pep695-type-alias` to require `--unsafe-fixes` outside of stub files ([#​7836](https://togithub.com/astral-sh/ruff/pull/7836))
- Improve fix message for `UP018` ([#​7913](https://togithub.com/astral-sh/ruff/pull/7913))
- Update `PLW3201` to support `Enum` [sunder names](https://docs.python.org/3/library/enum.html#supported-sunder-names) ([#​7987](https://togithub.com/astral-sh/ruff/pull/7987))
##### Preview features
- Only show warnings for empty preview selectors when enabling rules ([#​7842](https://togithub.com/astral-sh/ruff/pull/7842))
- Add `unnecessary-key-check` to simplify `key in dct and dct[key]` to `dct.get(key)` ([#​7895](https://togithub.com/astral-sh/ruff/pull/7895))
- Add `assignment-in-assert` to prevent walrus expressions in assert statements ([#​7856](https://togithub.com/astral-sh/ruff/pull/7856))
- \[`refurb`] Add `single-item-membership-test` (`FURB171`) ([#​7815](https://togithub.com/astral-sh/ruff/pull/7815))
- \[`pylint`] Add `and-or-ternary` (`R1706`) ([#​7811](https://togithub.com/astral-sh/ruff/pull/7811))
*New rules are added in [preview](https://docs.astral.sh/ruff/preview/).*
##### Configuration
- Add `unsafe-fixes` setting ([#​7769](https://togithub.com/astral-sh/ruff/pull/7769))
- Add `extend-safe-fixes` and `extend-unsafe-fixes` for promoting and demoting fixes ([#​7841](https://togithub.com/astral-sh/ruff/pull/7841))
##### CLI
- Added `--unsafe-fixes` option for opt-in to display and apply unsafe fixes ([#​7769](https://togithub.com/astral-sh/ruff/pull/7769))
- Fix use of deprecated `--format` option in warning ([#​7837](https://togithub.com/astral-sh/ruff/pull/7837))
- Show changed files when running under `--check` ([#​7788](https://togithub.com/astral-sh/ruff/pull/7788))
- Write summary messages to stderr when fixing via stdin instead of omitting them ([#​7838](https://togithub.com/astral-sh/ruff/pull/7838))
- Update fix summary message in `check --diff` to include unsafe fix hints ([#​7790](https://togithub.com/astral-sh/ruff/pull/7790))
- Add notebook `cell` field to JSON output format ([#​7664](https://togithub.com/astral-sh/ruff/pull/7664))
- Rename applicability levels to `Safe`, `Unsafe`, and `Display` ([#​7843](https://togithub.com/astral-sh/ruff/pull/7843))
##### Bug fixes
- Fix bug where f-strings were allowed in match pattern literal ([#​7857](https://togithub.com/astral-sh/ruff/pull/7857))
- Fix `SIM110` with a yield in the condition ([#​7801](https://togithub.com/astral-sh/ruff/pull/7801))
- Preserve trailing comments in `C414` fixes ([#​7775](https://togithub.com/astral-sh/ruff/pull/7775))
- Check sequence type before triggering `unnecessary-enumerate` `len` suggestion ([#​7781](https://togithub.com/astral-sh/ruff/pull/7781))
- Use correct start location for class/function clause header ([#​7802](https://togithub.com/astral-sh/ruff/pull/7802))
- Fix incorrect fixes for `SIM101` ([#​7798](https://togithub.com/astral-sh/ruff/pull/7798))
- Format comment before parameter default correctly ([#​7870](https://togithub.com/astral-sh/ruff/pull/7870))
- Fix `E251` false positive inside f-strings ([#​7894](https://togithub.com/astral-sh/ruff/pull/7894))
- Allow bindings to be created and referenced within annotations ([#​7885](https://togithub.com/astral-sh/ruff/pull/7885))
- Show per-cell diffs when analyzing notebooks over `stdin` ([#​7789](https://togithub.com/astral-sh/ruff/pull/7789))
- Avoid curly brace escape in f-string format spec ([#​7780](https://togithub.com/astral-sh/ruff/pull/7780))
- Fix lexing single-quoted f-string with multi-line format spec ([#​7787](https://togithub.com/astral-sh/ruff/pull/7787))
- Consider nursery rules to be in-preview for `ruff rule` ([#​7812](https://togithub.com/astral-sh/ruff/pull/7812))
- Report precise location for invalid conversion flag ([#​7809](https://togithub.com/astral-sh/ruff/pull/7809))
- Visit pattern match guard as a boolean test ([#​7911](https://togithub.com/astral-sh/ruff/pull/7911))
- Respect `--unfixable` in `ISC` rules ([#​7917](https://togithub.com/astral-sh/ruff/pull/7917))
- Fix edge case with `PIE804` ([#​7922](https://togithub.com/astral-sh/ruff/pull/7922))
- Show custom message in `PTH118` for `Path.joinpath` with starred arguments ([#​7852](https://togithub.com/astral-sh/ruff/pull/7852))
- Fix false negative in `outdated-version-block` when using greater than comparisons ([#​7920](https://togithub.com/astral-sh/ruff/pull/7920))
- Avoid converting f-strings within Django `gettext` calls ([#​7898](https://togithub.com/astral-sh/ruff/pull/7898))
- Fix false positive in `PLR6301` ([#​7933](https://togithub.com/astral-sh/ruff/pull/7933))
- Treat type aliases as typing-only expressions e.g. resolves false positive in `TCH004` ([#​7968](https://togithub.com/astral-sh/ruff/pull/7968))
- Resolve `cache-dir` relative to project root ([#​7962](https://togithub.com/astral-sh/ruff/pull/7962))
- Respect subscripted base classes in type-checking rules e.g. resolves false positive in `TCH003` ([#​7954](https://togithub.com/astral-sh/ruff/pull/7954))
- Fix JSON schema limit for `line-length` ([#​7883](https://togithub.com/astral-sh/ruff/pull/7883))
- Fix commented-out `coalesce` keyword ([#​7876](https://togithub.com/astral-sh/ruff/pull/7876))
##### Documentation
- Document `reimplemented-starmap` performance effects ([#​7846](https://togithub.com/astral-sh/ruff/pull/7846))
- Default to following the system dark/light mode ([#​7888](https://togithub.com/astral-sh/ruff/pull/7888))
- Add documentation for fixes ([#​7901](https://togithub.com/astral-sh/ruff/pull/7901))
- Fix typo in docs of `PLR6301` ([#​7831](https://togithub.com/astral-sh/ruff/pull/7831))
- Update `UP038` docs to note that it results in slower code ([#​7872](https://togithub.com/astral-sh/ruff/pull/7872))
- crlf -> cr-lf ([#​7766](https://togithub.com/astral-sh/ruff/pull/7766))
- Add an example of an unsafe fix ([#​7924](https://togithub.com/astral-sh/ruff/pull/7924))
- Fix documented examples for `unnecessary-subscript-reversal` ([#​7774](https://togithub.com/astral-sh/ruff/pull/7774))
- Correct error in tuple example in ruff formatter docs ([#​7822](https://togithub.com/astral-sh/ruff/pull/7822))
- Add versioning policy to documentation ([#​7923](https://togithub.com/astral-sh/ruff/pull/7923))
- Fix invalid code in `FURB177` example ([#​7832](https://togithub.com/astral-sh/ruff/pull/7832))
##### Formatter
- Less scary `ruff format` message ([#​7867](https://togithub.com/astral-sh/ruff/pull/7867))
- Remove spaces from import statements ([#​7859](https://togithub.com/astral-sh/ruff/pull/7859))
- Formatter quoting for f-strings with triple quotes ([#​7826](https://togithub.com/astral-sh/ruff/pull/7826))
- Update `ruff_python_formatter` generate.py comment ([#​7850](https://togithub.com/astral-sh/ruff/pull/7850))
- Document one-call chaining deviation ([#​7767](https://togithub.com/astral-sh/ruff/pull/7767))
- Allow f-string modifications in line-shrinking cases ([#​7818](https://togithub.com/astral-sh/ruff/pull/7818))
- Add trailing comment deviation to README ([#​7827](https://togithub.com/astral-sh/ruff/pull/7827))
- Add trailing zero between dot and exponential ([#​7956](https://togithub.com/astral-sh/ruff/pull/7956))
- Force parentheses for power operations in unary expressions ([#​7955](https://togithub.com/astral-sh/ruff/pull/7955))
##### Playground
- Fix playground `Quick Fix` action ([#​7824](https://togithub.com/astral-sh/ruff/pull/7824))
### [`v0.0.292`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.292)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.291...v0.0.292)
<!-- Release notes generated using configuration in .github/release.yml at v0.0.292 -->
#### What's Changed
##### Highlights
**This release includes full support for Python 3.12 ([out now!](https://www.python.org/downloads/release/python-3120/)), including the new type parameter ([PEP 695](https://peps.python.org/pep-0695/)) and f-string syntaxes ([PEP 701](https://peps.python.org/pep-0701/)).**
PEP 701 lifts many of the restrictions on f-strings that existed in the past, allowing for arbitrarily nested f-strings, consistent quote style within f-strings, and more, all of which are now supported by Ruff (thanks to [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/7376](https://togithub.com/astral-sh/ruff/pull/7376)).
##### Breaking Changes
- In the formatter, `format.quote-style` no longer affects triple-quoted strings, to align with common conventions as well as the guidance from PEP 8 and PEP 257 (see: [https://github.com/astral-sh/ruff/pull/7680](https://togithub.com/astral-sh/ruff/pull/7680)).
- `line-too-long` (`E501`) now ignores trailing pragma comments (like `# type: ignore` and `# noqa`) when computing line length (see: [https://github.com/astral-sh/ruff/pull/7692](https://togithub.com/astral-sh/ruff/pull/7692)). This is similar to flake8-bugbear's methodology for detecting overlong lines, and ensures that adding pragmas like `# noqa` does not introduce further lint errors.
##### Rules
- \[`refurb`] Implement `print-empty-string` (`FURB105`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/7617](https://togithub.com/astral-sh/ruff/pull/7617)
- \[`flake8-bandit`] Implement `weak-cryptographic-key` (`S505`) by [@​mkniewallner](https://togithub.com/mkniewallner) in [https://github.com/astral-sh/ruff/pull/7703](https://togithub.com/astral-sh/ruff/pull/7703)
- \[`refurb`] Implement `implicit-cwd` (`FURB177`) by [@​danparizher](https://togithub.com/danparizher) in [https://github.com/astral-sh/ruff/pull/7704](https://togithub.com/astral-sh/ruff/pull/7704)
- `unnecessary-pass` (`PIE790`) now flags all unnecessary `pass` statements; previously, the rule only flagged `pass` statements that followed a docstring in a two-statement body (see: [https://github.com/astral-sh/ruff/pull/7697](https://togithub.com/astral-sh/ruff/pull/7697)).
##### Settings
- Add `lint` section to Ruff configuration by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/astral-sh/ruff/pull/7549](https://togithub.com/astral-sh/ruff/pull/7549)
- Add `explicit-preview-rules` to toggle explicit selection of preview rules by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/7390](https://togithub.com/astral-sh/ruff/pull/7390)
- Decrease PEP 593 error to a debug warning by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7745](https://togithub.com/astral-sh/ruff/pull/7745)
- Write full Jupyter notebook to `stdout` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7748](https://togithub.com/astral-sh/ruff/pull/7748)
- Extend `unnecessary-pass` (`PIE790`) to trigger on all unnecessary `pass` statements by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/7697](https://togithub.com/astral-sh/ruff/pull/7697)
##### Bug Fixes
- Ignore blank lines between comments when counting newlines-after-imports by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7607](https://togithub.com/astral-sh/ruff/pull/7607)
- Avoid reordering mixed-indent-level comments after branches by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7609](https://togithub.com/astral-sh/ruff/pull/7609)
- Avoid flagging B009 and B010 on starred expressions by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7621](https://togithub.com/astral-sh/ruff/pull/7621)
- Use deletion for D215 full-line removals by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7625](https://togithub.com/astral-sh/ruff/pull/7625)
- Avoid searching for bracketed comments in unparenthesized generators by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7627](https://togithub.com/astral-sh/ruff/pull/7627)
- Update return type for `PT022` autofix by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/7613](https://togithub.com/astral-sh/ruff/pull/7613)
- Flag FURB105 with starred kwargs by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7630](https://togithub.com/astral-sh/ruff/pull/7630)
- Don't suggest replacing `builtin.open()` with `Path.open()` if the latter doesn't support all options by [@​konstin](https://togithub.com/konstin) in [https://github.com/astral-sh/ruff/pull/7637](https://togithub.com/astral-sh/ruff/pull/7637)
- Use 1-based cell indices consistently for Notebooks by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/7662](https://togithub.com/astral-sh/ruff/pull/7662)
- Add `Expr::Name` checks to rules which use `is_logger_candidate` by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/7521](https://togithub.com/astral-sh/ruff/pull/7521)
- Ensure that B006 autofixes are inserted after imports by [@​Hoxbro](https://togithub.com/Hoxbro) in [https://github.com/astral-sh/ruff/pull/7629](https://togithub.com/astral-sh/ruff/pull/7629)
- Allow named expressions in `__all__` assignments by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7673](https://togithub.com/astral-sh/ruff/pull/7673)
- Include radix base prefix in large number representation by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7700](https://togithub.com/astral-sh/ruff/pull/7700)
- Parenthesize multi-line attributes in B009 by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7701](https://togithub.com/astral-sh/ruff/pull/7701)
- Insert necessary padding in B014 fixes by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7699](https://togithub.com/astral-sh/ruff/pull/7699)
- fix(rules): improve S507 detection by [@​mkniewallner](https://togithub.com/mkniewallner) in [https://github.com/astral-sh/ruff/pull/7661](https://togithub.com/astral-sh/ruff/pull/7661)
- Ignore TODO tags in `commented-out-code` by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/7523](https://togithub.com/astral-sh/ruff/pull/7523)
- Track fix isolation in `unnecessary-pass` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7715](https://togithub.com/astral-sh/ruff/pull/7715)
- Use fixed source code for parser context by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7717](https://togithub.com/astral-sh/ruff/pull/7717)
- Preserve parentheses in `quadratic-list-summation` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7719](https://togithub.com/astral-sh/ruff/pull/7719)
- Compute `NotebookIndex` for `Diagnostics` on stdin by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/7663](https://togithub.com/astral-sh/ruff/pull/7663)
- Perform insertions before replacements by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7739](https://togithub.com/astral-sh/ruff/pull/7739)
- Skip all bracketed expressions when locating comparison ops by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7740](https://togithub.com/astral-sh/ruff/pull/7740)
- Fix PLE251 rules with f-string escaping by [@​konstin](https://togithub.com/konstin) in [https://github.com/astral-sh/ruff/pull/7741](https://togithub.com/astral-sh/ruff/pull/7741)
- Skip BOM when inserting start-of-file imports by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7622](https://togithub.com/astral-sh/ruff/pull/7622)
- Emit `LexError` for dedent to incorrect level by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/astral-sh/ruff/pull/7638](https://togithub.com/astral-sh/ruff/pull/7638)
- Expand `DeprecatedLogWarn` to check for `Expr::Atrribute` calls by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/7677](https://togithub.com/astral-sh/ruff/pull/7677)
##### Other Changes
- Add support for PEP 701 by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/7376](https://togithub.com/astral-sh/ruff/pull/7376)
- Improve performance of `commented-out-code` (~50-80%) by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7706](https://togithub.com/astral-sh/ruff/pull/7706)
#### New Contributors
- [@​bluthej](https://togithub.com/bluthej) made their first contribution in [https://github.com/astral-sh/ruff/pull/7665](https://togithub.com/astral-sh/ruff/pull/7665)
- [@​Hoxbro](https://togithub.com/Hoxbro) made their first contribution in [https://github.com/astral-sh/ruff/pull/7629](https://togithub.com/astral-sh/ruff/pull/7629)
- [@​danparizher](https://togithub.com/danparizher) made their first contribution in [https://github.com/astral-sh/ruff/pull/7704](https://togithub.com/astral-sh/ruff/pull/7704)
- [@​aspizu](https://togithub.com/aspizu) made their first contribution in [https://github.com/astral-sh/ruff/pull/7750](https://togithub.com/astral-sh/ruff/pull/7750)
**Full Changelog**: https://github.com/astral-sh/ruff/compare/v0.0.291...v0.0.292
### [`v0.0.291`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.291)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.290...v0.0.291)
<!-- Release notes generated using configuration in .github/release.yml at v0.0.291 -->
#### What's Changed
##### Deprecations
**The `format` command-line argument and configuration option has been renamed to `output-format`.** While Ruff will continue to respect `format` when passed as a command-line argument or configuration option, this backwards-compatible support will be dropped in a future release. See: [https://github.com/astral-sh/ruff/pull/7514](https://togithub.com/astral-sh/ruff/pull/7514).
##### Rules
- \[`flake8-bandit`] Implement `S201`: `flask-debug-true` by [@​mkniewallner](https://togithub.com/mkniewallner) in [https://github.com/astral-sh/ruff/pull/7503](https://togithub.com/astral-sh/ruff/pull/7503)
- \[`flake8-bandit`] Implement `S507`: `ssh_no_host_key_verification` by [@​mkniewallner](https://togithub.com/mkniewallner) in [https://github.com/astral-sh/ruff/pull/7528](https://togithub.com/astral-sh/ruff/pull/7528)
- \[`flake8-logging`] Implement `LOG002`: `invalid-get-logger-argument` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/7399](https://togithub.com/astral-sh/ruff/pull/7399)
- \[`flake8-logging`] Implement `LOG007`: `exception-without-exc-info` by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/7410](https://togithub.com/astral-sh/ruff/pull/7410)
- \[`refurb`] Implement `FURB140`: `reimplemented-starmap` by [@​SavchenkoValeriy](https://togithub.com/SavchenkoValeriy) in [https://github.com/astral-sh/ruff/pull/7253](https://togithub.com/astral-sh/ruff/pull/7253)
- \[`refurb`] Implement `FURB148`: `unnecessary-enumerate` by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/7454](https://togithub.com/astral-sh/ruff/pull/7454)
- \[`ruff`] Detect `asyncio.get_running_loop` calls in RUF006 by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7562](https://togithub.com/astral-sh/ruff/pull/7562)
##### Settings
- Show `--no-X` variants in CLI help by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7504](https://togithub.com/astral-sh/ruff/pull/7504)
- Rename `format` option to `output-format` by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/astral-sh/ruff/pull/7514](https://togithub.com/astral-sh/ruff/pull/7514)
- Enable tab completion for `ruff rule` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7560](https://togithub.com/astral-sh/ruff/pull/7560)
##### Bug Fixes
- Add padding to prevent some autofix errors by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7461](https://togithub.com/astral-sh/ruff/pull/7461)
- Remove parentheses when rewriting assert calls to statements by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7464](https://togithub.com/astral-sh/ruff/pull/7464)
- Avoid flagging starred elements in C402 by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7466](https://togithub.com/astral-sh/ruff/pull/7466)
- Extend `bad-dunder-method-name` to permit `attrs` dunders by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/7472](https://togithub.com/astral-sh/ruff/pull/7472)
- Avoid N802 violations for [@​overload](https://togithub.com/overload) methods by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/astral-sh/ruff/pull/7498](https://togithub.com/astral-sh/ruff/pull/7498)
- Avoid flagging starred expressions in UP007 by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7505](https://togithub.com/astral-sh/ruff/pull/7505)
- Ensure that LOG007 only triggers on `.exception()` calls by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7524](https://togithub.com/astral-sh/ruff/pull/7524)
- Use strict sorted and union for NoQA mapping insertion by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/7531](https://togithub.com/astral-sh/ruff/pull/7531)
- Avoid inserting imports directly after continuation by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7553](https://togithub.com/astral-sh/ruff/pull/7553)
- Add padding in `PERF102` fixes by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7554](https://togithub.com/astral-sh/ruff/pull/7554)
- Avoid invalid fix for parenthesized values in F601 by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7559](https://togithub.com/astral-sh/ruff/pull/7559)
- Treat `os.error` as an `OSError` alias by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7582](https://togithub.com/astral-sh/ruff/pull/7582)
- Extend `bad-dunder-method-name` to permit `__html__` by [@​jaap3](https://togithub.com/jaap3) in [https://github.com/astral-sh/ruff/pull/7492](https://togithub.com/astral-sh/ruff/pull/7492)
- Fix stylist indentation with a formfeed by [@​konstin](https://togithub.com/konstin) in [https://github.com/astral-sh/ruff/pull/7489](https://togithub.com/astral-sh/ruff/pull/7489)
#### New Contributors
- [@​MicaelJarniac](https://togithub.com/MicaelJarniac) made their first contribution in [https://github.com/astral-sh/ruff/pull/5498](https://togithub.com/astral-sh/ruff/pull/5498)
- [@​maheshsaripalli9](https://togithub.com/maheshsaripalli9) made their first contribution in [https://github.com/astral-sh/ruff/pull/7552](https://togithub.com/astral-sh/ruff/pull/7552)
- [@​T-256](https://togithub.com/T-256) made their first contribution in [https://github.com/astral-sh/ruff/pull/7585](https://togithub.com/astral-sh/ruff/pull/7585)
**Full Changelog**: https://github.com/astral-sh/ruff/compare/v0.0.290...v0.0.291
### [`v0.0.290`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.290)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.289...v0.0.290)
<!-- Release notes generated using configuration in .github/release.yml at v0.0.290 -->
#### What's Changed
##### Rules
- Update `deprecated-import` lists based on recent `typing-extensions` release by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7356](https://togithub.com/astral-sh/ruff/pull/7356)
- Add support for bounds, constraints, and explicit variance on generic type variables to `UP040` by [@​nathanwhit](https://togithub.com/nathanwhit) in [https://github.com/astral-sh/ruff/pull/6749](https://togithub.com/astral-sh/ruff/pull/6749)
##### Settings
- Show rule codes in shell tab completion by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7375](https://togithub.com/astral-sh/ruff/pull/7375)
##### Bug Fixes
- Parenthesize single-generator arguments when adding reverse keyword by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7365](https://togithub.com/astral-sh/ruff/pull/7365)
- Invert reverse argument regardless of whether it's a boolean by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7372](https://togithub.com/astral-sh/ruff/pull/7372)
- Extend `C416` to catch tuple unpacking by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/7363](https://togithub.com/astral-sh/ruff/pull/7363)
- Allow `NURSERY` rule selctor in JSON Schema by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://gi
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "every weekend" in timezone Etc/UTC, Automerge - "before 07:00" 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/charmcraft).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | The ruff v0.1.6 dependency update was closed without merging. A maintainer rejected the PR after the project switched to managing ruff via a snap package instead of pip. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Renovate dependency update for ruff v0.1.6 was closed after a maintainer noted the project switched to the ruff snap, abandoning the update. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Dependency update for ruff to v0.1.6 was closed and abandoned. A maintainer rejected the change, noting the project switched to using the ruff snap instead. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #118 chore(deps): update dependency lint/ruff to v0.1.1 | craft-application | closed | Dependency update for lint/ruff to v0.1.1 was closed without merging. The change was superseded by pull request #115. | |
| #182 chore(deps): update dependency ruff to v0.2.0 - autoclosed | starbase | closed | Automatically closed by Renovate after passing CI checks and approval. The PR updated the ruff dependency from v0.1.15 to v0.2.0. | |
| #177 chore(deps): update dependency ruff to v0.1.15 | starbase | merged | Successfully merged automated dependency update upgrading ruff from 0.0.267 to 0.1.15. The change passed CI checks, maintained 100% test coverage, and updated the project's linting tool to the latest release. | |
| #1346 chore(deps): update dependency ruff to v0.1.1 | charmcraft | closed | The ruff dependency update to v0.1.1 was closed and superseded by PR #1347. Renovate will ignore this update and wait for a newer version. | |
| #423 chore(deps): update dependency ruff to v0.1.6 | rockcraft | merged | Merged automated dependency update upgrading ruff from v0.1.1 to v0.1.6. Approved by two reviewers, passed CI checks, and applied with a minimal two-line change across two files. | |
| #387 chore(deps): update dependency ruff to v0.1.1 | rockcraft | merged | Renovate bot updated the ruff dependency from 0.0.256 to 0.1.1. The change was approved by two reviewers, passed CI checks, and successfully merged. | |
| #589 chore(deps): update dependency ruff to v0.1.14 | craft-parts | merged | Merged automated dependency update for ruff from v0.1.6 to v0.1.14. Approved by two reviewers with passing CI checks. Updated a single configuration file to apply the new version constraint. | |
| #699 chore(deps): update dependency ruff to v0.3.5 | craft-parts | closed | Superseded by PR #700. The Renovate dependency update for ruff v0.3.5 was closed without merging. | |
| #37 chore(deps): update dependency ruff to v0.0.247 | starbase | merged | Automatically merged dependency update for ruff from v0.0.245 to v0.0.247. The change passed CI checks, received approval, and was merged via Renovate bot automation to keep the Python linter current. | |
| #252 chore(deps): update dependency lint/ruff to ~=0.4.1 - autoclosed | craft-cli | closed | Renovate autoclosed this dependency update for lint/ruff to 0.4.1 without merging. The branch was superseded or became stale, resulting in an automatic closure with no reviewer activity or CI checks. |