astral-sh/ruff (lint/ruff)
### [`v0.1.7`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#017)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.1.6...v0.1.7)
##### Preview features
- Implement multiline dictionary and list hugging for preview style ([#8293](https://togithub.com/astral-sh/ruff/pull/8293))
- Implement the `fix_power_op_line_length` preview style ([#8947](https://togithub.com/astral-sh/ruff/pull/8947))
- Use Python version to determine typing rewrite safety ([#8919](https://togithub.com/astral-sh/ruff/pull/8919))
- \[`flake8-annotations`] Enable auto-return-type involving `Optional` and `Union` annotations ([#8885](https://togithub.com/astral-sh/ruff/pull/8885))
- \[`flake8-bandit`] Implement `django-raw-sql` (`S611`) ([#8651](https://togithub.com/astral-sh/ruff/pull/8651))
- \[`flake8-bandit`] Implement `tarfile-unsafe-members` (`S202`) ([#8829](https://togithub.com/astral-sh/ruff/pull/8829))
- \[`flake8-pyi`] Implement fix for `unnecessary-literal-union` (`PYI030`) ([#7934](https://togithub.com/astral-sh/ruff/pull/7934))
- \[`flake8-simplify`] Extend `dict-get-with-none-default` (`SIM910`) to non-literals ([#8762](https://togithub.com/astral-sh/ruff/pull/8762))
- \[`pylint`] - add `unnecessary-list-index-lookup` (`PLR1736`) + autofix ([#7999](https://togithub.com/astral-sh/ruff/pull/7999))
- \[`pylint`] - implement R0202 and R0203 with autofixes ([#8335](https://togithub.com/astral-sh/ruff/pull/8335))
- \[`pylint`] Implement `repeated-keyword` (`PLe1132`) ([#8706](https://togithub.com/astral-sh/ruff/pull/8706))
- \[`pylint`] Implement `too-many-positional` (`PLR0917`) ([#8995](https://togithub.com/astral-sh/ruff/pull/8995))
- \[`pylint`] Implement `unnecessary-dict-index-lookup` (`PLR1733`) ([#8036](https://togithub.com/astral-sh/ruff/pull/8036))
- \[`refurb`] Implement `redundant-log-base` (`FURB163`) ([#8842](https://togithub.com/astral-sh/ruff/pull/8842))
##### Rule changes
- \[`flake8-boolean-trap`] Allow booleans in `@override` methods ([#8882](https://togithub.com/astral-sh/ruff/pull/8882))
- \[`flake8-bugbear`] Avoid `B015`,`B018` for last expression in a cell ([#8815](https://togithub.com/astral-sh/ruff/pull/8815))
- \[`flake8-pie`] Allow ellipses for enum values in stub files ([#8825](https://togithub.com/astral-sh/ruff/pull/8825))
- \[`flake8-pyi`] Check PEP 695 type aliases for `snake-case-type-alias` and `t-suffixed-type-alias` ([#8966](https://togithub.com/astral-sh/ruff/pull/8966))
- \[`flake8-pyi`] Check for kwarg and vararg `NoReturn` type annotations ([#8948](https://togithub.com/astral-sh/ruff/pull/8948))
- \[`flake8-simplify`] Omit select context managers from `SIM117` ([#8801](https://togithub.com/astral-sh/ruff/pull/8801))
- \[`pep8-naming`] Allow Django model loads in `non-lowercase-variable-in-function` (`N806`) ([#8917](https://togithub.com/astral-sh/ruff/pull/8917))
- \[`pycodestyle`] Avoid `E703` for last expression in a cell ([#8821](https://togithub.com/astral-sh/ruff/pull/8821))
- \[`pycodestyle`] Update `E402` to work at cell level for notebooks ([#8872](https://togithub.com/astral-sh/ruff/pull/8872))
- \[`pydocstyle`] Avoid `D100` for Jupyter Notebooks ([#8816](https://togithub.com/astral-sh/ruff/pull/8816))
- \[`pylint`] Implement fix for `unspecified-encoding` (`PLW1514`) ([#8928](https://togithub.com/astral-sh/ruff/pull/8928))
##### Formatter
- Avoid unstable formatting in ellipsis-only body with trailing comment ([#8984](https://togithub.com/astral-sh/ruff/pull/8984))
- Inline trailing comments for type alias similar to assignments ([#8941](https://togithub.com/astral-sh/ruff/pull/8941))
- Insert trailing comma when function breaks with single argument ([#8921](https://togithub.com/astral-sh/ruff/pull/8921))
##### CLI
- Update `ruff check` and `ruff format` to default to the current directory ([#8791](https://togithub.com/astral-sh/ruff/pull/8791))
- Stop at the first resolved parent configuration ([#8864](https://togithub.com/astral-sh/ruff/pull/8864))
##### Configuration
- \[`pylint`] Default `max-positional-args` to `max-args` ([#8998](https://togithub.com/astral-sh/ruff/pull/8998))
- \[`pylint`] Add `allow-dunder-method-names` setting for `bad-dunder-method-name` (`PLW3201`) ([#8812](https://togithub.com/astral-sh/ruff/pull/8812))
- \[`isort`] Add support for `from-first` setting ([#8663](https://togithub.com/astral-sh/ruff/pull/8663))
- \[`isort`] Add support for `length-sort` settings ([#8841](https://togithub.com/astral-sh/ruff/pull/8841))
##### Bug fixes
- Add support for `@functools.singledispatch` ([#8934](https://togithub.com/astral-sh/ruff/pull/8934))
- Avoid off-by-one error in stripping noqa following multi-byte char ([#8979](https://togithub.com/astral-sh/ruff/pull/8979))
- Avoid off-by-one error in with-item named expressions ([#8915](https://togithub.com/astral-sh/ruff/pull/8915))
- Avoid syntax error via invalid ur string prefix ([#8971](https://togithub.com/astral-sh/ruff/pull/8971))
- Avoid underflow in `get_model` matching ([#8965](https://togithub.com/astral-sh/ruff/pull/8965))
- Avoid unnecessary index diagnostics when value is modified ([#8970](https://togithub.com/astral-sh/ruff/pull/8970))
- Convert over-indentation rule to use number of characters ([#8983](https://togithub.com/astral-sh/ruff/pull/8983))
- Detect implicit returns in auto-return-types ([#8952](https://togithub.com/astral-sh/ruff/pull/8952))
- Fix start >= end error in over-indentation ([#8982](https://togithub.com/astral-sh/ruff/pull/8982))
- Ignore `@overload` and `@override` methods for too-many-arguments checks ([#8954](https://togithub.com/astral-sh/ruff/pull/8954))
- Lexer start of line is false only for `Mode::Expression` ([#8880](https://togithub.com/astral-sh/ruff/pull/8880))
- Mark `pydantic_settings.BaseSettings` as having default copy semantics ([#8793](https://togithub.com/astral-sh/ruff/pull/8793))
- Respect dictionary unpacking in `NamedTuple` assignments ([#8810](https://togithub.com/astral-sh/ruff/pull/8810))
- Respect local subclasses in `flake8-type-checking` ([#8768](https://togithub.com/astral-sh/ruff/pull/8768))
- Support type alias statements in simple statement positions ([#8916](https://togithub.com/astral-sh/ruff/pull/8916))
- \[`flake8-annotations`] Avoid filtering out un-representable types in return annotation ([#8881](https://togithub.com/astral-sh/ruff/pull/8881))
- \[`flake8-pie`] Retain extra ellipses in protocols and abstract methods ([#8769](https://togithub.com/astral-sh/ruff/pull/8769))
- \[`flake8-pyi`] Respect local enum subclasses in `simple-defaults` (`PYI052`) ([#8767](https://togithub.com/astral-sh/ruff/pull/8767))
- \[`flake8-trio`] Use correct range for `TRIO115` fix ([#8933](https://togithub.com/astral-sh/ruff/pull/8933))
- \[`flake8-trio`] Use full arguments range for zero-sleep-call ([#8936](https://togithub.com/astral-sh/ruff/pull/8936))
- \[`isort`] fix: mark `__main__` as first-party import ([#8805](https://togithub.com/astral-sh/ruff/pull/8805))
- \[`pep8-naming`] Avoid `N806` errors for type alias statements ([#8785](https://togithub.com/astral-sh/ruff/pull/8785))
- \[`perflint`] Avoid `PERF101` if there's an append in loop body ([#8809](https://togithub.com/astral-sh/ruff/pull/8809))
- \[`pycodestyle`] Allow space-before-colon after end-of-slice ([#8838](https://togithub.com/astral-sh/ruff/pull/8838))
- \[`pydocstyle`] Avoid non-character breaks in `over-indentation` (`D208`) ([#8866](https://togithub.com/astral-sh/ruff/pull/8866))
- \[`pydocstyle`] Ignore underlines when determining docstring logical lines ([#8929](https://togithub.com/astral-sh/ruff/pull/8929))
- \[`pylint`] Extend `self-assigning-variable` to multi-target assignments ([#8839](https://togithub.com/astral-sh/ruff/pull/8839))
- \[`tryceratops`] Avoid repeated triggers in nested `tryceratops` diagnostics ([#8772](https://togithub.com/astral-sh/ruff/pull/8772))
##### Documentation
- Add advice for fixing RUF008 when mutability is not desired ([#8853](https://togithub.com/astral-sh/ruff/pull/8853))
- Added the command to run ruff using pkgx to the installation.md ([#8955](https://togithub.com/astral-sh/ruff/pull/8955))
- Document fix safety for flake8-comprehensions and some pyupgrade rules ([#8918](https://togithub.com/astral-sh/ruff/pull/8918))
- Fix doc formatting for zero-sleep-call ([#8937](https://togithub.com/astral-sh/ruff/pull/8937))
- Remove duplicate imports from os-stat documentation ([#8930](https://togithub.com/astral-sh/ruff/pull/8930))
- Replace generated reference to MkDocs ([#8806](https://togithub.com/astral-sh/ruff/pull/8806))
- Update Arch Linux package URL in installation.md ([#8802](https://togithub.com/astral-sh/ruff/pull/8802))
- \[`flake8-pyi`] Fix error in `t-suffixed-type-alias` (`PYI043`) example ([#8963](https://togithub.com/astral-sh/ruff/pull/8963))
- \[`flake8-pyi`] Improve motivation for `custom-type-var-return-type` (`PYI019`) ([#8766](https://togithub.com/astral-sh/ruff/pull/8766))
### [`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))
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.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
==0.1.1
->==0.1.7
Release Notes
astral-sh/ruff (lint/ruff)
### [`v0.1.7`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#017) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.1.6...v0.1.7) ##### Preview features - Implement multiline dictionary and list hugging for preview style ([#8293](https://togithub.com/astral-sh/ruff/pull/8293)) - Implement the `fix_power_op_line_length` preview style ([#8947](https://togithub.com/astral-sh/ruff/pull/8947)) - Use Python version to determine typing rewrite safety ([#8919](https://togithub.com/astral-sh/ruff/pull/8919)) - \[`flake8-annotations`] Enable auto-return-type involving `Optional` and `Union` annotations ([#8885](https://togithub.com/astral-sh/ruff/pull/8885)) - \[`flake8-bandit`] Implement `django-raw-sql` (`S611`) ([#8651](https://togithub.com/astral-sh/ruff/pull/8651)) - \[`flake8-bandit`] Implement `tarfile-unsafe-members` (`S202`) ([#8829](https://togithub.com/astral-sh/ruff/pull/8829)) - \[`flake8-pyi`] Implement fix for `unnecessary-literal-union` (`PYI030`) ([#7934](https://togithub.com/astral-sh/ruff/pull/7934)) - \[`flake8-simplify`] Extend `dict-get-with-none-default` (`SIM910`) to non-literals ([#8762](https://togithub.com/astral-sh/ruff/pull/8762)) - \[`pylint`] - add `unnecessary-list-index-lookup` (`PLR1736`) + autofix ([#7999](https://togithub.com/astral-sh/ruff/pull/7999)) - \[`pylint`] - implement R0202 and R0203 with autofixes ([#8335](https://togithub.com/astral-sh/ruff/pull/8335)) - \[`pylint`] Implement `repeated-keyword` (`PLe1132`) ([#8706](https://togithub.com/astral-sh/ruff/pull/8706)) - \[`pylint`] Implement `too-many-positional` (`PLR0917`) ([#8995](https://togithub.com/astral-sh/ruff/pull/8995)) - \[`pylint`] Implement `unnecessary-dict-index-lookup` (`PLR1733`) ([#8036](https://togithub.com/astral-sh/ruff/pull/8036)) - \[`refurb`] Implement `redundant-log-base` (`FURB163`) ([#8842](https://togithub.com/astral-sh/ruff/pull/8842)) ##### Rule changes - \[`flake8-boolean-trap`] Allow booleans in `@override` methods ([#8882](https://togithub.com/astral-sh/ruff/pull/8882)) - \[`flake8-bugbear`] Avoid `B015`,`B018` for last expression in a cell ([#8815](https://togithub.com/astral-sh/ruff/pull/8815)) - \[`flake8-pie`] Allow ellipses for enum values in stub files ([#8825](https://togithub.com/astral-sh/ruff/pull/8825)) - \[`flake8-pyi`] Check PEP 695 type aliases for `snake-case-type-alias` and `t-suffixed-type-alias` ([#8966](https://togithub.com/astral-sh/ruff/pull/8966)) - \[`flake8-pyi`] Check for kwarg and vararg `NoReturn` type annotations ([#8948](https://togithub.com/astral-sh/ruff/pull/8948)) - \[`flake8-simplify`] Omit select context managers from `SIM117` ([#8801](https://togithub.com/astral-sh/ruff/pull/8801)) - \[`pep8-naming`] Allow Django model loads in `non-lowercase-variable-in-function` (`N806`) ([#8917](https://togithub.com/astral-sh/ruff/pull/8917)) - \[`pycodestyle`] Avoid `E703` for last expression in a cell ([#8821](https://togithub.com/astral-sh/ruff/pull/8821)) - \[`pycodestyle`] Update `E402` to work at cell level for notebooks ([#8872](https://togithub.com/astral-sh/ruff/pull/8872)) - \[`pydocstyle`] Avoid `D100` for Jupyter Notebooks ([#8816](https://togithub.com/astral-sh/ruff/pull/8816)) - \[`pylint`] Implement fix for `unspecified-encoding` (`PLW1514`) ([#8928](https://togithub.com/astral-sh/ruff/pull/8928)) ##### Formatter - Avoid unstable formatting in ellipsis-only body with trailing comment ([#8984](https://togithub.com/astral-sh/ruff/pull/8984)) - Inline trailing comments for type alias similar to assignments ([#8941](https://togithub.com/astral-sh/ruff/pull/8941)) - Insert trailing comma when function breaks with single argument ([#8921](https://togithub.com/astral-sh/ruff/pull/8921)) ##### CLI - Update `ruff check` and `ruff format` to default to the current directory ([#8791](https://togithub.com/astral-sh/ruff/pull/8791)) - Stop at the first resolved parent configuration ([#8864](https://togithub.com/astral-sh/ruff/pull/8864)) ##### Configuration - \[`pylint`] Default `max-positional-args` to `max-args` ([#8998](https://togithub.com/astral-sh/ruff/pull/8998)) - \[`pylint`] Add `allow-dunder-method-names` setting for `bad-dunder-method-name` (`PLW3201`) ([#8812](https://togithub.com/astral-sh/ruff/pull/8812)) - \[`isort`] Add support for `from-first` setting ([#8663](https://togithub.com/astral-sh/ruff/pull/8663)) - \[`isort`] Add support for `length-sort` settings ([#8841](https://togithub.com/astral-sh/ruff/pull/8841)) ##### Bug fixes - Add support for `@functools.singledispatch` ([#8934](https://togithub.com/astral-sh/ruff/pull/8934)) - Avoid off-by-one error in stripping noqa following multi-byte char ([#8979](https://togithub.com/astral-sh/ruff/pull/8979)) - Avoid off-by-one error in with-item named expressions ([#8915](https://togithub.com/astral-sh/ruff/pull/8915)) - Avoid syntax error via invalid ur string prefix ([#8971](https://togithub.com/astral-sh/ruff/pull/8971)) - Avoid underflow in `get_model` matching ([#8965](https://togithub.com/astral-sh/ruff/pull/8965)) - Avoid unnecessary index diagnostics when value is modified ([#8970](https://togithub.com/astral-sh/ruff/pull/8970)) - Convert over-indentation rule to use number of characters ([#8983](https://togithub.com/astral-sh/ruff/pull/8983)) - Detect implicit returns in auto-return-types ([#8952](https://togithub.com/astral-sh/ruff/pull/8952)) - Fix start >= end error in over-indentation ([#8982](https://togithub.com/astral-sh/ruff/pull/8982)) - Ignore `@overload` and `@override` methods for too-many-arguments checks ([#8954](https://togithub.com/astral-sh/ruff/pull/8954)) - Lexer start of line is false only for `Mode::Expression` ([#8880](https://togithub.com/astral-sh/ruff/pull/8880)) - Mark `pydantic_settings.BaseSettings` as having default copy semantics ([#8793](https://togithub.com/astral-sh/ruff/pull/8793)) - Respect dictionary unpacking in `NamedTuple` assignments ([#8810](https://togithub.com/astral-sh/ruff/pull/8810)) - Respect local subclasses in `flake8-type-checking` ([#8768](https://togithub.com/astral-sh/ruff/pull/8768)) - Support type alias statements in simple statement positions ([#8916](https://togithub.com/astral-sh/ruff/pull/8916)) - \[`flake8-annotations`] Avoid filtering out un-representable types in return annotation ([#8881](https://togithub.com/astral-sh/ruff/pull/8881)) - \[`flake8-pie`] Retain extra ellipses in protocols and abstract methods ([#8769](https://togithub.com/astral-sh/ruff/pull/8769)) - \[`flake8-pyi`] Respect local enum subclasses in `simple-defaults` (`PYI052`) ([#8767](https://togithub.com/astral-sh/ruff/pull/8767)) - \[`flake8-trio`] Use correct range for `TRIO115` fix ([#8933](https://togithub.com/astral-sh/ruff/pull/8933)) - \[`flake8-trio`] Use full arguments range for zero-sleep-call ([#8936](https://togithub.com/astral-sh/ruff/pull/8936)) - \[`isort`] fix: mark `__main__` as first-party import ([#8805](https://togithub.com/astral-sh/ruff/pull/8805)) - \[`pep8-naming`] Avoid `N806` errors for type alias statements ([#8785](https://togithub.com/astral-sh/ruff/pull/8785)) - \[`perflint`] Avoid `PERF101` if there's an append in loop body ([#8809](https://togithub.com/astral-sh/ruff/pull/8809)) - \[`pycodestyle`] Allow space-before-colon after end-of-slice ([#8838](https://togithub.com/astral-sh/ruff/pull/8838)) - \[`pydocstyle`] Avoid non-character breaks in `over-indentation` (`D208`) ([#8866](https://togithub.com/astral-sh/ruff/pull/8866)) - \[`pydocstyle`] Ignore underlines when determining docstring logical lines ([#8929](https://togithub.com/astral-sh/ruff/pull/8929)) - \[`pylint`] Extend `self-assigning-variable` to multi-target assignments ([#8839](https://togithub.com/astral-sh/ruff/pull/8839)) - \[`tryceratops`] Avoid repeated triggers in nested `tryceratops` diagnostics ([#8772](https://togithub.com/astral-sh/ruff/pull/8772)) ##### Documentation - Add advice for fixing RUF008 when mutability is not desired ([#8853](https://togithub.com/astral-sh/ruff/pull/8853)) - Added the command to run ruff using pkgx to the installation.md ([#8955](https://togithub.com/astral-sh/ruff/pull/8955)) - Document fix safety for flake8-comprehensions and some pyupgrade rules ([#8918](https://togithub.com/astral-sh/ruff/pull/8918)) - Fix doc formatting for zero-sleep-call ([#8937](https://togithub.com/astral-sh/ruff/pull/8937)) - Remove duplicate imports from os-stat documentation ([#8930](https://togithub.com/astral-sh/ruff/pull/8930)) - Replace generated reference to MkDocs ([#8806](https://togithub.com/astral-sh/ruff/pull/8806)) - Update Arch Linux package URL in installation.md ([#8802](https://togithub.com/astral-sh/ruff/pull/8802)) - \[`flake8-pyi`] Fix error in `t-suffixed-type-alias` (`PYI043`) example ([#8963](https://togithub.com/astral-sh/ruff/pull/8963)) - \[`flake8-pyi`] Improve motivation for `custom-type-var-return-type` (`PYI019`) ([#8766](https://togithub.com/astral-sh/ruff/pull/8766)) ### [`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))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.
This PR has been generated by Mend Renovate. View repository job log here.