Skip to content
This repository has been archived by the owner on May 15, 2024. It is now read-only.

Commit

Permalink
chore(deps): update dependency ruff to v0.1.7 (#150)
Browse files Browse the repository at this point in the history
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ruff](https://docs.astral.sh/ruff)
([source](https://github.com/astral-sh/ruff),
[changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md))
| `==0.0.263` -> `==0.1.7` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/ruff/0.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/ruff/0.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/ruff/0.0.263/0.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ruff/0.0.263/0.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>astral-sh/ruff (ruff)</summary>

###
[`v0.1.7`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#017)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.1.6...v0.1.7)

##### Preview features

- Implement multiline dictionary and list hugging for preview style
([#&#8203;8293](https://github.com/astral-sh/ruff/pull/8293))
- Implement the `fix_power_op_line_length` preview style
([#&#8203;8947](https://github.com/astral-sh/ruff/pull/8947))
- Use Python version to determine typing rewrite safety
([#&#8203;8919](https://github.com/astral-sh/ruff/pull/8919))
- \[`flake8-annotations`] Enable auto-return-type involving `Optional`
and `Union` annotations
([#&#8203;8885](https://github.com/astral-sh/ruff/pull/8885))
- \[`flake8-bandit`] Implement `django-raw-sql` (`S611`)
([#&#8203;8651](https://github.com/astral-sh/ruff/pull/8651))
- \[`flake8-bandit`] Implement `tarfile-unsafe-members` (`S202`)
([#&#8203;8829](https://github.com/astral-sh/ruff/pull/8829))
- \[`flake8-pyi`] Implement fix for `unnecessary-literal-union`
(`PYI030`)
([#&#8203;7934](https://github.com/astral-sh/ruff/pull/7934))
- \[`flake8-simplify`] Extend `dict-get-with-none-default` (`SIM910`) to
non-literals
([#&#8203;8762](https://github.com/astral-sh/ruff/pull/8762))
- \[`pylint`] - add `unnecessary-list-index-lookup` (`PLR1736`) +
autofix ([#&#8203;7999](https://github.com/astral-sh/ruff/pull/7999))
- \[`pylint`] - implement R0202 and R0203 with autofixes
([#&#8203;8335](https://github.com/astral-sh/ruff/pull/8335))
- \[`pylint`] Implement `repeated-keyword` (`PLe1132`)
([#&#8203;8706](https://github.com/astral-sh/ruff/pull/8706))
- \[`pylint`] Implement `too-many-positional` (`PLR0917`)
([#&#8203;8995](https://github.com/astral-sh/ruff/pull/8995))
- \[`pylint`] Implement `unnecessary-dict-index-lookup` (`PLR1733`)
([#&#8203;8036](https://github.com/astral-sh/ruff/pull/8036))
- \[`refurb`] Implement `redundant-log-base` (`FURB163`)
([#&#8203;8842](https://github.com/astral-sh/ruff/pull/8842))

##### Rule changes

- \[`flake8-boolean-trap`] Allow booleans in `@override` methods
([#&#8203;8882](https://github.com/astral-sh/ruff/pull/8882))
- \[`flake8-bugbear`] Avoid `B015`,`B018` for last expression in a cell
([#&#8203;8815](https://github.com/astral-sh/ruff/pull/8815))
- \[`flake8-pie`] Allow ellipses for enum values in stub files
([#&#8203;8825](https://github.com/astral-sh/ruff/pull/8825))
- \[`flake8-pyi`] Check PEP 695 type aliases for `snake-case-type-alias`
and `t-suffixed-type-alias`
([#&#8203;8966](https://github.com/astral-sh/ruff/pull/8966))
- \[`flake8-pyi`] Check for kwarg and vararg `NoReturn` type annotations
([#&#8203;8948](https://github.com/astral-sh/ruff/pull/8948))
- \[`flake8-simplify`] Omit select context managers from `SIM117`
([#&#8203;8801](https://github.com/astral-sh/ruff/pull/8801))
- \[`pep8-naming`] Allow Django model loads in
`non-lowercase-variable-in-function` (`N806`)
([#&#8203;8917](https://github.com/astral-sh/ruff/pull/8917))
- \[`pycodestyle`] Avoid `E703` for last expression in a cell
([#&#8203;8821](https://github.com/astral-sh/ruff/pull/8821))
- \[`pycodestyle`] Update `E402` to work at cell level for notebooks
([#&#8203;8872](https://github.com/astral-sh/ruff/pull/8872))
- \[`pydocstyle`] Avoid `D100` for Jupyter Notebooks
([#&#8203;8816](https://github.com/astral-sh/ruff/pull/8816))
- \[`pylint`] Implement fix for `unspecified-encoding` (`PLW1514`)
([#&#8203;8928](https://github.com/astral-sh/ruff/pull/8928))

##### Formatter

- Avoid unstable formatting in ellipsis-only body with trailing comment
([#&#8203;8984](https://github.com/astral-sh/ruff/pull/8984))
- Inline trailing comments for type alias similar to assignments
([#&#8203;8941](https://github.com/astral-sh/ruff/pull/8941))
- Insert trailing comma when function breaks with single argument
([#&#8203;8921](https://github.com/astral-sh/ruff/pull/8921))

##### CLI

- Update `ruff check` and `ruff format` to default to the current
directory
([#&#8203;8791](https://github.com/astral-sh/ruff/pull/8791))
- Stop at the first resolved parent configuration
([#&#8203;8864](https://github.com/astral-sh/ruff/pull/8864))

##### Configuration

- \[`pylint`] Default `max-positional-args` to `max-args`
([#&#8203;8998](https://github.com/astral-sh/ruff/pull/8998))
- \[`pylint`] Add `allow-dunder-method-names` setting for
`bad-dunder-method-name` (`PLW3201`)
([#&#8203;8812](https://github.com/astral-sh/ruff/pull/8812))
- \[`isort`] Add support for `from-first` setting
([#&#8203;8663](https://github.com/astral-sh/ruff/pull/8663))
- \[`isort`] Add support for `length-sort` settings
([#&#8203;8841](https://github.com/astral-sh/ruff/pull/8841))

##### Bug fixes

- Add support for `@functools.singledispatch`
([#&#8203;8934](https://github.com/astral-sh/ruff/pull/8934))
- Avoid off-by-one error in stripping noqa following multi-byte char
([#&#8203;8979](https://github.com/astral-sh/ruff/pull/8979))
- Avoid off-by-one error in with-item named expressions
([#&#8203;8915](https://github.com/astral-sh/ruff/pull/8915))
- Avoid syntax error via invalid ur string prefix
([#&#8203;8971](https://github.com/astral-sh/ruff/pull/8971))
- Avoid underflow in `get_model` matching
([#&#8203;8965](https://github.com/astral-sh/ruff/pull/8965))
- Avoid unnecessary index diagnostics when value is modified
([#&#8203;8970](https://github.com/astral-sh/ruff/pull/8970))
- Convert over-indentation rule to use number of characters
([#&#8203;8983](https://github.com/astral-sh/ruff/pull/8983))
- Detect implicit returns in auto-return-types
([#&#8203;8952](https://github.com/astral-sh/ruff/pull/8952))
- Fix start >= end error in over-indentation
([#&#8203;8982](https://github.com/astral-sh/ruff/pull/8982))
- Ignore `@overload` and `@override` methods for too-many-arguments
checks ([#&#8203;8954](https://github.com/astral-sh/ruff/pull/8954))
- Lexer start of line is false only for `Mode::Expression`
([#&#8203;8880](https://github.com/astral-sh/ruff/pull/8880))
- Mark `pydantic_settings.BaseSettings` as having default copy semantics
([#&#8203;8793](https://github.com/astral-sh/ruff/pull/8793))
- Respect dictionary unpacking in `NamedTuple` assignments
([#&#8203;8810](https://github.com/astral-sh/ruff/pull/8810))
- Respect local subclasses in `flake8-type-checking`
([#&#8203;8768](https://github.com/astral-sh/ruff/pull/8768))
- Support type alias statements in simple statement positions
([#&#8203;8916](https://github.com/astral-sh/ruff/pull/8916))
- \[`flake8-annotations`] Avoid filtering out un-representable types in
return annotation
([#&#8203;8881](https://github.com/astral-sh/ruff/pull/8881))
- \[`flake8-pie`] Retain extra ellipses in protocols and abstract
methods ([#&#8203;8769](https://github.com/astral-sh/ruff/pull/8769))
- \[`flake8-pyi`] Respect local enum subclasses in `simple-defaults`
(`PYI052`)
([#&#8203;8767](https://github.com/astral-sh/ruff/pull/8767))
- \[`flake8-trio`] Use correct range for `TRIO115` fix
([#&#8203;8933](https://github.com/astral-sh/ruff/pull/8933))
- \[`flake8-trio`] Use full arguments range for zero-sleep-call
([#&#8203;8936](https://github.com/astral-sh/ruff/pull/8936))
- \[`isort`] fix: mark `__main__` as first-party import
([#&#8203;8805](https://github.com/astral-sh/ruff/pull/8805))
- \[`pep8-naming`] Avoid `N806` errors for type alias statements
([#&#8203;8785](https://github.com/astral-sh/ruff/pull/8785))
- \[`perflint`] Avoid `PERF101` if there's an append in loop body
([#&#8203;8809](https://github.com/astral-sh/ruff/pull/8809))
- \[`pycodestyle`] Allow space-before-colon after end-of-slice
([#&#8203;8838](https://github.com/astral-sh/ruff/pull/8838))
- \[`pydocstyle`] Avoid non-character breaks in `over-indentation`
(`D208`) ([#&#8203;8866](https://github.com/astral-sh/ruff/pull/8866))
- \[`pydocstyle`] Ignore underlines when determining docstring logical
lines ([#&#8203;8929](https://github.com/astral-sh/ruff/pull/8929))
- \[`pylint`] Extend `self-assigning-variable` to multi-target
assignments
([#&#8203;8839](https://github.com/astral-sh/ruff/pull/8839))
- \[`tryceratops`] Avoid repeated triggers in nested `tryceratops`
diagnostics
([#&#8203;8772](https://github.com/astral-sh/ruff/pull/8772))

##### Documentation

- Add advice for fixing RUF008 when mutability is not desired
([#&#8203;8853](https://github.com/astral-sh/ruff/pull/8853))
- Added the command to run ruff using pkgx to the installation.md
([#&#8203;8955](https://github.com/astral-sh/ruff/pull/8955))
- Document fix safety for flake8-comprehensions and some pyupgrade rules
([#&#8203;8918](https://github.com/astral-sh/ruff/pull/8918))
- Fix doc formatting for zero-sleep-call
([#&#8203;8937](https://github.com/astral-sh/ruff/pull/8937))
- Remove duplicate imports from os-stat documentation
([#&#8203;8930](https://github.com/astral-sh/ruff/pull/8930))
- Replace generated reference to MkDocs
([#&#8203;8806](https://github.com/astral-sh/ruff/pull/8806))
- Update Arch Linux package URL in installation.md
([#&#8203;8802](https://github.com/astral-sh/ruff/pull/8802))
- \[`flake8-pyi`] Fix error in `t-suffixed-type-alias` (`PYI043`)
example ([#&#8203;8963](https://github.com/astral-sh/ruff/pull/8963))
- \[`flake8-pyi`] Improve motivation for `custom-type-var-return-type`
(`PYI019`)
([#&#8203;8766](https://github.com/astral-sh/ruff/pull/8766))

###
[`v0.1.6`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#016)

[Compare
Source](https://github.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
([#&#8203;7501](https://github.com/astral-sh/ruff/pull/7501))
- \[`flake8-pie`] Extend `reimplemented-list-builtin` (`PIE807`) to
`dict` reimplementations
([#&#8203;8608](https://github.com/astral-sh/ruff/pull/8608))
- \[`flake8-pie`] Extend `unnecessary-pass` (`PIE790`) to include
ellipses (`...`)
([#&#8203;8641](https://github.com/astral-sh/ruff/pull/8641))
- \[`flake8-pie`] Implement fix for `unnecessary-spread` (`PIE800`)
([#&#8203;8668](https://github.com/astral-sh/ruff/pull/8668))
- \[`flake8-quotes`] Implement `unnecessary-escaped-quote` (`Q004`)
([#&#8203;8630](https://github.com/astral-sh/ruff/pull/8630))
- \[`pycodestyle`] Implement fix for `multiple-spaces-after-keyword`
(`E271`) and `multiple-spaces-before-keyword` (`E272`)
([#&#8203;8622](https://github.com/astral-sh/ruff/pull/8622))
- \[`pycodestyle`] Implement fix for `multiple-spaces-after-operator`
(`E222`) and `multiple-spaces-before-operator` (`E221`)
([#&#8203;8623](https://github.com/astral-sh/ruff/pull/8623))
- \[`pyflakes`] Extend `is-literal` (`F632`) to include comparisons
against mutable initializers
([#&#8203;8607](https://github.com/astral-sh/ruff/pull/8607))
- \[`pylint`] Implement `redefined-argument-from-local` (`PLR1704`)
([#&#8203;8159](https://github.com/astral-sh/ruff/pull/8159))
- \[`pylint`] Implement fix for `unnecessary-lambda` (`PLW0108`)
([#&#8203;8621](https://github.com/astral-sh/ruff/pull/8621))
- \[`refurb`] Implement `if-expr-min-max` (`FURB136`)
([#&#8203;8664](https://github.com/astral-sh/ruff/pull/8664))
- \[`refurb`] Implement `math-constant` (`FURB152`)
([#&#8203;8727](https://github.com/astral-sh/ruff/pull/8727))

##### Rule changes

- \[`flake8-annotations`] Add autotyping-like return type inference for
annotation rules
([#&#8203;8643](https://github.com/astral-sh/ruff/pull/8643))
- \[`flake8-future-annotations`] Implement fix for
`future-required-type-annotation` (`FA102`)
([#&#8203;8711](https://github.com/astral-sh/ruff/pull/8711))
- \[`flake8-implicit-namespace-package`] Avoid missing namespace
violations in scripts with shebangs
([#&#8203;8710](https://github.com/astral-sh/ruff/pull/8710))
- \[`pydocstyle`] Update `over-indentation` (`D208`) to preserve
indentation offsets when fixing overindented lines
([#&#8203;8699](https://github.com/astral-sh/ruff/pull/8699))
- \[`pyupgrade`] Refine `timeout-error-alias` (`UP041`) to remove false
positives
([#&#8203;8587](https://github.com/astral-sh/ruff/pull/8587))

##### Formatter

- Fix instability in `await` formatting with fluent style
([#&#8203;8676](https://github.com/astral-sh/ruff/pull/8676))
- Compare formatted and unformatted ASTs during formatter tests
([#&#8203;8624](https://github.com/astral-sh/ruff/pull/8624))
- Preserve trailing semicolon for Notebooks
([#&#8203;8590](https://github.com/astral-sh/ruff/pull/8590))

##### CLI

- Improve debug printing for resolving origin of config settings
([#&#8203;8729](https://github.com/astral-sh/ruff/pull/8729))
- Write unchanged, excluded files to stdout when read via stdin
([#&#8203;8596](https://github.com/astral-sh/ruff/pull/8596))

##### Configuration

- \[`isort`] Support disabling sections with `no-sections = true`
([#&#8203;8657](https://github.com/astral-sh/ruff/pull/8657))
- \[`pep8-naming`] Support local and dynamic class- and static-method
decorators
([#&#8203;8592](https://github.com/astral-sh/ruff/pull/8592))
- \[`pydocstyle`] Allow overriding pydocstyle convention rules
([#&#8203;8586](https://github.com/astral-sh/ruff/pull/8586))

##### Bug fixes

- Avoid syntax error via importing `trio.lowlevel`
([#&#8203;8730](https://github.com/astral-sh/ruff/pull/8730))
- Omit unrolled augmented assignments in `PIE794`
([#&#8203;8634](https://github.com/astral-sh/ruff/pull/8634))
- Slice source code instead of generating it for `EM` fixes
([#&#8203;7746](https://github.com/astral-sh/ruff/pull/7746))
- Allow whitespace around colon in slices for
`whitespace-before-punctuation` (`E203`)
([#&#8203;8654](https://github.com/astral-sh/ruff/pull/8654))
- Use function range for `no-self-use`
([#&#8203;8637](https://github.com/astral-sh/ruff/pull/8637))
- F-strings doesn't contain bytes literal for `PLW0129`
([#&#8203;8675](https://github.com/astral-sh/ruff/pull/8675))
- Improve detection of `TYPE_CHECKING` blocks imported from
`typing_extensions` or `_typeshed`
([#&#8203;8429](https://github.com/astral-sh/ruff/pull/8429))
- Treat display as a builtin in IPython
([#&#8203;8707](https://github.com/astral-sh/ruff/pull/8707))
- Avoid `FURB113` autofix if comments are present
([#&#8203;8494](https://github.com/astral-sh/ruff/pull/8494))
- Consider the new f-string tokens for `flake8-commas`
([#&#8203;8582](https://github.com/astral-sh/ruff/pull/8582))
- Remove erroneous bad-dunder-name reference
([#&#8203;8742](https://github.com/astral-sh/ruff/pull/8742))
- Avoid recommending Self usages in metaclasses
([#&#8203;8639](https://github.com/astral-sh/ruff/pull/8639))
- Detect runtime-evaluated base classes defined in the current file
([#&#8203;8572](https://github.com/astral-sh/ruff/pull/8572))
- Avoid inserting trailing commas within f-strings
([#&#8203;8574](https://github.com/astral-sh/ruff/pull/8574))
- Remove incorrect deprecation label for stdout and stderr
([#&#8203;8743](https://github.com/astral-sh/ruff/pull/8743))
- Fix unnecessary parentheses in UP007 fix
([#&#8203;8610](https://github.com/astral-sh/ruff/pull/8610))
- Remove repeated and erroneous scoped settings headers in docs
([#&#8203;8670](https://github.com/astral-sh/ruff/pull/8670))
- Trim trailing empty strings when converting to f-strings
([#&#8203;8712](https://github.com/astral-sh/ruff/pull/8712))
- Fix ordering for `force-sort-within-sections`
([#&#8203;8665](https://github.com/astral-sh/ruff/pull/8665))
- Run unicode prefix rule over tokens
([#&#8203;8709](https://github.com/astral-sh/ruff/pull/8709))
- Update UP032 to unescape curly braces in literal parts of converted
strings ([#&#8203;8697](https://github.com/astral-sh/ruff/pull/8697))
- List all ipython builtins
([#&#8203;8719](https://github.com/astral-sh/ruff/pull/8719))

##### Documentation

- Document conventions in the FAQ
([#&#8203;8638](https://github.com/astral-sh/ruff/pull/8638))
- Redirect from rule codes to rule pages in docs
([#&#8203;8636](https://github.com/astral-sh/ruff/pull/8636))
- Fix permalink to convention setting
([#&#8203;8575](https://github.com/astral-sh/ruff/pull/8575))

###
[`v0.1.5`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#015)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.1.4...v0.1.5)

##### Preview features

- \[`flake8-bandit`] Implement `mako-templates` (`S702`)
([#&#8203;8533](https://github.com/astral-sh/ruff/pull/8533))
- \[`flake8-trio`] Implement `TRIO105`
([#&#8203;8490](https://github.com/astral-sh/ruff/pull/8490))
- \[`flake8-trio`] Implement `TRIO109`
([#&#8203;8534](https://github.com/astral-sh/ruff/pull/8534))
- \[`flake8-trio`] Implement `TRIO110`
([#&#8203;8537](https://github.com/astral-sh/ruff/pull/8537))
- \[`flake8-trio`] Implement `TRIO115`
([#&#8203;8486](https://github.com/astral-sh/ruff/pull/8486))
- \[`refurb`] Implement `type-none-comparison` (`FURB169`)
([#&#8203;8487](https://github.com/astral-sh/ruff/pull/8487))
- Flag all comparisons against builtin types in `E721`
([#&#8203;8491](https://github.com/astral-sh/ruff/pull/8491))
- Make `SIM118` fix as safe when the expression is a known dictionary
([#&#8203;8525](https://github.com/astral-sh/ruff/pull/8525))

##### Formatter

- Fix multiline lambda expression statement formatting
([#&#8203;8466](https://github.com/astral-sh/ruff/pull/8466))

##### CLI

- Add hidden `--extension` to override inference of source type from
file extension
([#&#8203;8373](https://github.com/astral-sh/ruff/pull/8373))

##### Configuration

- Account for selector specificity when merging `extend_unsafe_fixes`
and `override extend_safe_fixes`
([#&#8203;8444](https://github.com/astral-sh/ruff/pull/8444))
- Add support for disabling cache with `RUFF_NO_CACHE` environment
variable ([#&#8203;8538](https://github.com/astral-sh/ruff/pull/8538))

##### Bug fixes

- \[`E721`] Flag comparisons to `memoryview`
([#&#8203;8485](https://github.com/astral-sh/ruff/pull/8485))
- Allow collapsed-ellipsis bodies in other statements
([#&#8203;8499](https://github.com/astral-sh/ruff/pull/8499))
- Avoid `D301` autofix for `u` prefixed strings
([#&#8203;8495](https://github.com/astral-sh/ruff/pull/8495))
- Only flag `flake8-trio` rules when `trio` import is present
([#&#8203;8550](https://github.com/astral-sh/ruff/pull/8550))
- Reject more syntactically invalid Python programs
([#&#8203;8524](https://github.com/astral-sh/ruff/pull/8524))
- Avoid raising `TRIO115` violations for `trio.sleep(...)` calls with
non-number values
([#&#8203;8532](https://github.com/astral-sh/ruff/pull/8532))
- Fix `F841` false negative on assignment to multiple variables
([#&#8203;8489](https://github.com/astral-sh/ruff/pull/8489))

##### Documentation

- Fix link to isort `known-first-party`
([#&#8203;8562](https://github.com/astral-sh/ruff/pull/8562))
- Add notes on fix safety to a few rules
([#&#8203;8500](https://github.com/astral-sh/ruff/pull/8500))
- Add missing toml config tabs
([#&#8203;8512](https://github.com/astral-sh/ruff/pull/8512))
- Add instructions for configuration of Emacs
([#&#8203;8488](https://github.com/astral-sh/ruff/pull/8488))
- Improve detail link contrast in dark mode
([#&#8203;8548](https://github.com/astral-sh/ruff/pull/8548))
- Fix typo in example
([#&#8203;8506](https://github.com/astral-sh/ruff/pull/8506))
- Added tabs for configuration files in the documentation
([#&#8203;8480](https://github.com/astral-sh/ruff/pull/8480))
- Recommend `project.requires-python` over `target-version`
([#&#8203;8513](https://github.com/astral-sh/ruff/pull/8513))
- Add singleton escape hatch to `B008` documentation
([#&#8203;8501](https://github.com/astral-sh/ruff/pull/8501))
- Fix tab configuration docs
([#&#8203;8502](https://github.com/astral-sh/ruff/pull/8502))

###
[`v0.1.4`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#014)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.1.3...v0.1.4)

##### Preview features

- \[`flake8-trio`] Implement `timeout-without-await` (`TRIO001`)
([#&#8203;8439](https://github.com/astral-sh/ruff/pull/8439))
- \[`numpy`] Implement NumPy 2.0 migration rule (`NPY200`)
([#&#8203;7702](https://github.com/astral-sh/ruff/pull/7702))
- \[`pylint`] Implement `bad-open-mode` (`W1501`)
([#&#8203;8294](https://github.com/astral-sh/ruff/pull/8294))
- \[`pylint`] Implement `import-outside-toplevel` (`C0415`) rule
([#&#8203;5180](https://github.com/astral-sh/ruff/pull/5180))
- \[`pylint`] Implement `useless-with-lock` (`W2101`)
([#&#8203;8321](https://github.com/astral-sh/ruff/pull/8321))
- \[`pyupgrade`] Implement `timeout-error-alias` (`UP041`)
([#&#8203;8476](https://github.com/astral-sh/ruff/pull/8476))
- \[`refurb`] Implement `isinstance-type-none` (`FURB168`)
([#&#8203;8308](https://github.com/astral-sh/ruff/pull/8308))
- Detect confusable Unicode-to-Unicode units in `RUF001`, `RUF002`, and
`RUF003` ([#&#8203;4430](https://github.com/astral-sh/ruff/pull/4430))
- Add newline after module docstrings in preview style
([#&#8203;8283](https://github.com/astral-sh/ruff/pull/8283))

##### Formatter

- Add a note on line-too-long to the formatter docs
([#&#8203;8314](https://github.com/astral-sh/ruff/pull/8314))
- Preserve trailing statement semicolons when using `fmt: skip`
([#&#8203;8273](https://github.com/astral-sh/ruff/pull/8273))
- Preserve trailing semicolons when using `fmt: off`
([#&#8203;8275](https://github.com/astral-sh/ruff/pull/8275))
- Avoid duplicating linter-formatter compatibility warnings
([#&#8203;8292](https://github.com/astral-sh/ruff/pull/8292))
- Avoid inserting a newline after function docstrings
([#&#8203;8375](https://github.com/astral-sh/ruff/pull/8375))
- Insert newline between docstring and following own line comment
([#&#8203;8216](https://github.com/astral-sh/ruff/pull/8216))
- Split tuples in return positions by comma first
([#&#8203;8280](https://github.com/astral-sh/ruff/pull/8280))
- Avoid treating byte strings as docstrings
([#&#8203;8350](https://github.com/astral-sh/ruff/pull/8350))
- Add `--line-length` option to `format` command
([#&#8203;8363](https://github.com/astral-sh/ruff/pull/8363))
- Avoid parenthesizing unsplittable because of comments
([#&#8203;8431](https://github.com/astral-sh/ruff/pull/8431))

##### CLI

- Add `--output-format` to `ruff rule` and `ruff linter`
([#&#8203;8203](https://github.com/astral-sh/ruff/pull/8203))

##### Bug fixes

- Respect `--force-exclude` in `lint.exclude` and `format.exclude`
([#&#8203;8393](https://github.com/astral-sh/ruff/pull/8393))
- Respect `--extend-per-file-ignores` on the CLI
([#&#8203;8329](https://github.com/astral-sh/ruff/pull/8329))
- Extend `bad-dunder-method-name` to permit `__index__`
([#&#8203;8300](https://github.com/astral-sh/ruff/pull/8300))
- Fix panic with 8 in octal escape
([#&#8203;8356](https://github.com/astral-sh/ruff/pull/8356))
- Avoid raising `D300` when both triple quote styles are present
([#&#8203;8462](https://github.com/astral-sh/ruff/pull/8462))
- Consider unterminated f-strings in `FStringRanges`
([#&#8203;8154](https://github.com/astral-sh/ruff/pull/8154))
- Avoid including literal `shell=True` for truthy, non-`True`
diagnostics
([#&#8203;8359](https://github.com/astral-sh/ruff/pull/8359))
- Avoid triggering single-element test for starred expressions
([#&#8203;8433](https://github.com/astral-sh/ruff/pull/8433))
- Detect and ignore Jupyter automagics
([#&#8203;8398](https://github.com/astral-sh/ruff/pull/8398))
- Fix invalid E231 error with f-strings
([#&#8203;8369](https://github.com/astral-sh/ruff/pull/8369))
- Avoid triggering `NamedTuple` rewrite with starred annotation
([#&#8203;8434](https://github.com/astral-sh/ruff/pull/8434))
- Avoid un-setting bracket flag in logical lines
([#&#8203;8380](https://github.com/astral-sh/ruff/pull/8380))
- Place 'r' prefix before 'f' for raw format strings
([#&#8203;8464](https://github.com/astral-sh/ruff/pull/8464))
- Remove trailing periods from NumPy 2.0 code actions
([#&#8203;8475](https://github.com/astral-sh/ruff/pull/8475))
- Fix bug where `PLE1307` was raised when formatting `%c` with
characters
([#&#8203;8407](https://github.com/astral-sh/ruff/pull/8407))
- Remove unicode flag from comparable
([#&#8203;8440](https://github.com/astral-sh/ruff/pull/8440))
- Improve B015 message
([#&#8203;8295](https://github.com/astral-sh/ruff/pull/8295))
- Use `fixedOverflowWidgets` for playground popover
([#&#8203;8458](https://github.com/astral-sh/ruff/pull/8458))
- Mark `byte_bounds` as a non-backwards-compatible NumPy 2.0 change
([#&#8203;8474](https://github.com/astral-sh/ruff/pull/8474))

##### Internals

- Add a dedicated cache directory per Ruff version
([#&#8203;8333](https://github.com/astral-sh/ruff/pull/8333))
- Allow selective caching for `--fix` and `--diff`
([#&#8203;8316](https://github.com/astral-sh/ruff/pull/8316))
- Improve performance of comment parsing
([#&#8203;8193](https://github.com/astral-sh/ruff/pull/8193))
- Improve performance of string parsing
([#&#8203;8227](https://github.com/astral-sh/ruff/pull/8227))
- Use a dedicated sort key for isort import sorting
([#&#8203;7963](https://github.com/astral-sh/ruff/pull/7963))

###
[`v0.1.3`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#013)

[Compare
Source](https://github.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`
([#&#8203;8189](https://github.com/astral-sh/ruff/pull/8189))
- Avoid sorting all paths in the format command
([#&#8203;8181](https://github.com/astral-sh/ruff/pull/8181))
- Insert necessary blank line between class and leading comments
([#&#8203;8224](https://github.com/astral-sh/ruff/pull/8224))
- Avoid introducing new parentheses in annotated assignments
([#&#8203;8233](https://github.com/astral-sh/ruff/pull/8233))
- Refine the warnings about incompatible linter options
([#&#8203;8196](https://github.com/astral-sh/ruff/pull/8196))
- Add test and basic implementation for formatter preview mode
([#&#8203;8044](https://github.com/astral-sh/ruff/pull/8044))
- Refine warning about incompatible `isort` settings
([#&#8203;8192](https://github.com/astral-sh/ruff/pull/8192))
- Only omit optional parentheses for starting or ending with parentheses
([#&#8203;8238](https://github.com/astral-sh/ruff/pull/8238))
- Use source type to determine parser mode for formatting
([#&#8203;8205](https://github.com/astral-sh/ruff/pull/8205))
- Don't warn about magic trailing comma when `isort.force-single-line`
is true ([#&#8203;8244](https://github.com/astral-sh/ruff/pull/8244))
- Use `SourceKind::diff` for formatter
([#&#8203;8240](https://github.com/astral-sh/ruff/pull/8240))
- Fix `fmt:off` with trailing child comment
([#&#8203;8234](https://github.com/astral-sh/ruff/pull/8234))
- Formatter parentheses support for `IpyEscapeCommand`
([#&#8203;8207](https://github.com/astral-sh/ruff/pull/8207))

##### Linter

- \[`pylint`] Add buffer methods to `bad-dunder-method-name` (`PLW3201`)
exclusions
([#&#8203;8190](https://github.com/astral-sh/ruff/pull/8190))
- Match rule prefixes from `external` codes setting in `unused-noqa`
([#&#8203;8177](https://github.com/astral-sh/ruff/pull/8177))
- Use `line-length` setting for isort in lieu of
`pycodestyle.max-line-length`
([#&#8203;8235](https://github.com/astral-sh/ruff/pull/8235))
- Update fix for `unnecessary-paren-on-raise-exception` to unsafe for
unknown types
([#&#8203;8231](https://github.com/astral-sh/ruff/pull/8231))
- Correct quick fix message for `W605`
([#&#8203;8255](https://github.com/astral-sh/ruff/pull/8255))

##### Documentation

- Fix typo in max-doc-length documentation
([#&#8203;8201](https://github.com/astral-sh/ruff/pull/8201))
- Improve documentation around linter-formatter conflicts
([#&#8203;8257](https://github.com/astral-sh/ruff/pull/8257))
- Fix link to error suppression documentation in `unused-noqa`
([#&#8203;8172](https://github.com/astral-sh/ruff/pull/8172))
- Add `external` option to `unused-noqa` documentation
([#&#8203;8171](https://github.com/astral-sh/ruff/pull/8171))
- Add title attribute to icons
([#&#8203;8060](https://github.com/astral-sh/ruff/pull/8060))
- Clarify unsafe case in RSE102
([#&#8203;8256](https://github.com/astral-sh/ruff/pull/8256))
- Fix skipping formatting examples
([#&#8203;8210](https://github.com/astral-sh/ruff/pull/8210))
- docs: fix name of `magic-trailing-comma` option in README
([#&#8203;8200](https://github.com/astral-sh/ruff/pull/8200))
- Add note about scope of rule changing in versioning policy
([#&#8203;8169](https://github.com/astral-sh/ruff/pull/8169))
- Document: Fix default lint rules
([#&#8203;8218](https://github.com/astral-sh/ruff/pull/8218))
- Fix a wrong setting in configuration.md
([#&#8203;8186](https://github.com/astral-sh/ruff/pull/8186))
- Fix misspelled TOML headers in the tutorial
([#&#8203;8209](https://github.com/astral-sh/ruff/pull/8209))

###
[`v0.1.2`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#012)

[Compare
Source](https://github.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`)
([#&#8203;8056](https://github.com/astral-sh/ruff/pull/8056))
- \[`pylint`] implement `non-ascii-name` (`C2401`)
([#&#8203;8038](https://github.com/astral-sh/ruff/pull/8038))
- \[`pylint`] Implement unnecessary-lambda (W0108)
([#&#8203;7953](https://github.com/astral-sh/ruff/pull/7953))
- \[`refurb`] Implement `read-whole-file` (`FURB101`)
([#&#8203;7682](https://github.com/astral-sh/ruff/pull/7682))
- Add fix for `E223`, `E224`, and `E242`
([#&#8203;8143](https://github.com/astral-sh/ruff/pull/8143))
- Add fix for `E225`, `E226`, `E227`, and `E228`
([#&#8203;8136](https://github.com/astral-sh/ruff/pull/8136))
- Add fix for `E252`
([#&#8203;8142](https://github.com/astral-sh/ruff/pull/8142))
- Add fix for `E261`
([#&#8203;8114](https://github.com/astral-sh/ruff/pull/8114))
- Add fix for `E273` and `E274`
([#&#8203;8144](https://github.com/astral-sh/ruff/pull/8144))
- Add fix for `E275`
([#&#8203;8133](https://github.com/astral-sh/ruff/pull/8133))
- Update `SIM401` to catch ternary operations
([#&#8203;7415](https://github.com/astral-sh/ruff/pull/7415))
- Update `E721` to allow `is` and `is` not for direct type comparisons
([#&#8203;7905](https://github.com/astral-sh/ruff/pull/7905))

##### Rule changes

- Add `backports.strenum` to `deprecated-imports`
([#&#8203;8113](https://github.com/astral-sh/ruff/pull/8113))
- Update `SIM112` to ignore `https_proxy`, `http_proxy`, and `no_proxy`
([#&#8203;8140](https://github.com/astral-sh/ruff/pull/8140))
- Update fix for `literal-membership` (`PLR6201`) to be unsafe
([#&#8203;8097](https://github.com/astral-sh/ruff/pull/8097))
- Update fix for `mutable-argument-defaults` (`B006`) to be unsafe
([#&#8203;8108](https://github.com/astral-sh/ruff/pull/8108))

##### Formatter

- Change `line-ending` default to `auto`
([#&#8203;8057](https://github.com/astral-sh/ruff/pull/8057))
- Respect parenthesized generators in `has_own_parentheses`
([#&#8203;8100](https://github.com/astral-sh/ruff/pull/8100))
- Add caching to formatter
([#&#8203;8089](https://github.com/astral-sh/ruff/pull/8089))
- Remove `--line-length` option from `format` command
([#&#8203;8131](https://github.com/astral-sh/ruff/pull/8131))
- Add formatter to `line-length` documentation
([#&#8203;8150](https://github.com/astral-sh/ruff/pull/8150))
- Warn about incompatible formatter options
([#&#8203;8088](https://github.com/astral-sh/ruff/pull/8088))
- Fix range of unparenthesized tuple subject in match statement
([#&#8203;8101](https://github.com/astral-sh/ruff/pull/8101))
- Remove experimental formatter warning
([#&#8203;8148](https://github.com/astral-sh/ruff/pull/8148))
- Don't move type param opening parenthesis comment
([#&#8203;8163](https://github.com/astral-sh/ruff/pull/8163))
- Update versions in format benchmark script
([#&#8203;8110](https://github.com/astral-sh/ruff/pull/8110))
- Avoid loading files for cached format results
([#&#8203;8134](https://github.com/astral-sh/ruff/pull/8134))

##### CLI

- Show the `ruff format` command in help menus
([#&#8203;8167](https://github.com/astral-sh/ruff/pull/8167))
- Add `ruff version` command with long version display
([#&#8203;8034](https://github.com/astral-sh/ruff/pull/8034))

##### Configuration

- New `pycodestyle.max-line-length` option
([#&#8203;8039](https://github.com/astral-sh/ruff/pull/8039))

##### Bug fixes

- Detect `sys.version_info` slices in `outdated-version-block`
([#&#8203;8112](https://github.com/astral-sh/ruff/pull/8112))
- Avoid if-else simplification for `TYPE_CHECKING` blocks
([#&#8203;8072](https://github.com/astral-sh/ruff/pull/8072))
- Avoid false-positive print separator diagnostic with starred argument
([#&#8203;8079](https://github.com/astral-sh/ruff/pull/8079))

##### Documentation

- Fix message for `too-many-arguments` lint
([#&#8203;8092](https://github.com/astral-sh/ruff/pull/8092))
- Fix `extend-unsafe-fixes` and `extend-safe-fixes` example
([#&#8203;8139](https://github.com/astral-sh/ruff/pull/8139))
- Add links to `flake8-import-conventions` options
([#&#8203;8115](https://github.com/astral-sh/ruff/pull/8115))
- Rework the documentation to incorporate the Ruff formatter
([#&#8203;7732](https://github.com/astral-sh/ruff/pull/7732))
- Fix `Options` JSON schema description
([#&#8203;8081](https://github.com/astral-sh/ruff/pull/8081))
- Fix typo (`pytext` -> `pytest`)
([#&#8203;8117](https://github.com/astral-sh/ruff/pull/8117))
- Improve `magic-value-comparison` example in docs
([#&#8203;8111](https://github.com/astral-sh/ruff/pull/8111))

###
[`v0.1.1`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#011)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.1.0...v0.1.1)

##### Rule changes

- Add unsafe fix for `escape-sequence-in-docstring` (`D301`)
([#&#8203;7970](https://github.com/astral-sh/ruff/pull/7970))

##### Configuration

- Respect `#(deprecated)` attribute in configuration options
([#&#8203;8035](https://github.com/astral-sh/ruff/pull/8035))
- Add `[format|lint].exclude` options
([#&#8203;8000](https://github.com/astral-sh/ruff/pull/8000))
- Respect `tab-size` setting in formatter
([#&#8203;8006](https://github.com/astral-sh/ruff/pull/8006))
- Add `lint.preview`
([#&#8203;8002](https://github.com/astral-sh/ruff/pull/8002))

##### Preview features

- \[`pylint`] Implement `literal-membership` (`PLR6201`)
([#&#8203;7973](https://github.com/astral-sh/ruff/pull/7973))
- \[`pylint`] Implement `too-many-boolean-expressions` (`PLR0916`)
([#&#8203;7975](https://github.com/astral-sh/ruff/pull/7975))
- \[`pylint`] Implement `misplaced-bare-raise` (`E0704`)
([#&#8203;7961](https://github.com/astral-sh/ruff/pull/7961))
- \[`pylint`] Implement `global-at-module-level` (`W0604`)
([#&#8203;8058](https://github.com/astral-sh/ruff/pull/8058))
- \[`pylint`] Implement `unspecified-encoding` (`PLW1514`)
([#&#8203;7939](https://github.com/astral-sh/ruff/pull/7939))
- Add fix for `triple-single-quotes` (`D300`)
([#&#8203;7967](https://github.com/astral-sh/ruff/pull/7967))

##### Formatter

- New code style badge for `ruff format`
([#&#8203;7878](https://github.com/astral-sh/ruff/pull/7878))
- Fix comments outside expression parentheses
([#&#8203;7873](https://github.com/astral-sh/ruff/pull/7873))
- Add `--target-version` to `ruff format`
([#&#8203;8055](https://github.com/astral-sh/ruff/pull/8055))
- Skip over parentheses when detecting `in` keyword
([#&#8203;8054](https://github.com/astral-sh/ruff/pull/8054))
- Add `--diff` option to `ruff format`
([#&#8203;7937](https://github.com/astral-sh/ruff/pull/7937))
- Insert newline after nested function or class statements
([#&#8203;7946](https://github.com/astral-sh/ruff/pull/7946))
- Use `pass` over ellipsis in non-function/class contexts
([#&#8203;8049](https://github.com/astral-sh/ruff/pull/8049))

##### Bug fixes

- Lazily evaluate all PEP 695 type alias values
([#&#8203;8033](https://github.com/astral-sh/ruff/pull/8033))
- Avoid failed assertion when showing fixes from stdin
([#&#8203;8029](https://github.com/astral-sh/ruff/pull/8029))
- Avoid flagging HTTP and HTTPS literals in urllib-open
([#&#8203;8046](https://github.com/astral-sh/ruff/pull/8046))
- Avoid flagging `bad-dunder-method-name` for `_`
([#&#8203;8015](https://github.com/astral-sh/ruff/pull/8015))
- Remove Python 2-only methods from `URLOpen` audit
([#&#8203;8047](https://github.com/astral-sh/ruff/pull/8047))
- Use set bracket replacement for `iteration-over-set` to preserve
whitespace and comments
([#&#8203;8001](https://github.com/astral-sh/ruff/pull/8001))

##### Documentation

- Update tutorial to match revised Ruff defaults
([#&#8203;8066](https://github.com/astral-sh/ruff/pull/8066))
- Update rule `B005` docs
([#&#8203;8028](https://github.com/astral-sh/ruff/pull/8028))
- Update GitHub actions example in docs to use `--output-format`
([#&#8203;8014](https://github.com/astral-sh/ruff/pull/8014))
- Document `lint.preview` and `format.preview`
([#&#8203;8032](https://github.com/astral-sh/ruff/pull/8032))
- Clarify that new rules should be added to `RuleGroup::Preview`.
([#&#8203;7989](https://github.com/astral-sh/ruff/pull/7989))

###
[`v0.1.0`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#010)

[Compare
Source](https://github.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://github.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
([#&#8203;7769](https://github.com/astral-sh/ruff/pull/7769))
- Drop formatting specific rules from the default set
([#&#8203;7900](https://github.com/astral-sh/ruff/pull/7900))
- The deprecated `format` setting has been removed
([#&#8203;7984](https://github.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
([#&#8203;7768](https://github.com/astral-sh/ruff/pull/7768))
- Improve cases covered by `RUF015`
([#&#8203;7848](https://github.com/astral-sh/ruff/pull/7848))
- Update `SIM15` to allow `open` followed by `close`
([#&#8203;7916](https://github.com/astral-sh/ruff/pull/7916))
- Respect `msgspec.Struct` default-copy semantics in `RUF012`
([#&#8203;7786](https://github.com/astral-sh/ruff/pull/7786))
- Add `sqlalchemy` methods to \`flake8-boolean-trap\`\` exclusion list
([#&#8203;7874](https://github.com/astral-sh/ruff/pull/7874))
- Add fix for `PLR1714`
([#&#8203;7910](https://github.com/astral-sh/ruff/pull/7910))
- Add fix for `PIE804`
([#&#8203;7884](https://github.com/astral-sh/ruff/pull/7884))
- Add fix for `PLC0208`
([#&#8203;7887](https://github.com/astral-sh/ruff/pull/7887))
- Add fix for `PYI055`
([#&#8203;7886](https://github.com/astral-sh/ruff/pull/7886))
- Update `non-pep695-type-alias` to require `--unsafe-fixes` outside of
stub files
([#&#8203;7836](https://github.com/astral-sh/ruff/pull/7836))
- Improve fix message for `UP018`
([#&#8203;7913](https://github.com/astral-sh/ruff/pull/7913))
- Update `PLW3201` to support `Enum` [sunder
names](https://docs.python.org/3/library/enum.html#supported-sunder-names)
([#&#8203;7987](https://github.com/astral-sh/ruff/pull/7987))

##### Preview features

- Only show warnings for empty preview selectors when enabling rules
([#&#8203;7842](https://github.com/astral-sh/ruff/pull/7842))
- Add `unnecessary-key-check` to simplify `key in dct and dct[key]` to
`dct.get(key)`
([#&#8203;7895](https://github.com/astral-sh/ruff/pull/7895))
- Add `assignment-in-assert` to prevent walrus expressions in assert
statements
([#&#8203;7856](https://github.com/astral-sh/ruff/pull/7856))
- \[`refurb`] Add `single-item-membership-test` (`FURB171`)
([#&#8203;7815](https://github.com/astral-sh/ruff/pull/7815))
- \[`pylint`] Add `and-or-ternary` (`R1706`)
([#&#8203;7811](https://github.com/astral-sh/ruff/pull/7811))

*New rules are added in
[preview](https://docs.astral.sh/ruff/preview/).*

##### Configuration

- Add `unsafe-fixes` setting
([#&#8203;7769](https://github.com/astral-sh/ruff/pull/7769))
- Add `extend-safe-fixes` and `extend-unsafe-fixes` for promoting and
demoting fixes
([#&#8203;7841](https://github.com/astral-sh/ruff/pull/7841))

##### CLI

- Added `--unsafe-fixes` option for opt-in to display and apply unsafe
fixes ([#&#8203;7769](https://github.com/astral-sh/ruff/pull/7769))
- Fix use of deprecated `--format` option in warning
([#&#8203;7837](https://github.com/astral-sh/ruff/pull/7837))
- Show changed files when running under `--check`
([#&#8203;7788](https://github.com/astral-sh/ruff/pull/7788))
- Write summary messages to stderr when fixing via stdin instead of
omitting them
([#&#8203;7838](https://github.com/astral-sh/ruff/pull/7838))
- Update fix summary message in `check --diff` to include unsafe fix
hints ([#&#8203;7790](https://github.com/astral-sh/ruff/pull/7790))
- Add notebook `cell` field to JSON output format
([#&#8203;7664](https://github.com/astral-sh/ruff/pull/7664))
- Rename applicability levels to `Safe`, `Unsafe`, and `Display`
([#&#8203;7843](https://github.com/astral-sh/ruff/pull/7843))

##### Bug fixes

- Fix bug where f-strings were allowed in match pattern literal
([#&#8203;7857](https://github.com/astral-sh/ruff/pull/7857))
- Fix `SIM110` with a yield in the condition
([#&#8203;7801](https://github.com/astral-sh/ruff/pull/7801))
- Preserve trailing comments in `C414` fixes
([#&#8203;7775](https://github.com/astral-sh/ruff/pull/7775))
- Check sequence type before triggering `unnecessary-enumerate` `len`
suggestion
([#&#8203;7781](https://github.com/astral-sh/ruff/pull/7781))
- Use correct start location for class/function clause header
([#&#8203;7802](https://github.com/astral-sh/ruff/pull/7802))
- Fix incorrect fixes for `SIM101`
([#&#8203;7798](https://github.com/astral-sh/ruff/pull/7798))
- Format comment before parameter default correctly
([#&#8203;7870](https://github.com/astral-sh/ruff/pull/7870))
- Fix `E251` false positive inside f-strings
([#&#8203;7894](https://github.com/astral-sh/ruff/pull/7894))
- Allow bindings to be created and referenced within annotations
([#&#8203;7885](https://github.com/astral-sh/ruff/pull/7885))
- Show per-cell diffs when analyzing notebooks over `stdin`
([#&#8203;7789](https://github.com/astral-sh/ruff/pull/7789))
- Avoid curly brace escape in f-string format spec
([#&#8203;7780](https://github.com/astral-sh/ruff/pull/7780))
- Fix lexing single-quoted f-string with multi-line format spec
([#&#8203;7787](https://github.com/astral-sh/ruff/pull/7787))
- Consider nursery rules to be in-preview for `ruff rule`
([#&#8203;7812](https://github.com/astral-sh/ruff/pull/7812))
- Report precise location for invalid conversion flag
([#&#8203;7809](https://github.com/astral-sh/ruff/pull/7809))
- Visit pattern match guard as a boolean test
([#&#8203;7911](https://github.com/astral-sh/ruff/pull/7911))
- Respect `--unfixable` in `ISC` rules
([#&#8203;7917](https://github.com/astral-sh/ruff/pull/7917))
- Fix edge case with `PIE804`
([#&#8203;7922](https://github.com/astral-sh/ruff/pull/7922))
- Show custom message in `PTH118` for `Path.joinpath` with starred
arguments
([#&#8203;7852](https://github.com/astral-sh/ruff/pull/7852))
- Fix false negative in `outdated-version-block` when using greater than
comparisons
([#&#8203;7920](https://github.com/astral-sh/ruff/pull/7920))
- Avoid converting f-strings within Django `gettext` calls
([#&#8203;7898](https://github.com/astral-sh/ruff/pull/7898))
- Fix false positive in `PLR6301`
([#&#8203;7933](https://github.com/astral-sh/ruff/pull/7933))
- Treat type aliases as typing-only expressions e.g. resolves false
positive in `TCH004`
([#&#8203;7968](https://github.com/astral-sh/ruff/pull/7968))
- Resolve `cache-dir` relative to project root
([#&#8203;7962](https://github.com/astral-sh/ruff/pull/7962))
- Respect subscripted base classes in type-checking rules e.g. resolves
false positive in `TCH003`
([#&#8203;7954](https://github.com/astral-sh/ruff/pull/7954))
- Fix JSON schema limit for `line-length`
([#&#8203;7883](https://github.com/astral-sh/ruff/pull/7883))
- Fix commented-out `coalesce` keyword
([#&#8203;7876](https://github.com/astral-sh/ruff/pull/7876))

##### Documentation

- Document `reimplemented-starmap` performance effects
([#&#8203;7846](https://github.com/astral-sh/ruff/pull/7846))
- Default to following the system dark/light mode
([#&#8203;7888](https://github.com/astral-sh/ruff/pull/7888))
- Add documentation for fixes
([#&#8203;7901](https://github.com/astral-sh/ruff/pull/7901))
- Fix typo in docs of `PLR6301`
([#&#8203;7831](https://github.com/astral-sh/ruff/pull/7831))
- Update `UP038` docs to note that it results in slower code
([#&#8203;7872](https://github.com/astral-sh/ruff/pull/7872))
- crlf -> cr-lf
([#&#8203;7766](https://github.com/astral-sh/ruff/pull/7766))
- Add an example of an unsafe fix
([#&#8203;7924](https://github.com/astral-sh/ruff/pull/7924))
- Fix documented examples for `unnecessary-subscript-reversal`
([#&#8203;7774](https://github.com/astral-sh/ruff/pull/7774))
- Correct error in tuple example in ruff formatter docs
([#&#8203;7822](https://github.com/astral-sh/ruff/pull/7822))
- Add versioning policy to documentation
([#&#8203;7923](https://github.com/astral-sh/ruff/pull/7923))
- Fix invalid code in `FURB177` example
([#&#8203;7832](https://github.com/astral-sh/ruff/pull/7832))

##### Formatter

- Less scary `ruff format` message
([#&#8203;7867](https://github.com/astral-sh/ruff/pull/7867))
- Remove spaces from import statements
([#&#8203;7859](https://github.com/astral-sh/ruff/pull/7859))
- Formatter quoting for f-strings with triple quotes
([#&#8203;7826](https://github.com/astral-sh/ruff/pull/7826))
- Update `ruff_python_formatter` generate.py comment
([#&#8203;7850](https://github.com/astral-sh/ruff/pull/7850))
- Document one-call chaining deviation
([#&#8203;7767](https://github.com/astral-sh/ruff/pull/7767))
- Allow f-string modifications in line-shrinking cases
([#&#8203;7818](https://github.com/astral-sh/ruff/pull/7818))
- Add trailing comment deviation to README
([#&#8203;7827](https://github.com/astral-sh/ruff/pull/7827))
- Add trailing zero between dot and exponential
([#&#8203;7956](https://github.com/astral-sh/ruff/pull/7956))
- Force parentheses for power operations in unary expressions
([#&#8203;7955](https://github.com/astral-sh/ruff/pull/7955))

##### Playground

- Fix playground `Quick Fix` action
([#&#8203;7824](https://github.com/astral-sh/ruff/pull/7824))

###
[`v0.0.292`](https://github.com/astral-sh/ruff/releases/tag/v0.0.292)

[Compare
Source](https://github.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 [@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/7376](https://github.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://github.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://github.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
[@&#8203;tjkuson](https://github.com/tjkuson) in
[https://github.com/astral-sh/ruff/pull/7617](https://github.com/astral-sh/ruff/pull/7617)
- \[`flake8-bandit`] Implement `weak-cryptographic-key` (`S505`) by
[@&#8203;mkniewallner](https://github.com/mkniewallner) in
[https://github.com/astral-sh/ruff/pull/7703](https://github.com/astral-sh/ruff/pull/7703)
- \[`refurb`] Implement `implicit-cwd` (`FURB177`) by
[@&#8203;danparizher](https://github.com/danparizher) in
[https://github.com/astral-sh/ruff/pull/7704](https://github.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://github.com/astral-sh/ruff/pull/7697)).

##### Settings

- Add `lint` section to Ruff configuration by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/astral-sh/ruff/pull/7549](https://github.com/astral-sh/ruff/pull/7549)
- Add `explicit-preview-rules` to toggle explicit selection of preview
rules by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/7390](https://github.com/astral-sh/ruff/pull/7390)
- Decrease PEP 593 error to a debug warning by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7745](https://github.com/astral-sh/ruff/pull/7745)
- Write full Jupyter notebook to `stdout` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7748](https://github.com/astral-sh/ruff/pull/7748)
- Extend `unnecessary-pass` (`PIE790`) to trigger on all unnecessary
`pass` statements by [@&#8203;tjkuson](https://github.com/tjkuson) in
[https://github.com/astral-sh/ruff/pull/7697](https://github.com/astral-sh/ruff/pull/7697)

##### Bug Fixes

- Ignore blank lines between comments when counting
newlines-after-imports by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7607](https://github.com/astral-sh/ruff/pull/7607)
- Avoid reordering mixed-indent-level comments after branches by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7609](https://github.com/astral-sh/ruff/pull/7609)
- Avoid flagging B009 and B010 on starred expressions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7621](https://github.com/astral-sh/ruff/pull/7621)
- Use deletion for D215 full-line removals by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7625](https://github.com/astral-sh/ruff/pull/7625)
- Avoid searching for bracketed comments in unparenthesized generators
by [@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7627](https://github.com/astral-sh/ruff/pull/7627)
- Update return type for `PT022` autofix by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/7613](https://github.com/astral-sh/ruff/pull/7613)
- Flag FURB105 with starred kwargs by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7630](https://github.com/astral-sh/ruff/pull/7630)
- Don't suggest replacing `builtin.open()` with `Path.open()` if the
latter doesn't support all options by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/7637](https://github.com/astral-sh/ruff/pull/7637)
- Use 1-based cell indices consistently for Notebooks by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/7662](https://github.com/astral-sh/ruff/pull/7662)
- Add `Expr::Name` checks to rules which use `is_logger_candidate` by
[@&#8203;qdegraaf](https://github.com/qdegraaf) in
[https://github.com/astral-sh/ruff/pull/7521](https://github.com/astral-sh/ruff/pull/7521)
- Ensure that B006 autofixes are inserted after imports by
[@&#8203;Hoxbro](https://github.com/Hoxbro) in
[https://github.com/astral-sh/ruff/pull/7629](https://github.com/astral-sh/ruff/pull/7629)
- Allow named expressions in `__all__` assignments by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7673](https://github.com/astral-sh/ruff/pull/7673)
- Include radix base prefix in large number representation by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7700](https://github.com/astral-sh/ruff/pull/7700)
- Parenthesize multi-line attributes in B009 by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7701](https://github.com/astral-sh/ruff/pull/7701)
- Insert necessary padding in B014 fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7699](https://github.com/astral-sh/ruff/pull/7699)
- fix(rules): improve S507 detection by
[@&#8203;mkniewallner](https://github.com/mkniewallner) in
[https://github.com/astral-sh/ruff/pull/7661](https://github.com/astral-sh/ruff/pull/7661)
- Ignore TODO tags in `commented-out-code` by
[@&#8203;tjkuson](https://github.com/tjkuson) in
[https://github.com/astral-sh/ruff/pull/7523](https://github.com/astral-sh/ruff/pull/7523)
- Track fix isolation in `unnecessary-pass` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7715](https://github.com/astral-sh/ruff/pull/7715)
- Use fixed source code for parser context by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7717](https://github.com/astral-sh/ruff/pull/7717)
- Preserve parentheses in `quadratic-list-summation` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7719](https://github.com/astral-sh/ruff/pull/7719)
- Compute `NotebookIndex` for `Diagnostics` on stdin by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/7663](https://github.com/astral-sh/ruff/pull/7663)
- Perform insertions before replacements by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7739](https://github.com/astral-sh/ruff/pull/7739)
- Skip all bracketed expressions when locating comparison ops by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7740](https://github.com/astral-sh/ruff/pull/7740)
- Fix PLE251 rules with f-string escaping by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/7741](https://github.com/astral-sh/ruff/pull/7741)
- Skip BOM when inserting start-of-file imports by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7622](https://github.com/astral-sh/ruff/pull/7622)
- Emit `LexError` for dedent to incorrect level by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/astral-sh/ruff/pull/7638](https://github.com/astral-sh/ruff/pull/7638)
- Expand `DeprecatedLogWarn` to check for `Expr::Atrribute` calls by
[@&#8203;qdegraaf](https://github.com/qdegraaf) in
[https://github.com/astral-sh/ruff/pull/7677](https://github.com/astral-sh/ruff/pull/7677)


</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/Hapag-Lloyd/dist-comm-vis).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  • Loading branch information
renovate[bot] authored Dec 7, 2023
1 parent 25eebee commit fea890c
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
@@ -27,7 +27,7 @@ install_requires =

[options.extras_require]
pipeline =
ruff==0.0.263
ruff==0.1.7

test =
pytest==7.4.3

0 comments on commit fea890c

Please sign in to comment.