Update dependency ruff to v0.2.2 - autoclosed #5

Closed
renovate-bot wants to merge 1 commits from renovate/ruff-0.x into main
Collaborator

This PR contains the following updates:

Package Type Update Change
ruff (source, changelog) tool.hatch.envs.lint minor ==0.1.7 -> ==0.2.2

Release Notes

astral-sh/ruff (ruff)

v0.2.2

Compare Source

Highlights include:

  • Initial support formatting f-strings (in --preview).
  • Support for overriding arbitrary configuration options via the CLI through an expanded --config
    argument (e.g., --config "lint.isort.combine-as-imports=false").
  • Significant performance improvements in Ruff's lexer, parser, and lint rules.
Preview features
  • Implement minimal f-string formatting (#​9642)
  • `pycodestyle`] Add blank line(s) rules (`E301`, `E302`, `E303`, `E304`, `E305`, `E306`) ([#​9266](https://github.com/astral-sh/ruff/pull/9266))
    
  • `refurb`] Implement `readlines_in_for` (`FURB129`) ([#​9880](https://github.com/astral-sh/ruff/pull/9880))
    
    
Rule changes
  • `ruff`] Ensure closing parentheses for multiline sequences are always on their own line (`RUF022`, `RUF023`) ([#​9793](https://github.com/astral-sh/ruff/pull/9793))
    
  • `numpy`] Add missing deprecation violations (`NPY002`) ([#​9862](https://github.com/astral-sh/ruff/pull/9862))
    
  • `flake8-bandit`] Detect `mark_safe` usages in decorators ([#​9887](https://github.com/astral-sh/ruff/pull/9887))
    
  • `ruff`] Expand `asyncio-dangling-task` (`RUF006`) to include `new_event_loop` ([#​9976](https://github.com/astral-sh/ruff/pull/9976))
    
  • `flake8-pyi`] Ignore 'unused' private type dicts in class scopes ([#​9952](https://github.com/astral-sh/ruff/pull/9952))
    
    
Formatter
  • Docstring formatting: Preserve tab indentation when using indent-style=tabs (#​9915)
  • Disable top-level docstring formatting for notebooks (#​9957)
  • Stabilize quote-style's preserve mode (#​9922)
CLI
  • Allow arbitrary configuration options to be overridden via the CLI (#​9599)
Bug fixes
  • Make show-settings filters directory-agnostic (#​9866)
  • Respect duplicates when rewriting type aliases (#​9905)
  • Respect tuple assignments in typing analyzer (#​9969)
  • Use atomic write when persisting cache (#​9981)
  • Use non-parenthesized range for DebugText (#​9953)
  • `flake8-simplify`] Avoid false positive with `async` for loops (`SIM113`) ([#​9996](https://github.com/astral-sh/ruff/pull/9996))
    
  • `flake8-trio`] Respect `async with` in `timeout-without-await` ([#​9859](https://github.com/astral-sh/ruff/pull/9859))
    
  • `perflint`] Catch a wider range of mutations in `PERF101` ([#​9955](https://github.com/astral-sh/ruff/pull/9955))
    
  • `pycodestyle`] Fix `E30X` panics on blank lines with trailing white spaces ([#​9907](https://github.com/astral-sh/ruff/pull/9907))
    
  • `pydocstyle`] Allow using `parameters` as a subsection header (`D405`) ([#​9894](https://github.com/astral-sh/ruff/pull/9894))
    
  • `pydocstyle`] Fix blank-line docstring rules for module-level docstrings ([#​9878](https://github.com/astral-sh/ruff/pull/9878))
    
  • `pylint`] Accept 0.0 and 1.0 as common magic values (`PLR2004`) ([#​9964](https://github.com/astral-sh/ruff/pull/9964))
    
  • `pylint`] Avoid suggesting set rewrites for non-hashable types ([#​9956](https://github.com/astral-sh/ruff/pull/9956))
    
  • `ruff`] Avoid false negatives with string literals inside of method calls (`RUF027`) ([#​9865](https://github.com/astral-sh/ruff/pull/9865))
    
  • `ruff`] Fix panic on with f-string detection (`RUF027`) ([#​9990](https://github.com/astral-sh/ruff/pull/9990))
    
  • `ruff`] Ignore builtins when detecting missing f-strings ([#​9849](https://github.com/astral-sh/ruff/pull/9849))
    
    
Performance
  • Use memchr for string lexing (#​9888)
  • Use memchr for tab-indentation detection (#​9853)
  • Reduce Result<Tok, LexicalError> size by using Box<str> instead of String (#​9885)
  • Reduce size of Expr from 80 to 64 bytes (#​9900)
  • Improve trailing comma rule performance (#​9867)
  • Remove unnecessary string cloning from the parser (#​9884)

v0.2.1

Compare Source

This release includes support for range formatting (i.e., the ability to format specific lines
within a source file).

Preview features
  • `refurb`] Implement `missing-f-string-syntax` (`RUF027`) ([#&#8203;9728](https://github.com/astral-sh/ruff/pull/9728))
    
  • Format module-level docstrings (#​9725)
Formatter
  • Add --range option to ruff format (#​9733)
  • Don't trim last empty line in docstrings (#​9813)
Bug fixes
  • Skip empty lines when determining base indentation (#​9795)
  • Drop __get__ and __set__ from unnecessary-dunder-call (#​9791)
  • Respect generic Protocol in ellipsis removal (#​9841)
  • Revert "Use publicly available Apple Silicon runners (#​9726)" (#​9834)
Performance
  • Skip LibCST parsing for standard dedent adjustments (#​9769)
  • Remove CST-based fixer for C408 (#​9822)
  • Add our own ignored-names abstractions (#​9802)
  • Remove CST-based fixers for C400, C401, C410, and C418 (#​9819)
  • Use AhoCorasick to speed up quote match (#​9773)
  • Remove CST-based fixers for C405 and C409 (#​9821)
  • Add fast-path for comment detection (#​9808)
  • Invert order of checks in zero-sleep-call (#​9766)
  • Short-circuit typing matches based on imports (#​9800)
  • Run dunder method rule on methods directly (#​9815)
  • Track top-level module imports in the semantic model (#​9775)
  • Slight speed-up for lowercase and uppercase identifier checks (#​9798)
  • Remove LibCST-based fixer for C403 (#​9818)
Documentation
  • Update max-pos-args example to max-positional-args (#​9797)
  • Fixed example code in weak_cryptographic_key.rs (#​9774)
  • Fix references to deprecated ANN rules in changelog (#​9771)
  • Fix default for max-positional-args (#​9838)

v0.2.0

Compare Source

Breaking changes
  • The NURSERY selector cannot be used anymore
  • Legacy selection of nursery rules by exact codes is no longer allowed without preview enabled

See also, the "Remapped rules" section which may result in disabled rules.

Deprecations

The following rules are now deprecated:

The following command line options are now deprecated:

  • --show-source; use --output-format full instead
  • --no-show-source; use --output-format concise instead
  • --output-format text; use full or concise instead

The following settings have moved and the previous name is deprecated:

Remapped rules

The following rules have been remapped to new codes:

Stabilizations

The following rules have been stabilized and are no longer in preview:

Fixes for the following rules have been stabilized and are now available without preview:

Fixes for the following rules have been promoted from unsafe to safe:

The following behaviors have been stabilized:

Preview features
  • `refurb`] Implement `metaclass_abcmeta` (`FURB180`) ([#&#8203;9658](https://github.com/astral-sh/ruff/pull/9658))
    
  • Implement blank_line_after_nested_stub_class preview style (#​9155)
  • The preview rule and-or-ternary (PLR1706) was removed
Bug fixes
  • `flake8-async`] Take `pathlib.Path` into account when analyzing async functions ([#&#8203;9703](https://github.com/astral-sh/ruff/pull/9703))
    
  • `flake8-return`] - fix indentation syntax error (`RET505`) ([#&#8203;9705](https://github.com/astral-sh/ruff/pull/9705))
    
  • Detect multi-statement lines in else removal (#​9748)
  • RUF022, RUF023: never add two trailing commas to the end of a sequence (#​9698)
  • RUF023: Don't sort __match_args__, only __slots__ (#​9724)
  • `flake8-simplify`] - Fix syntax error in autofix (`SIM114`) ([#&#8203;9704](https://github.com/astral-sh/ruff/pull/9704))
    
  • `pylint`] Show verbatim constant in `magic-value-comparison` (`PLR2004`) ([#&#8203;9694](https://github.com/astral-sh/ruff/pull/9694))
    
  • Removing trailing whitespace inside multiline strings is unsafe (#​9744)
  • Support IfExp with dual string arms in invalid-envvar-default (#​9734)
  • `pylint`] Add `__mro_entries__` to known dunder methods (`PLW3201`) ([#&#8203;9706](https://github.com/astral-sh/ruff/pull/9706))
    
    
Documentation
  • Removed rules are now retained in the documentation (#​9691)
  • Deprecated rules are now indicated in the documentation (#​9689)

v0.1.15

Compare Source

Preview features
  • Error when NURSERY selector is used with --preview (#​9682)
  • Preserve indentation around multiline strings in formatter (#​9637)
  • `flake8-return`] Add fixes for all rules (`RET505`, `RET506`, `RET507`, `RET508`) ([#&#8203;9595](https://github.com/astral-sh/ruff/pull/9595))
    
  • `flake8-simplify`] Add fix for `if-with-same-arms` (`SIM114`) ([#&#8203;9591](https://github.com/astral-sh/ruff/pull/9591))
    
  • `pycodestyle`] Add fix for `multiple-imports-on-one-line` (`E401`) ([#&#8203;9518](https://github.com/astral-sh/ruff/pull/9518))
    
  • `pylint`] Add fix for `collapsible-else-if` (`PLR5501`) ([#&#8203;9594](https://github.com/astral-sh/ruff/pull/9594))
    
  • `pylint`] Add fix for `useless-else-on-loop` (`PLW0120`) ([#&#8203;9590](https://github.com/astral-sh/ruff/pull/9590))
    
  • `pylint`] Implement `assigning-non-slot` (`E0237`) ([#&#8203;9623](https://github.com/astral-sh/ruff/pull/9623))
    
  • `pylint`] Implement `potential-index-error` (`PLE0643`) ([#&#8203;9545](https://github.com/astral-sh/ruff/pull/9545))
    
  • `pylint`] Implement `too-many-nested-blocks` (`PLR1702`) ([#&#8203;9172](https://github.com/astral-sh/ruff/pull/9172))
    
  • `ruff`] Add rule to sort `__slots__` and `__match_args__` ([#&#8203;9564](https://github.com/astral-sh/ruff/pull/9564))
    
  • `ruff`] Detect unnecessary `dict` comprehensions for iterables (`RUF025`) ([#&#8203;9613](https://github.com/astral-sh/ruff/pull/9613))
    
  • `ruff`] Guard against use of `default_factory` as a keyword argument (`RUF026`) ([#&#8203;9651](https://github.com/astral-sh/ruff/pull/9651))
    
  • `ruff`] Implement `mutable-fromkeys-value` (`RUF024`) ([#&#8203;9597](https://github.com/astral-sh/ruff/pull/9597))
    
    
CLI
  • Enable auto-wrapping of --help output (#​9633)
Bug fixes
  • Avoid rendering display-only rules as fixable (#​9649)
  • Detect automagic-like assignments in notebooks (#​9653)
  • Generate custom JSON schema for dynamic setting (#​9632)
  • `flake8-no-pep420`] Include global `--config` when determining namespace packages ([#&#8203;9603](https://github.com/astral-sh/ruff/pull/9603))
    
  • `flake8-pie`] Omit bound tuples passed to `.startswith` or `.endswith` ([#&#8203;9661](https://github.com/astral-sh/ruff/pull/9661))
    
  • `flake8-return`] Avoid panic when fixing inlined else blocks ([#&#8203;9657](https://github.com/astral-sh/ruff/pull/9657))
    
  • `flake8-return`] Consider exception suppression in unnecessary assignment ([#&#8203;9673](https://github.com/astral-sh/ruff/pull/9673))
    
  • `flake8-return`] Take `NoReturn` annotation into account when analyzing implicit returns ([#&#8203;9636](https://github.com/astral-sh/ruff/pull/9636))
    
  • `flake8-simplify`] Support inverted returns in `needless-bool` (`SIM103`) ([#&#8203;9619](https://github.com/astral-sh/ruff/pull/9619))
    
  • `flake8-type-checking`] Add Pydantic's `BaseConfig` to default-copy list ([#&#8203;9650](https://github.com/astral-sh/ruff/pull/9650))
    
  • `flake8-type-checking`] Avoid marking `InitVar` as a typing-only annotation ([#&#8203;9688](https://github.com/astral-sh/ruff/pull/9688))
    
  • `pycodestyle`] Allow `dtype` comparisons in `type-comparison` ([#&#8203;9676](https://github.com/astral-sh/ruff/pull/9676))
    
  • `pydocstyle`] Re-implement `last-line-after-section` (`D413`) ([#&#8203;9654](https://github.com/astral-sh/ruff/pull/9654))
    
    
Documentation
  • `flake8-pytest-style`] Add fix safety documentation for `duplicate-parameterize-test-cases` ([#&#8203;9678](https://github.com/astral-sh/ruff/pull/9678))
    
  • `pylint`] Document `literal-membership` fix safety conditions ([#&#8203;9677](https://github.com/astral-sh/ruff/pull/9677))
    
  • `isort`] Fix reference to `isort` rule code ([#&#8203;9598](https://github.com/astral-sh/ruff/pull/9598))
    
    

v0.1.14

Compare Source

Preview features
  • `flake8-bugbear`] Add fix for `duplicate-value` (`B033`) ([#&#8203;9510](https://github.com/astral-sh/ruff/pull/9510))
    
  • `flake8-simplify`] Implement `enumerate-for-loop` (`SIM113`) ([#&#8203;7777](https://github.com/astral-sh/ruff/pull/7777))
    
  • `pygrep_hooks`] Add fix for `deprecated-log-warn` (`PGH002`) ([#&#8203;9519](https://github.com/astral-sh/ruff/pull/9519))
    
  • `pylint`] Implement `import-private-name` (`C2701`) ([#&#8203;5920](https://github.com/astral-sh/ruff/pull/5920))
    
  • `refurb`] Implement `regex-flag-alias` with fix (`FURB167`) ([#&#8203;9516](https://github.com/astral-sh/ruff/pull/9516))
    
  • `ruff`] Add rule and fix to sort contents of `__all__` (`RUF022`) ([#&#8203;9474](https://github.com/astral-sh/ruff/pull/9474))
    
  • `tryceratops`] Add fix for `error-instead-of-exception` (`TRY400`) ([#&#8203;9520](https://github.com/astral-sh/ruff/pull/9520))
    
    
Rule changes
  • `flake8-pyi`] Fix `PYI047` false negatives on PEP-695 type aliases ([#&#8203;9566](https://github.com/astral-sh/ruff/pull/9566))
    
  • `flake8-pyi`] Fix `PYI049` false negatives on call-based `TypedDict`s ([#&#8203;9567](https://github.com/astral-sh/ruff/pull/9567))
    
  • `pylint`] Exclude `self` and `cls` when counting method arguments (`PLR0917`) ([#&#8203;9563](https://github.com/astral-sh/ruff/pull/9563))
    
    
CLI
  • --show-settings displays active settings in a far more readable format (#​9464)
  • Add --extension support to the formatter (#​9483)
Configuration
  • Ignore preview status for fixable and unfixable selectors (#​9538)
  • `pycodestyle`] Use the configured tab size when expanding indents ([#&#8203;9506](https://github.com/astral-sh/ruff/pull/9506))
    
    
Bug fixes
  • Recursively visit deferred AST nodes (#​9541)
  • Visit deferred lambdas before type definitions (#​9540)
  • `flake8-simplify`] Avoid some more `enumerate-for-loop` false positives (`SIM113`) ([#&#8203;9515](https://github.com/astral-sh/ruff/pull/9515))
    
  • `pandas-vet`] Limit inplace diagnostics to methods that accept inplace ([#&#8203;9495](https://github.com/astral-sh/ruff/pull/9495))
    
  • `pylint`] Add the `__prepare__` method to the list of recognized dunder method ([#&#8203;9529](https://github.com/astral-sh/ruff/pull/9529))
    
  • `pylint`] Ignore unnecessary dunder calls within dunder definitions ([#&#8203;9496](https://github.com/astral-sh/ruff/pull/9496))
    
  • `refurb`] Avoid bailing when `reimplemented-operator` is called on function (`FURB118`) ([#&#8203;9556](https://github.com/astral-sh/ruff/pull/9556))
    
  • `ruff`] Avoid treating named expressions as static keys (`RUF011`) ([#&#8203;9494](https://github.com/astral-sh/ruff/pull/9494))
    
    
Documentation
  • Add instructions on using noqa with isort rules (#​9555)
  • Documentation update for URL giving 'page not found' (#​9565)
  • Fix admonition in dark mode (#​9502)
  • Update contributing docs to use cargo bench -p ruff_benchmark (#​9535)
  • Update emacs integration section to include emacs-ruff-format (#​9403)
  • `flake8-blind-except`] Document exceptions to `blind-except` rule ([#&#8203;9580](https://github.com/astral-sh/ruff/pull/9580))
    
    

v0.1.13

Compare Source

Bug fixes
  • Include base pyproject when initializing cache settings (#​9480)
  • `flake8-simplify`] Account for possibly-empty f-string values in truthiness logic ([#&#8203;9484](https://github.com/astral-sh/ruff/pull/9484))
    
  • `pylint`] Add the missing period in `unnecessary-dunder-call` ([#&#8203;9485](https://github.com/astral-sh/ruff/pull/9485))
    
  • `pylint`] Fix `__aenter__` message in `unnecessary-dunder-call` ([#&#8203;9492](https://github.com/astral-sh/ruff/pull/9492))
    
    

v0.1.12

Compare Source

Preview features
  • Formatter: Hug multiline-strings in preview style (#​9243)
  • `flake8-bandit`] Add `ssl-with-no-version` (`S504`) ([#&#8203;9384](https://github.com/astral-sh/ruff/pull/9384))
    
  • `flake8-bandit`] Implement `ssl-insecure-version` (`S502`) ([#&#8203;9390](https://github.com/astral-sh/ruff/pull/9390))
    
  • `flake8-bandit`] Implement `ssl-with-bad-defaults` (`S503`) ([#&#8203;9391](https://github.com/astral-sh/ruff/pull/9391))
    
  • `flake8-bandit`] Implement suspicious import rules (`S4XX`) ([#&#8203;8831](https://github.com/astral-sh/ruff/pull/8831))
    
  • `flake8-simplify`] Implement `zip-dict-keys-and-values` (`SIM911`) ([#&#8203;9460](https://github.com/astral-sh/ruff/pull/9460))
    
  • `pyflakes`] Add a fix for `redefined-while-unused` (`F811`) ([#&#8203;9419](https://github.com/astral-sh/ruff/pull/9419))
    
  • `pylint`] Implement `unnecessary-dunder-call` (`C2801`) ([#&#8203;9166](https://github.com/astral-sh/ruff/pull/9166))
    
  • `ruff`] Add `parenthesize-chained-operators` (`RUF021`) to enforce parentheses in `a or b and c` ([#&#8203;9440](https://github.com/astral-sh/ruff/pull/9440))
    
    
Rule changes
  • `flake8-boolean-trap`] Allow Boolean positional arguments in setters ([#&#8203;9429](https://github.com/astral-sh/ruff/pull/9429))
    
  • `flake8-builtins`] Restrict `builtin-attribute-shadowing` (`A003`) to actual shadowed references ([#&#8203;9462](https://github.com/astral-sh/ruff/pull/9462))
    
  • `flake8-pyi`] Add fix for `generator-return-from-iter-method` (`PYI058`) ([#&#8203;9355](https://github.com/astral-sh/ruff/pull/9355))
    
  • `pyflakes`] Don't flag `redefined-while-unused` (`F811`) in `if` branches ([#&#8203;9418](https://github.com/astral-sh/ruff/pull/9418))
    
  • `pyupgrade`] Add some additional Python 3.12 typing members to `deprecated-import` ([#&#8203;9445](https://github.com/astral-sh/ruff/pull/9445))
    
  • `ruff`] Add fix for `parenthesize-chained-operators` (`RUF021`) ([#&#8203;9449](https://github.com/astral-sh/ruff/pull/9449))
    
  • `ruff`] Include subscripts and attributes in static key rule (`RUF011`) ([#&#8203;9416](https://github.com/astral-sh/ruff/pull/9416))
    
  • `ruff`] Support variable keys in static dictionary key rule (`RUF011`) ([#&#8203;9411](https://github.com/astral-sh/ruff/pull/9411))
    
    
Formatter
  • Generate deterministic IDs when formatting notebooks (#​9359)
  • Allow # fmt: skip with interspersed same-line comments (#​9395)
  • Parenthesize breaking named expressions in match guards (#​9396)
Bug fixes
  • Add cell indexes to all diagnostics (#​9387)
  • Avoid infinite loop in constant vs. None comparisons (#​9376)
  • Handle raises with implicit alternate branches (#​9377)
  • Ignore trailing quotes for unclosed l-brace errors (#​9388)
  • Respect multi-segment submodule imports when resolving qualified names (#​9382)
  • Use DisplayParseError for stdin parser errors (#​9409)
  • Use comment_ranges for isort directive extraction (#​9414)
  • Use transformed source code for diagnostic locations (#​9408)
  • `flake8-pyi`] Exclude `warnings.deprecated` and `typing_extensions.deprecated` arguments ([#&#8203;9423](https://github.com/astral-sh/ruff/pull/9423))
    
  • `flake8-pyi`] Fix false negative for `unused-private-protocol` (`PYI046`) with unused generic protocols ([#&#8203;9405](https://github.com/astral-sh/ruff/pull/9405))
    
  • `pydocstyle`] Disambiguate argument descriptors from section headers ([#&#8203;9427](https://github.com/astral-sh/ruff/pull/9427))
    
  • `pylint`] Homogenize `PLR0914` message to match other `PLR09XX` rules ([#&#8203;9399](https://github.com/astral-sh/ruff/pull/9399))
    
  • `ruff`] Allow `Hashable = None` in type annotations (`RUF013`) ([#&#8203;9442](https://github.com/astral-sh/ruff/pull/9442))
    
    
Documentation
  • Fix admonition hyperlink colouring (#​9385)
  • Add missing preview link (#​9386)

v0.1.11

Compare Source

Preview features
  • `pylint`] Implement `super-without-brackets` (`W0245`) ([#&#8203;9257](https://github.com/astral-sh/ruff/pull/9257))
    
    
Bug fixes
  • Check path string properly in python -m ruff invocations (#​9367)
Documentation
  • Tweak relative-imports message (#​9365)
  • Add fix safety note for yield-in-for-loop (#​9364)

v0.1.10

Compare Source

Preview features
  • Improve dummy_implementations preview style formatting (#​9240)
  • Normalise Hex and unicode escape sequences in strings (#​9280)
  • Parenthesize long type annotations in annotated assignments (#​9210)
  • Parenthesize multi-context managers in with statements (#​9222)
  • `flake8-pyi`] Implement `generator-return-from-iter-method` (`PYI058`) ([#&#8203;9313](https://github.com/astral-sh/ruff/pull/9313))
    
  • `pylint`] Implement `empty-comment` (`PLR2044`) ([#&#8203;9174](https://github.com/astral-sh/ruff/pull/9174))
    
  • `refurb`] Implement `bit-count` (`FURB161`) ([#&#8203;9265](https://github.com/astral-sh/ruff/pull/9265))
    
  • `ruff`] Add `never-union` rule to detect redundant `typing.NoReturn` and `typing.Never` ([#&#8203;9217](https://github.com/astral-sh/ruff/pull/9217))
    
    
CLI
  • Add paths to TOML parse errors (#​9358)
  • Add row and column numbers to formatter parse errors (#​9321)
  • Improve responsiveness when invoked via Python (#​9315)
  • Short rule messages should not end with a period (#​9345)
Configuration
  • Respect runtime-required decorators on functions (#​9317)
Bug fixes
  • Avoid asyncio-dangling-task for nonlocal and global bindings (#​9263)
  • Escape trailing placeholders in rule documentation (#​9301)
  • Fix continuation detection following multi-line strings (#​9332)
  • Fix scoping for generators in named expressions in classes (#​9248)
  • Port from obsolete wsl crate to is-wsl (#​9356)
  • Remove special pre-visit for module docstrings (#​9261)
  • Respect __str__ definitions from super classes (#​9338)
  • Respect unused-noqa via per-file-ignores (#​9300)
  • Respect attribute chains when resolving builtin call paths (#​9309)
  • Treat all typing_extensions members as typing aliases (#​9335)
  • Use Display for formatter parse errors (#​9316)
  • Wrap subscripted dicts in parens for f-string conversion (#​9238)
  • `flake8-annotations`] Avoid adding return types to stub methods ([#&#8203;9277](https://github.com/astral-sh/ruff/pull/9277))
    
  • `flake8-annotations`] Respect mixed `return` and `raise` cases in return-type analysis ([#&#8203;9310](https://github.com/astral-sh/ruff/pull/9310))
    
  • `flake8-bandit`] Don't report violations when `SafeLoader` is imported from `yaml.loader` (`S506`) ([#&#8203;9299](https://github.com/astral-sh/ruff/pull/9299))
    
  • `pylint`] Avoid panic when comment is preceded by Unicode ([#&#8203;9331](https://github.com/astral-sh/ruff/pull/9331))
    
  • `pylint`] Change `PLR0917` error message to match other `PLR09XX` messages ([#&#8203;9308](https://github.com/astral-sh/ruff/pull/9308))
    
  • `refurb`] Avoid false positives for `math-constant` (`FURB152`) ([#&#8203;9290](https://github.com/astral-sh/ruff/pull/9290))
    
    
Documentation
  • Expand target name for better rule documentation (#​9302)
  • Fix typos found by codespell (#​9346)
  • `perflint`] Document `PERF102` fix un-safety ([#&#8203;9351](https://github.com/astral-sh/ruff/pull/9351))
    
  • `pyupgrade`] Document `UP007` fix un-safety ([#&#8203;9306](https://github.com/astral-sh/ruff/pull/9306))
    
    

v0.1.9

Compare Source

Breaking changes
  • Add site-packages to default exclusions (#​9188)
Preview features
  • Fix: Avoid parenthesizing subscript targets and values (#​9209)
  • `pylint`] Implement `too-many-locals` (`PLR0914`) ([#&#8203;9163](https://github.com/astral-sh/ruff/pull/9163))
    
  • Implement reimplemented_operator (FURB118) (#​9171)
  • Add a rule to detect string members in runtime-evaluated unions (#​9143)
  • Implement no_blank_line_before_class_docstring preview style (#​9154)
Rule changes
  • CONSTANT_CASE variables are improperly flagged for yoda violation (SIM300) (#​9164)
  • `flake8-pyi`] Cover ParamSpecs and TypeVarTuples (`PYI018`) ([#&#8203;9198](https://github.com/astral-sh/ruff/pull/9198))
    
  • `flake8-bugbear`] Add fix for `zip-without-explicit-strict` (`B905`) ([#&#8203;9176](https://github.com/astral-sh/ruff/pull/9176))
    
  • Add fix to automatically remove print and pprint statements (T201, T203) (#​9208)
  • Prefer Never to NoReturn in auto-typing in Python >= 3.11 (ANN201) (#​9213)
Formatter
  • can_omit_optional_parentheses: Exit early for unparenthesized expressions (#​9125)
  • Fix dynamic mode with doctests so that it doesn't exceed configured line width (#​9129)
  • Fix can_omit_optional_parentheses for expressions with a right most fstring (#​9124)
  • Add target_version to formatter options (#​9220)
CLI
  • Update ruff format --check to display message for already formatted files (#​9153)
Bug fixes
  • Reverse order of arguments for operator.contains (#​9192)
  • Iterate over lambdas in deferred type annotations (#​9175)
  • Fix panic in D208 with multibyte indent (#​9147)
  • Add support for NoReturn in auto-return-typing (#​9206)
  • Allow removal of typing from exempt-modules (#​9214)
  • Avoid mutable-class-default violations for Pydantic subclasses (#​9187)
  • Fix dropped union expressions for piped non-types in PYI055 autofix (#​9161)
  • Enable annotation quoting for multi-line expressions (#​9142)
  • Deduplicate edits when quoting annotations (#​9140)
  • Prevent invalid utf8 indexing in cell magic detection (#​9146)
  • Avoid nested quotations in auto-quoting fix (#​9168)
  • Add base-class inheritance detection to flake8-django rules (#​9151)
  • Avoid asyncio-dangling-task violations on shadowed bindings (#​9215)
Documentation
  • Fix blog post URL in changelog (#​9119)
  • Add error suppression hint for multi-line strings (#​9205)
  • Fix typo in SemanticModel.parent_expression docstring (#​9167)
  • Document link between import sorting and formatter (#​9117)

v0.1.8

Compare Source

This release includes opt-in support for formatting Python snippets within
docstrings via the docstring-code-format setting.
Check out the blog post for more details!

Preview features
  • Add "preserve" quote-style to mimic Black's skip-string-normalization (#​8822)
  • Implement prefer_splitting_right_hand_side_of_assignments preview style (#​8943)
  • `pycodestyle`] Add fix for `unexpected-spaces-around-keyword-parameter-equals` ([#&#8203;9072](https://github.com/astral-sh/ruff/pull/9072))
    
  • `pycodestyle`] Add fix for comment-related whitespace rules ([#&#8203;9075](https://github.com/astral-sh/ruff/pull/9075))
    
  • `pycodestyle`] Allow `sys.path` modifications between imports ([#&#8203;9047](https://github.com/astral-sh/ruff/pull/9047))
    
  • `refurb`] Implement `hashlib-digest-hex` (`FURB181`) ([#&#8203;9077](https://github.com/astral-sh/ruff/pull/9077))
    
    
Rule changes
  • Allow flake8-type-checking rules to automatically quote runtime-evaluated references (#​6001)
  • Allow transparent cell magics in Jupyter Notebooks (#​8911)
  • `flake8-annotations`] Avoid `ANN2xx` fixes for abstract methods with empty bodies ([#&#8203;9034](https://github.com/astral-sh/ruff/pull/9034))
    
  • `flake8-self`] Ignore underscore references in type annotations ([#&#8203;9036](https://github.com/astral-sh/ruff/pull/9036))
    
  • `pep8-naming`] Allow class names when `apps.get_model` is a non-string ([#&#8203;9065](https://github.com/astral-sh/ruff/pull/9065))
    
  • `pycodestyle`] Allow `matplotlib.use` calls to intersperse imports ([#&#8203;9094](https://github.com/astral-sh/ruff/pull/9094))
    
  • `pyflakes`] Support fixing unused assignments in tuples by renaming variables (`F841`) ([#&#8203;9107](https://github.com/astral-sh/ruff/pull/9107))
    
  • `pylint`] Add fix for `subprocess-run-without-check` (`PLW1510`) ([#&#8203;6708](https://github.com/astral-sh/ruff/pull/6708))
    
    
Formatter
  • Add docstring-code-format knob to enable docstring snippet formatting (#​8854)
  • Use double quotes for all docstrings, including single-quoted docstrings (#​9020)
  • Implement "dynamic" line width mode for docstring code formatting (#​9098)
  • Support reformatting Markdown code blocks (#​9030)
  • add support for formatting reStructuredText code snippets (#​9003)
  • Avoid trailing comma for single-argument with positional separator (#​9076)
  • Fix handling of trailing target comment (#​9051)
CLI
  • Hide unsafe fix suggestions when explicitly disabled (#​9095)
  • Add SARIF support to --output-format (#​9078)
Bug fixes
  • Apply unnecessary index rule prior to enumerate rewrite (#​9012)
  • `flake8-err-msg`] Allow `EM` fixes even if `msg` variable is defined ([#&#8203;9059](https://github.com/astral-sh/ruff/pull/9059))
    
  • `flake8-pie`] Prevent keyword arguments duplication ([#&#8203;8450](https://github.com/astral-sh/ruff/pull/8450))
    
  • `flake8-pie`] Respect trailing comma in `unnecessary-dict-kwargs` (`PIE804`) ([#&#8203;9015](https://github.com/astral-sh/ruff/pull/9015))
    
  • `flake8-raise`] Avoid removing parentheses on ctypes.WinError ([#&#8203;9027](https://github.com/astral-sh/ruff/pull/9027))
    
  • `isort`] Avoid invalid combination of `force-sort-within-types` and `lines-between-types` ([#&#8203;9041](https://github.com/astral-sh/ruff/pull/9041))
    
  • `isort`] Ensure that from-style imports are always ordered first in `__future__` ([#&#8203;9039](https://github.com/astral-sh/ruff/pull/9039))
    
  • `pycodestyle`] Allow tab indentation before keyword ([#&#8203;9099](https://github.com/astral-sh/ruff/pull/9099))
    
  • `pylint`] Ignore `@overrides` and `@overloads` for `too-many-positional` ([#&#8203;9000](https://github.com/astral-sh/ruff/pull/9000))
    
  • `pyupgrade`] Enable `printf-string-formatting` fix with comments on right-hand side ([#&#8203;9037](https://github.com/astral-sh/ruff/pull/9037))
    
  • `refurb`] Make `math-constant` (`FURB152`) rule more targeted ([#&#8203;9054](https://github.com/astral-sh/ruff/pull/9054))
    
  • `refurb`] Support floating-point base in `redundant-log-base` (`FURB163`) ([#&#8203;9100](https://github.com/astral-sh/ruff/pull/9100))
    
  • `ruff`] Detect `unused-asyncio-dangling-task` (`RUF006`) on unused assignments ([#&#8203;9060](https://github.com/astral-sh/ruff/pull/9060))
    
    

Configuration

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

🚦 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 Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [ruff](https://docs.astral.sh/ruff) ([source](https://github.com/astral-sh/ruff), [changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)) | tool.hatch.envs.lint | minor | `==0.1.7` -> `==0.2.2` | --- ### Release Notes <details> <summary>astral-sh/ruff (ruff)</summary> ### [`v0.2.2`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#022) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.2.1...v0.2.2) Highlights include: - Initial support formatting f-strings (in `--preview`). - Support for overriding arbitrary configuration options via the CLI through an expanded `--config` argument (e.g., `--config "lint.isort.combine-as-imports=false"`). - Significant performance improvements in Ruff's lexer, parser, and lint rules. ##### Preview features - Implement minimal f-string formatting ([#&#8203;9642](https://github.com/astral-sh/ruff/pull/9642)) - \[`pycodestyle`] Add blank line(s) rules (`E301`, `E302`, `E303`, `E304`, `E305`, `E306`) ([#&#8203;9266](https://github.com/astral-sh/ruff/pull/9266)) - \[`refurb`] Implement `readlines_in_for` (`FURB129`) ([#&#8203;9880](https://github.com/astral-sh/ruff/pull/9880)) ##### Rule changes - \[`ruff`] Ensure closing parentheses for multiline sequences are always on their own line (`RUF022`, `RUF023`) ([#&#8203;9793](https://github.com/astral-sh/ruff/pull/9793)) - \[`numpy`] Add missing deprecation violations (`NPY002`) ([#&#8203;9862](https://github.com/astral-sh/ruff/pull/9862)) - \[`flake8-bandit`] Detect `mark_safe` usages in decorators ([#&#8203;9887](https://github.com/astral-sh/ruff/pull/9887)) - \[`ruff`] Expand `asyncio-dangling-task` (`RUF006`) to include `new_event_loop` ([#&#8203;9976](https://github.com/astral-sh/ruff/pull/9976)) - \[`flake8-pyi`] Ignore 'unused' private type dicts in class scopes ([#&#8203;9952](https://github.com/astral-sh/ruff/pull/9952)) ##### Formatter - Docstring formatting: Preserve tab indentation when using `indent-style=tabs` ([#&#8203;9915](https://github.com/astral-sh/ruff/pull/9915)) - Disable top-level docstring formatting for notebooks ([#&#8203;9957](https://github.com/astral-sh/ruff/pull/9957)) - Stabilize quote-style's `preserve` mode ([#&#8203;9922](https://github.com/astral-sh/ruff/pull/9922)) ##### CLI - Allow arbitrary configuration options to be overridden via the CLI ([#&#8203;9599](https://github.com/astral-sh/ruff/pull/9599)) ##### Bug fixes - Make `show-settings` filters directory-agnostic ([#&#8203;9866](https://github.com/astral-sh/ruff/pull/9866)) - Respect duplicates when rewriting type aliases ([#&#8203;9905](https://github.com/astral-sh/ruff/pull/9905)) - Respect tuple assignments in typing analyzer ([#&#8203;9969](https://github.com/astral-sh/ruff/pull/9969)) - Use atomic write when persisting cache ([#&#8203;9981](https://github.com/astral-sh/ruff/pull/9981)) - Use non-parenthesized range for `DebugText` ([#&#8203;9953](https://github.com/astral-sh/ruff/pull/9953)) - \[`flake8-simplify`] Avoid false positive with `async` for loops (`SIM113`) ([#&#8203;9996](https://github.com/astral-sh/ruff/pull/9996)) - \[`flake8-trio`] Respect `async with` in `timeout-without-await` ([#&#8203;9859](https://github.com/astral-sh/ruff/pull/9859)) - \[`perflint`] Catch a wider range of mutations in `PERF101` ([#&#8203;9955](https://github.com/astral-sh/ruff/pull/9955)) - \[`pycodestyle`] Fix `E30X` panics on blank lines with trailing white spaces ([#&#8203;9907](https://github.com/astral-sh/ruff/pull/9907)) - \[`pydocstyle`] Allow using `parameters` as a subsection header (`D405`) ([#&#8203;9894](https://github.com/astral-sh/ruff/pull/9894)) - \[`pydocstyle`] Fix blank-line docstring rules for module-level docstrings ([#&#8203;9878](https://github.com/astral-sh/ruff/pull/9878)) - \[`pylint`] Accept 0.0 and 1.0 as common magic values (`PLR2004`) ([#&#8203;9964](https://github.com/astral-sh/ruff/pull/9964)) - \[`pylint`] Avoid suggesting set rewrites for non-hashable types ([#&#8203;9956](https://github.com/astral-sh/ruff/pull/9956)) - \[`ruff`] Avoid false negatives with string literals inside of method calls (`RUF027`) ([#&#8203;9865](https://github.com/astral-sh/ruff/pull/9865)) - \[`ruff`] Fix panic on with f-string detection (`RUF027`) ([#&#8203;9990](https://github.com/astral-sh/ruff/pull/9990)) - \[`ruff`] Ignore builtins when detecting missing f-strings ([#&#8203;9849](https://github.com/astral-sh/ruff/pull/9849)) ##### Performance - Use `memchr` for string lexing ([#&#8203;9888](https://github.com/astral-sh/ruff/pull/9888)) - Use `memchr` for tab-indentation detection ([#&#8203;9853](https://github.com/astral-sh/ruff/pull/9853)) - Reduce `Result<Tok, LexicalError>` size by using `Box<str>` instead of `String` ([#&#8203;9885](https://github.com/astral-sh/ruff/pull/9885)) - Reduce size of `Expr` from 80 to 64 bytes ([#&#8203;9900](https://github.com/astral-sh/ruff/pull/9900)) - Improve trailing comma rule performance ([#&#8203;9867](https://github.com/astral-sh/ruff/pull/9867)) - Remove unnecessary string cloning from the parser ([#&#8203;9884](https://github.com/astral-sh/ruff/pull/9884)) ### [`v0.2.1`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#021) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.2.0...v0.2.1) This release includes support for range formatting (i.e., the ability to format specific lines within a source file). ##### Preview features - \[`refurb`] Implement `missing-f-string-syntax` (`RUF027`) ([#&#8203;9728](https://github.com/astral-sh/ruff/pull/9728)) - Format module-level docstrings ([#&#8203;9725](https://github.com/astral-sh/ruff/pull/9725)) ##### Formatter - Add `--range` option to `ruff format` ([#&#8203;9733](https://github.com/astral-sh/ruff/pull/9733)) - Don't trim last empty line in docstrings ([#&#8203;9813](https://github.com/astral-sh/ruff/pull/9813)) ##### Bug fixes - Skip empty lines when determining base indentation ([#&#8203;9795](https://github.com/astral-sh/ruff/pull/9795)) - Drop `__get__` and `__set__` from `unnecessary-dunder-call` ([#&#8203;9791](https://github.com/astral-sh/ruff/pull/9791)) - Respect generic `Protocol` in ellipsis removal ([#&#8203;9841](https://github.com/astral-sh/ruff/pull/9841)) - Revert "Use publicly available Apple Silicon runners ([#&#8203;9726](https://github.com/astral-sh/ruff/issues/9726))" ([#&#8203;9834](https://github.com/astral-sh/ruff/pull/9834)) ##### Performance - Skip LibCST parsing for standard dedent adjustments ([#&#8203;9769](https://github.com/astral-sh/ruff/pull/9769)) - Remove CST-based fixer for `C408` ([#&#8203;9822](https://github.com/astral-sh/ruff/pull/9822)) - Add our own ignored-names abstractions ([#&#8203;9802](https://github.com/astral-sh/ruff/pull/9802)) - Remove CST-based fixers for `C400`, `C401`, `C410`, and `C418` ([#&#8203;9819](https://github.com/astral-sh/ruff/pull/9819)) - Use `AhoCorasick` to speed up quote match ([#&#8203;9773](https://github.com/astral-sh/ruff/pull/9773)) - Remove CST-based fixers for `C405` and `C409` ([#&#8203;9821](https://github.com/astral-sh/ruff/pull/9821)) - Add fast-path for comment detection ([#&#8203;9808](https://github.com/astral-sh/ruff/pull/9808)) - Invert order of checks in `zero-sleep-call` ([#&#8203;9766](https://github.com/astral-sh/ruff/pull/9766)) - Short-circuit typing matches based on imports ([#&#8203;9800](https://github.com/astral-sh/ruff/pull/9800)) - Run dunder method rule on methods directly ([#&#8203;9815](https://github.com/astral-sh/ruff/pull/9815)) - Track top-level module imports in the semantic model ([#&#8203;9775](https://github.com/astral-sh/ruff/pull/9775)) - Slight speed-up for lowercase and uppercase identifier checks ([#&#8203;9798](https://github.com/astral-sh/ruff/pull/9798)) - Remove LibCST-based fixer for `C403` ([#&#8203;9818](https://github.com/astral-sh/ruff/pull/9818)) ##### Documentation - Update `max-pos-args` example to `max-positional-args` ([#&#8203;9797](https://github.com/astral-sh/ruff/pull/9797)) - Fixed example code in `weak_cryptographic_key.rs` ([#&#8203;9774](https://github.com/astral-sh/ruff/pull/9774)) - Fix references to deprecated `ANN` rules in changelog ([#&#8203;9771](https://github.com/astral-sh/ruff/pull/9771)) - Fix default for `max-positional-args` ([#&#8203;9838](https://github.com/astral-sh/ruff/pull/9838)) ### [`v0.2.0`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#020) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.1.15...v0.2.0) ##### Breaking changes - The `NURSERY` selector cannot be used anymore - Legacy selection of nursery rules by exact codes is no longer allowed without preview enabled See also, the "Remapped rules" section which may result in disabled rules. ##### Deprecations The following rules are now deprecated: - [`missing-type-self`](https://docs.astral.sh/ruff/rules/missing-type-self/) (`ANN101`) - [`missing-type-cls`](https://docs.astral.sh/ruff/rules/missing-type-cls/) (`ANN102`) The following command line options are now deprecated: - `--show-source`; use `--output-format full` instead - `--no-show-source`; use `--output-format concise` instead - `--output-format text`; use `full` or `concise` instead The following settings have moved and the previous name is deprecated: - `ruff.allowed-confusables` → [`ruff.lint.allowed-confusables`](https://docs.astral.sh//ruff/settings/#lint_allowed-confusables) - `ruff.dummy-variable-rgx` → [`ruff.lint.dummy-variable-rgx`](https://docs.astral.sh//ruff/settings/#lint_dummy-variable-rgx) - `ruff.explicit-preview-rules` → [`ruff.lint.explicit-preview-rules`](https://docs.astral.sh//ruff/settings/#lint_explicit-preview-rules) - `ruff.extend-fixable` → [`ruff.lint.extend-fixable`](https://docs.astral.sh//ruff/settings/#lint_extend-fixable) - `ruff.extend-ignore` → [`ruff.lint.extend-ignore`](https://docs.astral.sh//ruff/settings/#lint_extend-ignore) - `ruff.extend-per-file-ignores` → [`ruff.lint.extend-per-file-ignores`](https://docs.astral.sh//ruff/settings/#lint_extend-per-file-ignores) - `ruff.extend-safe-fixes` → [`ruff.lint.extend-safe-fixes`](https://docs.astral.sh//ruff/settings/#lint_extend-safe-fixes) - `ruff.extend-select` → [`ruff.lint.extend-select`](https://docs.astral.sh//ruff/settings/#lint_extend-select) - `ruff.extend-unfixable` → [`ruff.lint.extend-unfixable`](https://docs.astral.sh//ruff/settings/#lint_extend-unfixable) - `ruff.extend-unsafe-fixes` → [`ruff.lint.extend-unsafe-fixes`](https://docs.astral.sh//ruff/settings/#lint_extend-unsafe-fixes) - `ruff.external` → [`ruff.lint.external`](https://docs.astral.sh//ruff/settings/#lint_external) - `ruff.fixable` → [`ruff.lint.fixable`](https://docs.astral.sh//ruff/settings/#lint_fixable) - `ruff.flake8-annotations` → [`ruff.lint.flake8-annotations`](https://docs.astral.sh//ruff/settings/#lint_flake8-annotations) - `ruff.flake8-bandit` → [`ruff.lint.flake8-bandit`](https://docs.astral.sh//ruff/settings/#lint_flake8-bandit) - `ruff.flake8-bugbear` → [`ruff.lint.flake8-bugbear`](https://docs.astral.sh//ruff/settings/#lint_flake8-bugbear) - `ruff.flake8-builtins` → [`ruff.lint.flake8-builtins`](https://docs.astral.sh//ruff/settings/#lint_flake8-builtins) - `ruff.flake8-comprehensions` → [`ruff.lint.flake8-comprehensions`](https://docs.astral.sh//ruff/settings/#lint_flake8-comprehensions) - `ruff.flake8-copyright` → [`ruff.lint.flake8-copyright`](https://docs.astral.sh//ruff/settings/#lint_flake8-copyright) - `ruff.flake8-errmsg` → [`ruff.lint.flake8-errmsg`](https://docs.astral.sh//ruff/settings/#lint_flake8-errmsg) - `ruff.flake8-gettext` → [`ruff.lint.flake8-gettext`](https://docs.astral.sh//ruff/settings/#lint_flake8-gettext) - `ruff.flake8-implicit-str-concat` → [`ruff.lint.flake8-implicit-str-concat`](https://docs.astral.sh//ruff/settings/#lint_flake8-implicit-str-concat) - `ruff.flake8-import-conventions` → [`ruff.lint.flake8-import-conventions`](https://docs.astral.sh//ruff/settings/#lint_flake8-import-conventions) - `ruff.flake8-pytest-style` → [`ruff.lint.flake8-pytest-style`](https://docs.astral.sh//ruff/settings/#lint_flake8-pytest-style) - `ruff.flake8-quotes` → [`ruff.lint.flake8-quotes`](https://docs.astral.sh//ruff/settings/#lint_flake8-quotes) - `ruff.flake8-self` → [`ruff.lint.flake8-self`](https://docs.astral.sh//ruff/settings/#lint_flake8-self) - `ruff.flake8-tidy-imports` → [`ruff.lint.flake8-tidy-imports`](https://docs.astral.sh//ruff/settings/#lint_flake8-tidy-imports) - `ruff.flake8-type-checking` → [`ruff.lint.flake8-type-checking`](https://docs.astral.sh//ruff/settings/#lint_flake8-type-checking) - `ruff.flake8-unused-arguments` → [`ruff.lint.flake8-unused-arguments`](https://docs.astral.sh//ruff/settings/#lint_flake8-unused-arguments) - `ruff.ignore` → [`ruff.lint.ignore`](https://docs.astral.sh//ruff/settings/#lint_ignore) - `ruff.ignore-init-module-imports` → [`ruff.lint.ignore-init-module-imports`](https://docs.astral.sh//ruff/settings/#lint_ignore-init-module-imports) - `ruff.isort` → [`ruff.lint.isort`](https://docs.astral.sh//ruff/settings/#lint_isort) - `ruff.logger-objects` → [`ruff.lint.logger-objects`](https://docs.astral.sh//ruff/settings/#lint_logger-objects) - `ruff.mccabe` → [`ruff.lint.mccabe`](https://docs.astral.sh//ruff/settings/#lint_mccabe) - `ruff.pep8-naming` → [`ruff.lint.pep8-naming`](https://docs.astral.sh//ruff/settings/#lint_pep8-naming) - `ruff.per-file-ignores` → [`ruff.lint.per-file-ignores`](https://docs.astral.sh//ruff/settings/#lint_per-file-ignores) - `ruff.pycodestyle` → [`ruff.lint.pycodestyle`](https://docs.astral.sh//ruff/settings/#lint_pycodestyle) - `ruff.pydocstyle` → [`ruff.lint.pydocstyle`](https://docs.astral.sh//ruff/settings/#lint_pydocstyle) - `ruff.pyflakes` → [`ruff.lint.pyflakes`](https://docs.astral.sh//ruff/settings/#lint_pyflakes) - `ruff.pylint` → [`ruff.lint.pylint`](https://docs.astral.sh//ruff/settings/#lint_pylint) - `ruff.pyupgrade` → [`ruff.lint.pyupgrade`](https://docs.astral.sh//ruff/settings/#lint_pyupgrade) - `ruff.select` → [`ruff.lint.select`](https://docs.astral.sh//ruff/settings/#lint_select) - `ruff.task-tags` → [`ruff.lint.task-tags`](https://docs.astral.sh//ruff/settings/#lint_task-tags) - `ruff.typing-modules` → [`ruff.lint.typing-modules`](https://docs.astral.sh//ruff/settings/#lint_typing-modules) - `ruff.unfixable` → [`ruff.lint.unfixable`](https://docs.astral.sh//ruff/settings/#lint_unfixable) ##### Remapped rules The following rules have been remapped to new codes: - [`raise-without-from-inside-except`](https://docs.astral.sh/ruff/rules/raise-without-from-inside-except/): `TRY200` to `B904` - [`suspicious-eval-usage`](https://docs.astral.sh/ruff/rules/suspicious-eval-usage/): `PGH001` to `S307` - [`logging-warn`](https://docs.astral.sh/ruff/rules/logging-warn/): `PGH002` to `G010` - [`static-key-dict-comprehension`](https://docs.astral.sh/ruff/rules/static-key-dict-comprehension): `RUF011` to `B035` - [`runtime-string-union`](https://docs.astral.sh/ruff/rules/runtime-string-union): `TCH006` to `TCH010` ##### Stabilizations The following rules have been stabilized and are no longer in preview: - [`trio-timeout-without-await`](https://docs.astral.sh/ruff/rules/trio-timeout-without-await) (`TRIO100`) - [`trio-sync-call`](https://docs.astral.sh/ruff/rules/trio-sync-call) (`TRIO105`) - [`trio-async-function-with-timeout`](https://docs.astral.sh/ruff/rules/trio-async-function-with-timeout) (`TRIO109`) - [`trio-unneeded-sleep`](https://docs.astral.sh/ruff/rules/trio-unneeded-sleep) (`TRIO110`) - [`trio-zero-sleep-call`](https://docs.astral.sh/ruff/rules/trio-zero-sleep-call) (`TRIO115`) - [`unnecessary-escaped-quote`](https://docs.astral.sh/ruff/rules/unnecessary-escaped-quote) (`Q004`) - [`enumerate-for-loop`](https://docs.astral.sh/ruff/rules/enumerate-for-loop) (`SIM113`) - [`zip-dict-keys-and-values`](https://docs.astral.sh/ruff/rules/zip-dict-keys-and-values) (`SIM911`) - [`timeout-error-alias`](https://docs.astral.sh/ruff/rules/timeout-error-alias) (`UP041`) - [`flask-debug-true`](https://docs.astral.sh/ruff/rules/flask-debug-true) (`S201`) - [`tarfile-unsafe-members`](https://docs.astral.sh/ruff/rules/tarfile-unsafe-members) (`S202`) - [`ssl-insecure-version`](https://docs.astral.sh/ruff/rules/ssl-insecure-version) (`S502`) - [`ssl-with-bad-defaults`](https://docs.astral.sh/ruff/rules/ssl-with-bad-defaults) (`S503`) - [`ssl-with-no-version`](https://docs.astral.sh/ruff/rules/ssl-with-no-version) (`S504`) - [`weak-cryptographic-key`](https://docs.astral.sh/ruff/rules/weak-cryptographic-key) (`S505`) - [`ssh-no-host-key-verification`](https://docs.astral.sh/ruff/rules/ssh-no-host-key-verification) (`S507`) - [`django-raw-sql`](https://docs.astral.sh/ruff/rules/django-raw-sql) (`S611`) - [`mako-templates`](https://docs.astral.sh/ruff/rules/mako-templates) (`S702`) - [`generator-return-from-iter-method`](https://docs.astral.sh/ruff/rules/generator-return-from-iter-method) (`PYI058`) - [`runtime-string-union`](https://docs.astral.sh/ruff/rules/runtime-string-union) (`TCH006`) - [`numpy2-deprecation`](https://docs.astral.sh/ruff/rules/numpy2-deprecation) (`NPY201`) - [`quadratic-list-summation`](https://docs.astral.sh/ruff/rules/quadratic-list-summation) (`RUF017`) - [`assignment-in-assert`](https://docs.astral.sh/ruff/rules/assignment-in-assert) (`RUF018`) - [`unnecessary-key-check`](https://docs.astral.sh/ruff/rules/unnecessary-key-check) (`RUF019`) - [`never-union`](https://docs.astral.sh/ruff/rules/never-union) (`RUF020`) - [`direct-logger-instantiation`](https://docs.astral.sh/ruff/rules/direct-logger-instantiation) (`LOG001`) - [`invalid-get-logger-argument`](https://docs.astral.sh/ruff/rules/invalid-get-logger-argument) (`LOG002`) - [`exception-without-exc-info`](https://docs.astral.sh/ruff/rules/exception-without-exc-info) (`LOG007`) - [`undocumented-warn`](https://docs.astral.sh/ruff/rules/undocumented-warn) (`LOG009`) Fixes for the following rules have been stabilized and are now available without preview: - [`triple-single-quotes`](https://docs.astral.sh/ruff/rules/triple-single-quotes) (`D300`) - [`non-pep604-annotation`](https://docs.astral.sh/ruff/rules/non-pep604-annotation) (`UP007`) - [`dict-get-with-none-default`](https://docs.astral.sh/ruff/rules/dict-get-with-none-default) (`SIM910`) - [`in-dict-keys`](https://docs.astral.sh/ruff/rules/in-dict-keys) (`SIM118`) - [`collapsible-else-if`](https://docs.astral.sh/ruff/rules/collapsible-else-if) (`PLR5501`) - [`if-with-same-arms`](https://docs.astral.sh/ruff/rules/if-with-same-arms) (`SIM114`) - [`useless-else-on-loop`](https://docs.astral.sh/ruff/rules/useless-else-on-loop) (`PLW0120`) - [`unnecessary-literal-union`](https://docs.astral.sh/ruff/rules/unnecessary-literal-union) (`PYI030`) - [`unnecessary-spread`](https://docs.astral.sh/ruff/rules/unnecessary-spread) (`PIE800`) - [`error-instead-of-exception`](https://docs.astral.sh/ruff/rules/error-instead-of-exception) (`TRY400`) - [`redefined-while-unused`](https://docs.astral.sh/ruff/rules/redefined-while-unused) (`F811`) - [`duplicate-value`](https://docs.astral.sh/ruff/rules/duplicate-value) (`B033`) - [`multiple-imports-on-one-line`](https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line) (`E401`) - [`non-pep585-annotation`](https://docs.astral.sh/ruff/rules/non-pep585-annotation) (`UP006`) Fixes for the following rules have been promoted from unsafe to safe: - [`unaliased-collections-abc-set-import`](https://docs.astral.sh/ruff/rules/unaliased-collections-abc-set-import) (`PYI025`) The following behaviors have been stabilized: - [`module-import-not-at-top-of-file`](https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file/) (`E402`) allows `sys.path` modifications between imports - [`reimplemented-container-builtin`](https://docs.astral.sh/ruff/rules/reimplemented-container-builtin/) (`PIE807`) includes lambdas that can be replaced with `dict` - [`unnecessary-placeholder`](https://docs.astral.sh/ruff/rules/unnecessary-placeholder/) (`PIE790`) applies to unnecessary ellipses (`...`) - [`if-else-block-instead-of-dict-get`](https://docs.astral.sh/ruff/rules/if-else-block-instead-of-dict-get/) (`SIM401`) applies to `if-else` expressions ##### Preview features - \[`refurb`] Implement `metaclass_abcmeta` (`FURB180`) ([#&#8203;9658](https://github.com/astral-sh/ruff/pull/9658)) - Implement `blank_line_after_nested_stub_class` preview style ([#&#8203;9155](https://github.com/astral-sh/ruff/pull/9155)) - The preview rule [`and-or-ternary`](https://docs.astral.sh/ruff/rules/and-or-ternary) (`PLR1706`) was removed ##### Bug fixes - \[`flake8-async`] Take `pathlib.Path` into account when analyzing async functions ([#&#8203;9703](https://github.com/astral-sh/ruff/pull/9703)) - \[`flake8-return`] - fix indentation syntax error (`RET505`) ([#&#8203;9705](https://github.com/astral-sh/ruff/pull/9705)) - Detect multi-statement lines in else removal ([#&#8203;9748](https://github.com/astral-sh/ruff/pull/9748)) - `RUF022`, `RUF023`: never add two trailing commas to the end of a sequence ([#&#8203;9698](https://github.com/astral-sh/ruff/pull/9698)) - `RUF023`: Don't sort `__match_args__`, only `__slots__` ([#&#8203;9724](https://github.com/astral-sh/ruff/pull/9724)) - \[`flake8-simplify`] - Fix syntax error in autofix (`SIM114`) ([#&#8203;9704](https://github.com/astral-sh/ruff/pull/9704)) - \[`pylint`] Show verbatim constant in `magic-value-comparison` (`PLR2004`) ([#&#8203;9694](https://github.com/astral-sh/ruff/pull/9694)) - Removing trailing whitespace inside multiline strings is unsafe ([#&#8203;9744](https://github.com/astral-sh/ruff/pull/9744)) - Support `IfExp` with dual string arms in `invalid-envvar-default` ([#&#8203;9734](https://github.com/astral-sh/ruff/pull/9734)) - \[`pylint`] Add `__mro_entries__` to known dunder methods (`PLW3201`) ([#&#8203;9706](https://github.com/astral-sh/ruff/pull/9706)) ##### Documentation - Removed rules are now retained in the documentation ([#&#8203;9691](https://github.com/astral-sh/ruff/pull/9691)) - Deprecated rules are now indicated in the documentation ([#&#8203;9689](https://github.com/astral-sh/ruff/pull/9689)) ### [`v0.1.15`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0115) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.1.14...v0.1.15) ##### Preview features - Error when `NURSERY` selector is used with `--preview` ([#&#8203;9682](https://github.com/astral-sh/ruff/pull/9682)) - Preserve indentation around multiline strings in formatter ([#&#8203;9637](https://github.com/astral-sh/ruff/pull/9637)) - \[`flake8-return`] Add fixes for all rules (`RET505`, `RET506`, `RET507`, `RET508`) ([#&#8203;9595](https://github.com/astral-sh/ruff/pull/9595)) - \[`flake8-simplify`] Add fix for `if-with-same-arms` (`SIM114`) ([#&#8203;9591](https://github.com/astral-sh/ruff/pull/9591)) - \[`pycodestyle`] Add fix for `multiple-imports-on-one-line` (`E401`) ([#&#8203;9518](https://github.com/astral-sh/ruff/pull/9518)) - \[`pylint`] Add fix for `collapsible-else-if` (`PLR5501`) ([#&#8203;9594](https://github.com/astral-sh/ruff/pull/9594)) - \[`pylint`] Add fix for `useless-else-on-loop` (`PLW0120`) ([#&#8203;9590](https://github.com/astral-sh/ruff/pull/9590)) - \[`pylint`] Implement `assigning-non-slot` (`E0237`) ([#&#8203;9623](https://github.com/astral-sh/ruff/pull/9623)) - \[`pylint`] Implement `potential-index-error` (`PLE0643`) ([#&#8203;9545](https://github.com/astral-sh/ruff/pull/9545)) - \[`pylint`] Implement `too-many-nested-blocks` (`PLR1702`) ([#&#8203;9172](https://github.com/astral-sh/ruff/pull/9172)) - \[`ruff`] Add rule to sort `__slots__` and `__match_args__` ([#&#8203;9564](https://github.com/astral-sh/ruff/pull/9564)) - \[`ruff`] Detect unnecessary `dict` comprehensions for iterables (`RUF025`) ([#&#8203;9613](https://github.com/astral-sh/ruff/pull/9613)) - \[`ruff`] Guard against use of `default_factory` as a keyword argument (`RUF026`) ([#&#8203;9651](https://github.com/astral-sh/ruff/pull/9651)) - \[`ruff`] Implement `mutable-fromkeys-value` (`RUF024`) ([#&#8203;9597](https://github.com/astral-sh/ruff/pull/9597)) ##### CLI - Enable auto-wrapping of `--help` output ([#&#8203;9633](https://github.com/astral-sh/ruff/pull/9633)) ##### Bug fixes - Avoid rendering display-only rules as fixable ([#&#8203;9649](https://github.com/astral-sh/ruff/pull/9649)) - Detect automagic-like assignments in notebooks ([#&#8203;9653](https://github.com/astral-sh/ruff/pull/9653)) - Generate custom JSON schema for dynamic setting ([#&#8203;9632](https://github.com/astral-sh/ruff/pull/9632)) - \[`flake8-no-pep420`] Include global `--config` when determining namespace packages ([#&#8203;9603](https://github.com/astral-sh/ruff/pull/9603)) - \[`flake8-pie`] Omit bound tuples passed to `.startswith` or `.endswith` ([#&#8203;9661](https://github.com/astral-sh/ruff/pull/9661)) - \[`flake8-return`] Avoid panic when fixing inlined else blocks ([#&#8203;9657](https://github.com/astral-sh/ruff/pull/9657)) - \[`flake8-return`] Consider exception suppression in unnecessary assignment ([#&#8203;9673](https://github.com/astral-sh/ruff/pull/9673)) - \[`flake8-return`] Take `NoReturn` annotation into account when analyzing implicit returns ([#&#8203;9636](https://github.com/astral-sh/ruff/pull/9636)) - \[`flake8-simplify`] Support inverted returns in `needless-bool` (`SIM103`) ([#&#8203;9619](https://github.com/astral-sh/ruff/pull/9619)) - \[`flake8-type-checking`] Add Pydantic's `BaseConfig` to default-copy list ([#&#8203;9650](https://github.com/astral-sh/ruff/pull/9650)) - \[`flake8-type-checking`] Avoid marking `InitVar` as a typing-only annotation ([#&#8203;9688](https://github.com/astral-sh/ruff/pull/9688)) - \[`pycodestyle`] Allow `dtype` comparisons in `type-comparison` ([#&#8203;9676](https://github.com/astral-sh/ruff/pull/9676)) - \[`pydocstyle`] Re-implement `last-line-after-section` (`D413`) ([#&#8203;9654](https://github.com/astral-sh/ruff/pull/9654)) ##### Documentation - \[`flake8-pytest-style`] Add fix safety documentation for `duplicate-parameterize-test-cases` ([#&#8203;9678](https://github.com/astral-sh/ruff/pull/9678)) - \[`pylint`] Document `literal-membership` fix safety conditions ([#&#8203;9677](https://github.com/astral-sh/ruff/pull/9677)) - \[`isort`] Fix reference to `isort` rule code ([#&#8203;9598](https://github.com/astral-sh/ruff/pull/9598)) ### [`v0.1.14`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0114) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.1.13...v0.1.14) ##### Preview features - \[`flake8-bugbear`] Add fix for `duplicate-value` (`B033`) ([#&#8203;9510](https://github.com/astral-sh/ruff/pull/9510)) - \[`flake8-simplify`] Implement `enumerate-for-loop` (`SIM113`) ([#&#8203;7777](https://github.com/astral-sh/ruff/pull/7777)) - \[`pygrep_hooks`] Add fix for `deprecated-log-warn` (`PGH002`) ([#&#8203;9519](https://github.com/astral-sh/ruff/pull/9519)) - \[`pylint`] Implement `import-private-name` (`C2701`) ([#&#8203;5920](https://github.com/astral-sh/ruff/pull/5920)) - \[`refurb`] Implement `regex-flag-alias` with fix (`FURB167`) ([#&#8203;9516](https://github.com/astral-sh/ruff/pull/9516)) - \[`ruff`] Add rule and fix to sort contents of `__all__` (`RUF022`) ([#&#8203;9474](https://github.com/astral-sh/ruff/pull/9474)) - \[`tryceratops`] Add fix for `error-instead-of-exception` (`TRY400`) ([#&#8203;9520](https://github.com/astral-sh/ruff/pull/9520)) ##### Rule changes - \[`flake8-pyi`] Fix `PYI047` false negatives on PEP-695 type aliases ([#&#8203;9566](https://github.com/astral-sh/ruff/pull/9566)) - \[`flake8-pyi`] Fix `PYI049` false negatives on call-based `TypedDict`s ([#&#8203;9567](https://github.com/astral-sh/ruff/pull/9567)) - \[`pylint`] Exclude `self` and `cls` when counting method arguments (`PLR0917`) ([#&#8203;9563](https://github.com/astral-sh/ruff/pull/9563)) ##### CLI - `--show-settings` displays active settings in a far more readable format ([#&#8203;9464](https://github.com/astral-sh/ruff/pull/9464)) - Add `--extension` support to the formatter ([#&#8203;9483](https://github.com/astral-sh/ruff/pull/9483)) ##### Configuration - Ignore preview status for fixable and unfixable selectors ([#&#8203;9538](https://github.com/astral-sh/ruff/pull/9538)) - \[`pycodestyle`] Use the configured tab size when expanding indents ([#&#8203;9506](https://github.com/astral-sh/ruff/pull/9506)) ##### Bug fixes - Recursively visit deferred AST nodes ([#&#8203;9541](https://github.com/astral-sh/ruff/pull/9541)) - Visit deferred lambdas before type definitions ([#&#8203;9540](https://github.com/astral-sh/ruff/pull/9540)) - \[`flake8-simplify`] Avoid some more `enumerate-for-loop` false positives (`SIM113`) ([#&#8203;9515](https://github.com/astral-sh/ruff/pull/9515)) - \[`pandas-vet`] Limit inplace diagnostics to methods that accept inplace ([#&#8203;9495](https://github.com/astral-sh/ruff/pull/9495)) - \[`pylint`] Add the `__prepare__` method to the list of recognized dunder method ([#&#8203;9529](https://github.com/astral-sh/ruff/pull/9529)) - \[`pylint`] Ignore unnecessary dunder calls within dunder definitions ([#&#8203;9496](https://github.com/astral-sh/ruff/pull/9496)) - \[`refurb`] Avoid bailing when `reimplemented-operator` is called on function (`FURB118`) ([#&#8203;9556](https://github.com/astral-sh/ruff/pull/9556)) - \[`ruff`] Avoid treating named expressions as static keys (`RUF011`) ([#&#8203;9494](https://github.com/astral-sh/ruff/pull/9494)) ##### Documentation - Add instructions on using `noqa` with isort rules ([#&#8203;9555](https://github.com/astral-sh/ruff/pull/9555)) - Documentation update for URL giving 'page not found' ([#&#8203;9565](https://github.com/astral-sh/ruff/pull/9565)) - Fix admonition in dark mode ([#&#8203;9502](https://github.com/astral-sh/ruff/pull/9502)) - Update contributing docs to use `cargo bench -p ruff_benchmark` ([#&#8203;9535](https://github.com/astral-sh/ruff/pull/9535)) - Update emacs integration section to include `emacs-ruff-format` ([#&#8203;9403](https://github.com/astral-sh/ruff/pull/9403)) - \[`flake8-blind-except`] Document exceptions to `blind-except` rule ([#&#8203;9580](https://github.com/astral-sh/ruff/pull/9580)) ### [`v0.1.13`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0113) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.1.12...v0.1.13) ##### Bug fixes - Include base pyproject when initializing cache settings ([#&#8203;9480](https://github.com/astral-sh/ruff/pull/9480)) - \[`flake8-simplify`] Account for possibly-empty f-string values in truthiness logic ([#&#8203;9484](https://github.com/astral-sh/ruff/pull/9484)) - \[`pylint`] Add the missing period in `unnecessary-dunder-call` ([#&#8203;9485](https://github.com/astral-sh/ruff/pull/9485)) - \[`pylint`] Fix `__aenter__` message in `unnecessary-dunder-call` ([#&#8203;9492](https://github.com/astral-sh/ruff/pull/9492)) ### [`v0.1.12`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0112) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.1.11...v0.1.12) ##### Preview features - Formatter: Hug multiline-strings in preview style ([#&#8203;9243](https://github.com/astral-sh/ruff/pull/9243)) - \[`flake8-bandit`] Add `ssl-with-no-version` (`S504`) ([#&#8203;9384](https://github.com/astral-sh/ruff/pull/9384)) - \[`flake8-bandit`] Implement `ssl-insecure-version` (`S502`) ([#&#8203;9390](https://github.com/astral-sh/ruff/pull/9390)) - \[`flake8-bandit`] Implement `ssl-with-bad-defaults` (`S503`) ([#&#8203;9391](https://github.com/astral-sh/ruff/pull/9391)) - \[`flake8-bandit`] Implement suspicious import rules (`S4XX`) ([#&#8203;8831](https://github.com/astral-sh/ruff/pull/8831)) - \[`flake8-simplify`] Implement `zip-dict-keys-and-values` (`SIM911`) ([#&#8203;9460](https://github.com/astral-sh/ruff/pull/9460)) - \[`pyflakes`] Add a fix for `redefined-while-unused` (`F811`) ([#&#8203;9419](https://github.com/astral-sh/ruff/pull/9419)) - \[`pylint`] Implement `unnecessary-dunder-call` (`C2801`) ([#&#8203;9166](https://github.com/astral-sh/ruff/pull/9166)) - \[`ruff`] Add `parenthesize-chained-operators` (`RUF021`) to enforce parentheses in `a or b and c` ([#&#8203;9440](https://github.com/astral-sh/ruff/pull/9440)) ##### Rule changes - \[`flake8-boolean-trap`] Allow Boolean positional arguments in setters ([#&#8203;9429](https://github.com/astral-sh/ruff/pull/9429)) - \[`flake8-builtins`] Restrict `builtin-attribute-shadowing` (`A003`) to actual shadowed references ([#&#8203;9462](https://github.com/astral-sh/ruff/pull/9462)) - \[`flake8-pyi`] Add fix for `generator-return-from-iter-method` (`PYI058`) ([#&#8203;9355](https://github.com/astral-sh/ruff/pull/9355)) - \[`pyflakes`] Don't flag `redefined-while-unused` (`F811`) in `if` branches ([#&#8203;9418](https://github.com/astral-sh/ruff/pull/9418)) - \[`pyupgrade`] Add some additional Python 3.12 typing members to `deprecated-import` ([#&#8203;9445](https://github.com/astral-sh/ruff/pull/9445)) - \[`ruff`] Add fix for `parenthesize-chained-operators` (`RUF021`) ([#&#8203;9449](https://github.com/astral-sh/ruff/pull/9449)) - \[`ruff`] Include subscripts and attributes in static key rule (`RUF011`) ([#&#8203;9416](https://github.com/astral-sh/ruff/pull/9416)) - \[`ruff`] Support variable keys in static dictionary key rule (`RUF011`) ([#&#8203;9411](https://github.com/astral-sh/ruff/pull/9411)) ##### Formatter - Generate deterministic IDs when formatting notebooks ([#&#8203;9359](https://github.com/astral-sh/ruff/pull/9359)) - Allow `# fmt: skip` with interspersed same-line comments ([#&#8203;9395](https://github.com/astral-sh/ruff/pull/9395)) - Parenthesize breaking named expressions in match guards ([#&#8203;9396](https://github.com/astral-sh/ruff/pull/9396)) ##### Bug fixes - Add cell indexes to all diagnostics ([#&#8203;9387](https://github.com/astral-sh/ruff/pull/9387)) - Avoid infinite loop in constant vs. `None` comparisons ([#&#8203;9376](https://github.com/astral-sh/ruff/pull/9376)) - Handle raises with implicit alternate branches ([#&#8203;9377](https://github.com/astral-sh/ruff/pull/9377)) - Ignore trailing quotes for unclosed l-brace errors ([#&#8203;9388](https://github.com/astral-sh/ruff/pull/9388)) - Respect multi-segment submodule imports when resolving qualified names ([#&#8203;9382](https://github.com/astral-sh/ruff/pull/9382)) - Use `DisplayParseError` for stdin parser errors ([#&#8203;9409](https://github.com/astral-sh/ruff/pull/9409)) - Use `comment_ranges` for isort directive extraction ([#&#8203;9414](https://github.com/astral-sh/ruff/pull/9414)) - Use transformed source code for diagnostic locations ([#&#8203;9408](https://github.com/astral-sh/ruff/pull/9408)) - \[`flake8-pyi`] Exclude `warnings.deprecated` and `typing_extensions.deprecated` arguments ([#&#8203;9423](https://github.com/astral-sh/ruff/pull/9423)) - \[`flake8-pyi`] Fix false negative for `unused-private-protocol` (`PYI046`) with unused generic protocols ([#&#8203;9405](https://github.com/astral-sh/ruff/pull/9405)) - \[`pydocstyle`] Disambiguate argument descriptors from section headers ([#&#8203;9427](https://github.com/astral-sh/ruff/pull/9427)) - \[`pylint`] Homogenize `PLR0914` message to match other `PLR09XX` rules ([#&#8203;9399](https://github.com/astral-sh/ruff/pull/9399)) - \[`ruff`] Allow `Hashable = None` in type annotations (`RUF013`) ([#&#8203;9442](https://github.com/astral-sh/ruff/pull/9442)) ##### Documentation - Fix admonition hyperlink colouring ([#&#8203;9385](https://github.com/astral-sh/ruff/pull/9385)) - Add missing preview link ([#&#8203;9386](https://github.com/astral-sh/ruff/pull/9386)) ### [`v0.1.11`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0111) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.1.10...v0.1.11) ##### Preview features - \[`pylint`] Implement `super-without-brackets` (`W0245`) ([#&#8203;9257](https://github.com/astral-sh/ruff/pull/9257)) ##### Bug fixes - Check path string properly in `python -m ruff` invocations ([#&#8203;9367](https://github.com/astral-sh/ruff/pull/9367)) ##### Documentation - Tweak `relative-imports` message ([#&#8203;9365](https://github.com/astral-sh/ruff/pull/9365)) - Add fix safety note for `yield-in-for-loop` ([#&#8203;9364](https://github.com/astral-sh/ruff/pull/9364)) ### [`v0.1.10`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0110) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.1.9...v0.1.10) ##### Preview features - Improve `dummy_implementations` preview style formatting ([#&#8203;9240](https://github.com/astral-sh/ruff/pull/9240)) - Normalise Hex and unicode escape sequences in strings ([#&#8203;9280](https://github.com/astral-sh/ruff/pull/9280)) - Parenthesize long type annotations in annotated assignments ([#&#8203;9210](https://github.com/astral-sh/ruff/pull/9210)) - Parenthesize multi-context managers in `with` statements ([#&#8203;9222](https://github.com/astral-sh/ruff/pull/9222)) - \[`flake8-pyi`] Implement `generator-return-from-iter-method` (`PYI058`) ([#&#8203;9313](https://github.com/astral-sh/ruff/pull/9313)) - \[`pylint`] Implement `empty-comment` (`PLR2044`) ([#&#8203;9174](https://github.com/astral-sh/ruff/pull/9174)) - \[`refurb`] Implement `bit-count` (`FURB161`) ([#&#8203;9265](https://github.com/astral-sh/ruff/pull/9265)) - \[`ruff`] Add `never-union` rule to detect redundant `typing.NoReturn` and `typing.Never` ([#&#8203;9217](https://github.com/astral-sh/ruff/pull/9217)) ##### CLI - Add paths to TOML parse errors ([#&#8203;9358](https://github.com/astral-sh/ruff/pull/9358)) - Add row and column numbers to formatter parse errors ([#&#8203;9321](https://github.com/astral-sh/ruff/pull/9321)) - Improve responsiveness when invoked via Python ([#&#8203;9315](https://github.com/astral-sh/ruff/pull/9315)) - Short rule messages should not end with a period ([#&#8203;9345](https://github.com/astral-sh/ruff/pull/9345)) ##### Configuration - Respect runtime-required decorators on functions ([#&#8203;9317](https://github.com/astral-sh/ruff/pull/9317)) ##### Bug fixes - Avoid `asyncio-dangling-task` for nonlocal and global bindings ([#&#8203;9263](https://github.com/astral-sh/ruff/pull/9263)) - Escape trailing placeholders in rule documentation ([#&#8203;9301](https://github.com/astral-sh/ruff/pull/9301)) - Fix continuation detection following multi-line strings ([#&#8203;9332](https://github.com/astral-sh/ruff/pull/9332)) - Fix scoping for generators in named expressions in classes ([#&#8203;9248](https://github.com/astral-sh/ruff/pull/9248)) - Port from obsolete wsl crate to is-wsl ([#&#8203;9356](https://github.com/astral-sh/ruff/pull/9356)) - Remove special pre-visit for module docstrings ([#&#8203;9261](https://github.com/astral-sh/ruff/pull/9261)) - Respect `__str__` definitions from super classes ([#&#8203;9338](https://github.com/astral-sh/ruff/pull/9338)) - Respect `unused-noqa` via `per-file-ignores` ([#&#8203;9300](https://github.com/astral-sh/ruff/pull/9300)) - Respect attribute chains when resolving builtin call paths ([#&#8203;9309](https://github.com/astral-sh/ruff/pull/9309)) - Treat all `typing_extensions` members as typing aliases ([#&#8203;9335](https://github.com/astral-sh/ruff/pull/9335)) - Use `Display` for formatter parse errors ([#&#8203;9316](https://github.com/astral-sh/ruff/pull/9316)) - Wrap subscripted dicts in parens for f-string conversion ([#&#8203;9238](https://github.com/astral-sh/ruff/pull/9238)) - \[`flake8-annotations`] Avoid adding return types to stub methods ([#&#8203;9277](https://github.com/astral-sh/ruff/pull/9277)) - \[`flake8-annotations`] Respect mixed `return` and `raise` cases in return-type analysis ([#&#8203;9310](https://github.com/astral-sh/ruff/pull/9310)) - \[`flake8-bandit`] Don't report violations when `SafeLoader` is imported from `yaml.loader` (`S506`) ([#&#8203;9299](https://github.com/astral-sh/ruff/pull/9299)) - \[`pylint`] Avoid panic when comment is preceded by Unicode ([#&#8203;9331](https://github.com/astral-sh/ruff/pull/9331)) - \[`pylint`] Change `PLR0917` error message to match other `PLR09XX` messages ([#&#8203;9308](https://github.com/astral-sh/ruff/pull/9308)) - \[`refurb`] Avoid false positives for `math-constant` (`FURB152`) ([#&#8203;9290](https://github.com/astral-sh/ruff/pull/9290)) ##### Documentation - Expand target name for better rule documentation ([#&#8203;9302](https://github.com/astral-sh/ruff/pull/9302)) - Fix typos found by codespell ([#&#8203;9346](https://github.com/astral-sh/ruff/pull/9346)) - \[`perflint`] Document `PERF102` fix un-safety ([#&#8203;9351](https://github.com/astral-sh/ruff/pull/9351)) - \[`pyupgrade`] Document `UP007` fix un-safety ([#&#8203;9306](https://github.com/astral-sh/ruff/pull/9306)) ### [`v0.1.9`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#019) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.1.8...v0.1.9) ##### Breaking changes - Add site-packages to default exclusions ([#&#8203;9188](https://github.com/astral-sh/ruff/pull/9188)) ##### Preview features - Fix: Avoid parenthesizing subscript targets and values ([#&#8203;9209](https://github.com/astral-sh/ruff/pull/9209)) - \[`pylint`] Implement `too-many-locals` (`PLR0914`) ([#&#8203;9163](https://github.com/astral-sh/ruff/pull/9163)) - Implement `reimplemented_operator` (FURB118) ([#&#8203;9171](https://github.com/astral-sh/ruff/pull/9171)) - Add a rule to detect string members in runtime-evaluated unions ([#&#8203;9143](https://github.com/astral-sh/ruff/pull/9143)) - Implement `no_blank_line_before_class_docstring` preview style ([#&#8203;9154](https://github.com/astral-sh/ruff/pull/9154)) ##### Rule changes - `CONSTANT_CASE` variables are improperly flagged for yoda violation (`SIM300`) ([#&#8203;9164](https://github.com/astral-sh/ruff/pull/9164)) - \[`flake8-pyi`] Cover ParamSpecs and TypeVarTuples (`PYI018`) ([#&#8203;9198](https://github.com/astral-sh/ruff/pull/9198)) - \[`flake8-bugbear`] Add fix for `zip-without-explicit-strict` (`B905`) ([#&#8203;9176](https://github.com/astral-sh/ruff/pull/9176)) - Add fix to automatically remove `print` and `pprint` statements (`T201`, `T203`) ([#&#8203;9208](https://github.com/astral-sh/ruff/pull/9208)) - Prefer `Never` to `NoReturn` in auto-typing in Python >= 3.11 (`ANN201`) ([#&#8203;9213](https://github.com/astral-sh/ruff/pull/9213)) ##### Formatter - `can_omit_optional_parentheses`: Exit early for unparenthesized expressions ([#&#8203;9125](https://github.com/astral-sh/ruff/pull/9125)) - Fix `dynamic` mode with doctests so that it doesn't exceed configured line width ([#&#8203;9129](https://github.com/astral-sh/ruff/pull/9129)) - Fix `can_omit_optional_parentheses` for expressions with a right most fstring ([#&#8203;9124](https://github.com/astral-sh/ruff/pull/9124)) - Add `target_version` to formatter options ([#&#8203;9220](https://github.com/astral-sh/ruff/pull/9220)) ##### CLI - Update `ruff format --check` to display message for already formatted files ([#&#8203;9153](https://github.com/astral-sh/ruff/pull/9153)) ##### Bug fixes - Reverse order of arguments for `operator.contains` ([#&#8203;9192](https://github.com/astral-sh/ruff/pull/9192)) - Iterate over lambdas in deferred type annotations ([#&#8203;9175](https://github.com/astral-sh/ruff/pull/9175)) - Fix panic in `D208` with multibyte indent ([#&#8203;9147](https://github.com/astral-sh/ruff/pull/9147)) - Add support for `NoReturn` in auto-return-typing ([#&#8203;9206](https://github.com/astral-sh/ruff/pull/9206)) - Allow removal of `typing` from `exempt-modules` ([#&#8203;9214](https://github.com/astral-sh/ruff/pull/9214)) - Avoid `mutable-class-default` violations for Pydantic subclasses ([#&#8203;9187](https://github.com/astral-sh/ruff/pull/9187)) - Fix dropped union expressions for piped non-types in `PYI055` autofix ([#&#8203;9161](https://github.com/astral-sh/ruff/pull/9161)) - Enable annotation quoting for multi-line expressions ([#&#8203;9142](https://github.com/astral-sh/ruff/pull/9142)) - Deduplicate edits when quoting annotations ([#&#8203;9140](https://github.com/astral-sh/ruff/pull/9140)) - Prevent invalid utf8 indexing in cell magic detection ([#&#8203;9146](https://github.com/astral-sh/ruff/pull/9146)) - Avoid nested quotations in auto-quoting fix ([#&#8203;9168](https://github.com/astral-sh/ruff/pull/9168)) - Add base-class inheritance detection to flake8-django rules ([#&#8203;9151](https://github.com/astral-sh/ruff/pull/9151)) - Avoid `asyncio-dangling-task` violations on shadowed bindings ([#&#8203;9215](https://github.com/astral-sh/ruff/pull/9215)) ##### Documentation - Fix blog post URL in changelog ([#&#8203;9119](https://github.com/astral-sh/ruff/pull/9119)) - Add error suppression hint for multi-line strings ([#&#8203;9205](https://github.com/astral-sh/ruff/pull/9205)) - Fix typo in SemanticModel.parent_expression docstring ([#&#8203;9167](https://github.com/astral-sh/ruff/pull/9167)) - Document link between import sorting and formatter ([#&#8203;9117](https://github.com/astral-sh/ruff/pull/9117)) ### [`v0.1.8`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#018) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.1.7...v0.1.8) This release includes opt-in support for formatting Python snippets within docstrings via the `docstring-code-format` setting. [Check out the blog post](https://astral.sh/blog/ruff-v0.1.8) for more details! ##### Preview features - Add `"preserve"` quote-style to mimic Black's skip-string-normalization ([#&#8203;8822](https://github.com/astral-sh/ruff/pull/8822)) - Implement `prefer_splitting_right_hand_side_of_assignments` preview style ([#&#8203;8943](https://github.com/astral-sh/ruff/pull/8943)) - \[`pycodestyle`] Add fix for `unexpected-spaces-around-keyword-parameter-equals` ([#&#8203;9072](https://github.com/astral-sh/ruff/pull/9072)) - \[`pycodestyle`] Add fix for comment-related whitespace rules ([#&#8203;9075](https://github.com/astral-sh/ruff/pull/9075)) - \[`pycodestyle`] Allow `sys.path` modifications between imports ([#&#8203;9047](https://github.com/astral-sh/ruff/pull/9047)) - \[`refurb`] Implement `hashlib-digest-hex` (`FURB181`) ([#&#8203;9077](https://github.com/astral-sh/ruff/pull/9077)) ##### Rule changes - Allow `flake8-type-checking` rules to automatically quote runtime-evaluated references ([#&#8203;6001](https://github.com/astral-sh/ruff/pull/6001)) - Allow transparent cell magics in Jupyter Notebooks ([#&#8203;8911](https://github.com/astral-sh/ruff/pull/8911)) - \[`flake8-annotations`] Avoid `ANN2xx` fixes for abstract methods with empty bodies ([#&#8203;9034](https://github.com/astral-sh/ruff/pull/9034)) - \[`flake8-self`] Ignore underscore references in type annotations ([#&#8203;9036](https://github.com/astral-sh/ruff/pull/9036)) - \[`pep8-naming`] Allow class names when `apps.get_model` is a non-string ([#&#8203;9065](https://github.com/astral-sh/ruff/pull/9065)) - \[`pycodestyle`] Allow `matplotlib.use` calls to intersperse imports ([#&#8203;9094](https://github.com/astral-sh/ruff/pull/9094)) - \[`pyflakes`] Support fixing unused assignments in tuples by renaming variables (`F841`) ([#&#8203;9107](https://github.com/astral-sh/ruff/pull/9107)) - \[`pylint`] Add fix for `subprocess-run-without-check` (`PLW1510`) ([#&#8203;6708](https://github.com/astral-sh/ruff/pull/6708)) ##### Formatter - Add `docstring-code-format` knob to enable docstring snippet formatting ([#&#8203;8854](https://github.com/astral-sh/ruff/pull/8854)) - Use double quotes for all docstrings, including single-quoted docstrings ([#&#8203;9020](https://github.com/astral-sh/ruff/pull/9020)) - Implement "dynamic" line width mode for docstring code formatting ([#&#8203;9098](https://github.com/astral-sh/ruff/pull/9098)) - Support reformatting Markdown code blocks ([#&#8203;9030](https://github.com/astral-sh/ruff/pull/9030)) - add support for formatting reStructuredText code snippets ([#&#8203;9003](https://github.com/astral-sh/ruff/pull/9003)) - Avoid trailing comma for single-argument with positional separator ([#&#8203;9076](https://github.com/astral-sh/ruff/pull/9076)) - Fix handling of trailing target comment ([#&#8203;9051](https://github.com/astral-sh/ruff/pull/9051)) ##### CLI - Hide unsafe fix suggestions when explicitly disabled ([#&#8203;9095](https://github.com/astral-sh/ruff/pull/9095)) - Add SARIF support to `--output-format` ([#&#8203;9078](https://github.com/astral-sh/ruff/pull/9078)) ##### Bug fixes - Apply unnecessary index rule prior to enumerate rewrite ([#&#8203;9012](https://github.com/astral-sh/ruff/pull/9012)) - \[`flake8-err-msg`] Allow `EM` fixes even if `msg` variable is defined ([#&#8203;9059](https://github.com/astral-sh/ruff/pull/9059)) - \[`flake8-pie`] Prevent keyword arguments duplication ([#&#8203;8450](https://github.com/astral-sh/ruff/pull/8450)) - \[`flake8-pie`] Respect trailing comma in `unnecessary-dict-kwargs` (`PIE804`) ([#&#8203;9015](https://github.com/astral-sh/ruff/pull/9015)) - \[`flake8-raise`] Avoid removing parentheses on ctypes.WinError ([#&#8203;9027](https://github.com/astral-sh/ruff/pull/9027)) - \[`isort`] Avoid invalid combination of `force-sort-within-types` and `lines-between-types` ([#&#8203;9041](https://github.com/astral-sh/ruff/pull/9041)) - \[`isort`] Ensure that from-style imports are always ordered first in `__future__` ([#&#8203;9039](https://github.com/astral-sh/ruff/pull/9039)) - \[`pycodestyle`] Allow tab indentation before keyword ([#&#8203;9099](https://github.com/astral-sh/ruff/pull/9099)) - \[`pylint`] Ignore `@overrides` and `@overloads` for `too-many-positional` ([#&#8203;9000](https://github.com/astral-sh/ruff/pull/9000)) - \[`pyupgrade`] Enable `printf-string-formatting` fix with comments on right-hand side ([#&#8203;9037](https://github.com/astral-sh/ruff/pull/9037)) - \[`refurb`] Make `math-constant` (`FURB152`) rule more targeted ([#&#8203;9054](https://github.com/astral-sh/ruff/pull/9054)) - \[`refurb`] Support floating-point base in `redundant-log-base` (`FURB163`) ([#&#8203;9100](https://github.com/astral-sh/ruff/pull/9100)) - \[`ruff`] Detect `unused-asyncio-dangling-task` (`RUF006`) on unused assignments ([#&#8203;9060](https://github.com/astral-sh/ruff/pull/9060)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xODcuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE5NC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
renovate-bot added the
renovate
label 2024-02-14 20:15:17 +01:00
renovate-bot added 1 commit 2024-02-14 20:15:17 +01:00
build and publish / build-pypackage (pull_request) Successful in 17s Details
check code / check-code (pull_request) Successful in 17s Details
c5533d2575
Update dependency ruff to v0.2.1
renovate-bot changed title from Update dependency ruff to v0.2.1 to Update dependency ruff to v0.2.2 2024-02-18 08:16:02 +01:00
renovate-bot force-pushed renovate/ruff-0.x from c5533d2575 to 9c2c17e30f 2024-02-18 08:16:02 +01:00 Compare
renovate-bot changed title from Update dependency ruff to v0.2.2 to Update dependency ruff to v0.2.2 - autoclosed 2024-02-21 20:16:24 +01:00
renovate-bot closed this pull request 2024-02-21 20:16:24 +01:00
All checks were successful
build and publish / build-pypackage (pull_request) Successful in 16s
check code / check-code (pull_request) Successful in 22s

Pull request closed

Sign in to join this conversation.
No reviewers
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: olofvndrhr/octodns-netbox-dns#5
No description provided.