chore(deps): update dependency ruff to ^0.1.0
This MR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
ruff (source, changelog) | dev | minor |
^0.0.285 -> ^0.1.0
|
Release Notes
astral-sh/ruff (ruff)
v0.1.7
Preview features
- Implement multiline dictionary and list hugging for preview style (#8293)
- Implement the
fix_power_op_line_length
preview style (#8947) - Use Python version to determine typing rewrite safety (#8919)
- [
flake8-annotations
] Enable auto-return-type involvingOptional
andUnion
annotations (#8885) - [
flake8-bandit
] Implementdjango-raw-sql
(S611
) (#8651) - [
flake8-bandit
] Implementtarfile-unsafe-members
(S202
) (#8829) - [
flake8-pyi
] Implement fix forunnecessary-literal-union
(PYI030
) (#7934) - [
flake8-simplify
] Extenddict-get-with-none-default
(SIM910
) to non-literals (#8762) - [
pylint
] - addunnecessary-list-index-lookup
(PLR1736
) + autofix (#7999) - [
pylint
] - implement R0202 and R0203 with autofixes (#8335) - [
pylint
] Implementrepeated-keyword
(PLe1132
) (#8706) - [
pylint
] Implementtoo-many-positional
(PLR0917
) (#8995) - [
pylint
] Implementunnecessary-dict-index-lookup
(PLR1733
) (#8036) - [
refurb
] Implementredundant-log-base
(FURB163
) (#8842)
Rule changes
- [
flake8-boolean-trap
] Allow booleans in@override
methods (#8882) - [
flake8-bugbear
] AvoidB015
,B018
for last expression in a cell (#8815) - [
flake8-pie
] Allow ellipses for enum values in stub files (#8825) - [
flake8-pyi
] Check PEP 695 type aliases forsnake-case-type-alias
andt-suffixed-type-alias
(#8966) - [
flake8-pyi
] Check for kwarg and varargNoReturn
type annotations (#8948) - [
flake8-simplify
] Omit select context managers fromSIM117
(#8801) - [
pep8-naming
] Allow Django model loads innon-lowercase-variable-in-function
(N806
) (#8917) - [
pycodestyle
] AvoidE703
for last expression in a cell (#8821) - [
pycodestyle
] UpdateE402
to work at cell level for notebooks (#8872) - [
pydocstyle
] AvoidD100
for Jupyter Notebooks (#8816) - [
pylint
] Implement fix forunspecified-encoding
(PLW1514
) (#8928)
Formatter
- Avoid unstable formatting in ellipsis-only body with trailing comment (#8984)
- Inline trailing comments for type alias similar to assignments (#8941)
- Insert trailing comma when function breaks with single argument (#8921)
CLI
- Update
ruff check
andruff format
to default to the current directory (#8791) - Stop at the first resolved parent configuration (#8864)
Configuration
- [
pylint
] Defaultmax-positional-args
tomax-args
(#8998) - [
pylint
] Addallow-dunder-method-names
setting forbad-dunder-method-name
(PLW3201
) (#8812) - [
isort
] Add support forfrom-first
setting (#8663) - [
isort
] Add support forlength-sort
settings (#8841)
Bug fixes
- Add support for
@functools.singledispatch
(#8934) - Avoid off-by-one error in stripping noqa following multi-byte char (#8979)
- Avoid off-by-one error in with-item named expressions (#8915)
- Avoid syntax error via invalid ur string prefix (#8971)
- Avoid underflow in
get_model
matching (#8965) - Avoid unnecessary index diagnostics when value is modified (#8970)
- Convert over-indentation rule to use number of characters (#8983)
- Detect implicit returns in auto-return-types (#8952)
- Fix start >= end error in over-indentation (#8982)
- Ignore
@overload
and@override
methods for too-many-arguments checks (#8954) - Lexer start of line is false only for
Mode::Expression
(#8880) - Mark
pydantic_settings.BaseSettings
as having default copy semantics (#8793) - Respect dictionary unpacking in
NamedTuple
assignments (#8810) - Respect local subclasses in
flake8-type-checking
(#8768) - Support type alias statements in simple statement positions (#8916)
- [
flake8-annotations
] Avoid filtering out un-representable types in return annotation (#8881) - [
flake8-pie
] Retain extra ellipses in protocols and abstract methods (#8769) - [
flake8-pyi
] Respect local enum subclasses insimple-defaults
(PYI052
) (#8767) - [
flake8-trio
] Use correct range forTRIO115
fix (#8933) - [
flake8-trio
] Use full arguments range for zero-sleep-call (#8936) - [
isort
] fix: mark__main__
as first-party import (#8805) - [
pep8-naming
] AvoidN806
errors for type alias statements (#8785) - [
perflint
] AvoidPERF101
if there's an append in loop body (#8809) - [
pycodestyle
] Allow space-before-colon after end-of-slice (#8838) - [
pydocstyle
] Avoid non-character breaks inover-indentation
(D208
) (#8866) - [
pydocstyle
] Ignore underlines when determining docstring logical lines (#8929) - [
pylint
] Extendself-assigning-variable
to multi-target assignments (#8839) - [
tryceratops
] Avoid repeated triggers in nestedtryceratops
diagnostics (#8772)
Documentation
- Add advice for fixing RUF008 when mutability is not desired (#8853)
- Added the command to run ruff using pkgx to the installation.md (#8955)
- Document fix safety for flake8-comprehensions and some pyupgrade rules (#8918)
- Fix doc formatting for zero-sleep-call (#8937)
- Remove duplicate imports from os-stat documentation (#8930)
- Replace generated reference to MkDocs (#8806)
- Update Arch Linux package URL in installation.md (#8802)
- [
flake8-pyi
] Fix error int-suffixed-type-alias
(PYI043
) example (#8963) - [
flake8-pyi
] Improve motivation forcustom-type-var-return-type
(PYI019
) (#8766)
v0.1.6
Preview features
- [
flake8-boolean-trap
] Extendboolean-type-hint-positional-argument
(FBT001
) to include booleans in unions (#7501) - [
flake8-pie
] Extendreimplemented-list-builtin
(PIE807
) todict
reimplementations (#8608) - [
flake8-pie
] Extendunnecessary-pass
(PIE790
) to include ellipses (...
) (#8641) - [
flake8-pie
] Implement fix forunnecessary-spread
(PIE800
) (#8668) - [
flake8-quotes
] Implementunnecessary-escaped-quote
(Q004
) (#8630) - [
pycodestyle
] Implement fix formultiple-spaces-after-keyword
(E271
) andmultiple-spaces-before-keyword
(E272
) (#8622) - [
pycodestyle
] Implement fix formultiple-spaces-after-operator
(E222
) andmultiple-spaces-before-operator
(E221
) (#8623) - [
pyflakes
] Extendis-literal
(F632
) to include comparisons against mutable initializers (#8607) - [
pylint
] Implementredefined-argument-from-local
(PLR1704
) (#8159) - [
pylint
] Implement fix forunnecessary-lambda
(PLW0108
) (#8621) - [
refurb
] Implementif-expr-min-max
(FURB136
) (#8664) - [
refurb
] Implementmath-constant
(FURB152
) (#8727)
Rule changes
- [
flake8-annotations
] Add autotyping-like return type inference for annotation rules (#8643) - [
flake8-future-annotations
] Implement fix forfuture-required-type-annotation
(FA102
) (#8711) - [
flake8-implicit-namespace-package
] Avoid missing namespace violations in scripts with shebangs (#8710) - [
pydocstyle
] Updateover-indentation
(D208
) to preserve indentation offsets when fixing overindented lines (#8699) - [
pyupgrade
] Refinetimeout-error-alias
(UP041
) to remove false positives (#8587)
Formatter
- Fix instability in
await
formatting with fluent style (#8676) - Compare formatted and unformatted ASTs during formatter tests (#8624)
- Preserve trailing semicolon for Notebooks (#8590)
CLI
- Improve debug printing for resolving origin of config settings (#8729)
- Write unchanged, excluded files to stdout when read via stdin (#8596)
Configuration
- [
isort
] Support disabling sections withno-sections = true
(#8657) - [
pep8-naming
] Support local and dynamic class- and static-method decorators (#8592) - [
pydocstyle
] Allow overriding pydocstyle convention rules (#8586)
Bug fixes
- Avoid syntax error via importing
trio.lowlevel
(#8730) - Omit unrolled augmented assignments in
PIE794
(#8634) - Slice source code instead of generating it for
EM
fixes (#7746) - Allow whitespace around colon in slices for
whitespace-before-punctuation
(E203
) (#8654) - Use function range for
no-self-use
(#8637) - F-strings doesn't contain bytes literal for
PLW0129
(#8675) - Improve detection of
TYPE_CHECKING
blocks imported fromtyping_extensions
or_typeshed
(#8429) - Treat display as a builtin in IPython (#8707)
- Avoid
FURB113
autofix if comments are present (#8494) - Consider the new f-string tokens for
flake8-commas
(#8582) - Remove erroneous bad-dunder-name reference (#8742)
- Avoid recommending Self usages in metaclasses (#8639)
- Detect runtime-evaluated base classes defined in the current file (#8572)
- Avoid inserting trailing commas within f-strings (#8574)
- Remove incorrect deprecation label for stdout and stderr (#8743)
- Fix unnecessary parentheses in UP007 fix (#8610)
- Remove repeated and erroneous scoped settings headers in docs (#8670)
- Trim trailing empty strings when converting to f-strings (#8712)
- Fix ordering for
force-sort-within-sections
(#8665) - Run unicode prefix rule over tokens (#8709)
- Update UP032 to unescape curly braces in literal parts of converted strings (#8697)
- List all ipython builtins (#8719)
Documentation
- Document conventions in the FAQ (#8638)
- Redirect from rule codes to rule pages in docs (#8636)
- Fix permalink to convention setting (#8575)
v0.1.5
Preview features
- [
flake8-bandit
] Implementmako-templates
(S702
) (#8533) - [
flake8-trio
] ImplementTRIO105
(#8490) - [
flake8-trio
] ImplementTRIO109
(#8534) - [
flake8-trio
] ImplementTRIO110
(#8537) - [
flake8-trio
] ImplementTRIO115
(#8486) - [
refurb
] Implementtype-none-comparison
(FURB169
) (#8487) - Flag all comparisons against builtin types in
E721
(#8491) - Make
SIM118
fix as safe when the expression is a known dictionary (#8525)
Formatter
- Fix multiline lambda expression statement formatting (#8466)
CLI
- Add hidden
--extension
to override inference of source type from file extension (#8373)
Configuration
- Account for selector specificity when merging
extend_unsafe_fixes
andoverride extend_safe_fixes
(#8444) - Add support for disabling cache with
RUFF_NO_CACHE
environment variable (#8538)
Bug fixes
- [
E721
] Flag comparisons tomemoryview
(#8485) - Allow collapsed-ellipsis bodies in other statements (#8499)
- Avoid
D301
autofix foru
prefixed strings (#8495) - Only flag
flake8-trio
rules whentrio
import is present (#8550) - Reject more syntactically invalid Python programs (#8524)
- Avoid raising
TRIO115
violations fortrio.sleep(...)
calls with non-number values (#8532) - Fix
F841
false negative on assignment to multiple variables (#8489)
Documentation
- Fix link to isort
known-first-party
(#8562) - Add notes on fix safety to a few rules (#8500)
- Add missing toml config tabs (#8512)
- Add instructions for configuration of Emacs (#8488)
- Improve detail link contrast in dark mode (#8548)
- Fix typo in example (#8506)
- Added tabs for configuration files in the documentation (#8480)
- Recommend
project.requires-python
overtarget-version
(#8513) - Add singleton escape hatch to
B008
documentation (#8501) - Fix tab configuration docs (#8502)
v0.1.4
Preview features
- [
flake8-trio
] Implementtimeout-without-await
(TRIO001
) (#8439) - [
numpy
] Implement NumPy 2.0 migration rule (NPY200
) (#7702) - [
pylint
] Implementbad-open-mode
(W1501
) (#8294) - [
pylint
] Implementimport-outside-toplevel
(C0415
) rule (#5180) - [
pylint
] Implementuseless-with-lock
(W2101
) (#8321) - [
pyupgrade
] Implementtimeout-error-alias
(UP041
) (#8476) - [
refurb
] Implementisinstance-type-none
(FURB168
) (#8308) - Detect confusable Unicode-to-Unicode units in
RUF001
,RUF002
, andRUF003
(#4430) - Add newline after module docstrings in preview style (#8283)
Formatter
- Add a note on line-too-long to the formatter docs (#8314)
- Preserve trailing statement semicolons when using
fmt: skip
(#8273) - Preserve trailing semicolons when using
fmt: off
(#8275) - Avoid duplicating linter-formatter compatibility warnings (#8292)
- Avoid inserting a newline after function docstrings (#8375)
- Insert newline between docstring and following own line comment (#8216)
- Split tuples in return positions by comma first (#8280)
- Avoid treating byte strings as docstrings (#8350)
- Add
--line-length
option toformat
command (#8363) - Avoid parenthesizing unsplittable because of comments (#8431)
CLI
- Add
--output-format
toruff rule
andruff linter
(#8203)
Bug fixes
- Respect
--force-exclude
inlint.exclude
andformat.exclude
(#8393) - Respect
--extend-per-file-ignores
on the CLI (#8329) - Extend
bad-dunder-method-name
to permit__index__
(#8300) - Fix panic with 8 in octal escape (#8356)
- Avoid raising
D300
when both triple quote styles are present (#8462) - Consider unterminated f-strings in
FStringRanges
(#8154) - Avoid including literal
shell=True
for truthy, non-True
diagnostics (#8359) - Avoid triggering single-element test for starred expressions (#8433)
- Detect and ignore Jupyter automagics (#8398)
- Fix invalid E231 error with f-strings (#8369)
- Avoid triggering
NamedTuple
rewrite with starred annotation (#8434) - Avoid un-setting bracket flag in logical lines (#8380)
- Place 'r' prefix before 'f' for raw format strings (#8464)
- Remove trailing periods from NumPy 2.0 code actions (#8475)
- Fix bug where
PLE1307
was raised when formatting%c
with characters (#8407) - Remove unicode flag from comparable (#8440)
- Improve B015 message (#8295)
- Use
fixedOverflowWidgets
for playground popover (#8458) - Mark
byte_bounds
as a non-backwards-compatible NumPy 2.0 change (#8474)
Internals
- Add a dedicated cache directory per Ruff version (#8333)
- Allow selective caching for
--fix
and--diff
(#8316) - Improve performance of comment parsing (#8193)
- Improve performance of string parsing (#8227)
- Use a dedicated sort key for isort import sorting (#7963)
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
andFalse
(#8189) - Avoid sorting all paths in the format command (#8181)
- Insert necessary blank line between class and leading comments (#8224)
- Avoid introducing new parentheses in annotated assignments (#8233)
- Refine the warnings about incompatible linter options (#8196)
- Add test and basic implementation for formatter preview mode (#8044)
- Refine warning about incompatible
isort
settings (#8192) - Only omit optional parentheses for starting or ending with parentheses (#8238)
- Use source type to determine parser mode for formatting (#8205)
- Don't warn about magic trailing comma when
isort.force-single-line
is true (#8244) - Use
SourceKind::diff
for formatter (#8240) - Fix
fmt:off
with trailing child comment (#8234) - Formatter parentheses support for
IpyEscapeCommand
(#8207)
Linter
- [
pylint
] Add buffer methods tobad-dunder-method-name
(PLW3201
) exclusions (#8190) - Match rule prefixes from
external
codes setting inunused-noqa
(#8177) - Use
line-length
setting for isort in lieu ofpycodestyle.max-line-length
(#8235) - Update fix for
unnecessary-paren-on-raise-exception
to unsafe for unknown types (#8231) - Correct quick fix message for
W605
(#8255)
Documentation
- Fix typo in max-doc-length documentation (#8201)
- Improve documentation around linter-formatter conflicts (#8257)
- Fix link to error suppression documentation in
unused-noqa
(#8172) - Add
external
option tounused-noqa
documentation (#8171) - Add title attribute to icons (#8060)
- Clarify unsafe case in RSE102 (#8256)
- Fix skipping formatting examples (#8210)
- docs: fix name of
magic-trailing-comma
option in README (#8200) - Add note about scope of rule changing in versioning policy (#8169)
- Document: Fix default lint rules (#8218)
- Fix a wrong setting in configuration.md (#8186)
- Fix misspelled TOML headers in the tutorial (#8209)
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 and read the docs.
Preview features
- [
pylint
] Implementnon-ascii-module-import
(C2403
) (#8056) - [
pylint
] implementnon-ascii-name
(C2401
) (#8038) - [
pylint
] Implement unnecessary-lambda (W0108) (#7953) - [
refurb
] Implementread-whole-file
(FURB101
) (#7682) - Add fix for
E223
,E224
, andE242
(#8143) - Add fix for
E225
,E226
,E227
, andE228
(#8136) - Add fix for
E252
(#8142) - Add fix for
E261
(#8114) - Add fix for
E273
andE274
(#8144) - Add fix for
E275
(#8133) - Update
SIM401
to catch ternary operations (#7415) - Update
E721
to allowis
andis
not for direct type comparisons (#7905)
Rule changes
- Add
backports.strenum
todeprecated-imports
(#8113) - Update
SIM112
to ignorehttps_proxy
,http_proxy
, andno_proxy
(#8140) - Update fix for
literal-membership
(PLR6201
) to be unsafe (#8097) - Update fix for
mutable-argument-defaults
(B006
) to be unsafe (#8108)
Formatter
- Change
line-ending
default toauto
(#8057) - Respect parenthesized generators in
has_own_parentheses
(#8100) - Add caching to formatter (#8089)
- Remove
--line-length
option fromformat
command (#8131) - Add formatter to
line-length
documentation (#8150) - Warn about incompatible formatter options (#8088)
- Fix range of unparenthesized tuple subject in match statement (#8101)
- Remove experimental formatter warning (#8148)
- Don't move type param opening parenthesis comment (#8163)
- Update versions in format benchmark script (#8110)
- Avoid loading files for cached format results (#8134)
CLI
- Show the
ruff format
command in help menus (#8167) - Add
ruff version
command with long version display (#8034)
Configuration
- New
pycodestyle.max-line-length
option (#8039)
Bug fixes
- Detect
sys.version_info
slices inoutdated-version-block
(#8112) - Avoid if-else simplification for
TYPE_CHECKING
blocks (#8072) - Avoid false-positive print separator diagnostic with starred argument (#8079)
Documentation
- Fix message for
too-many-arguments
lint (#8092) - Fix
extend-unsafe-fixes
andextend-safe-fixes
example (#8139) - Add links to
flake8-import-conventions
options (#8115) - Rework the documentation to incorporate the Ruff formatter (#7732)
- Fix
Options
JSON schema description (#8081) - Fix typo (
pytext
->pytest
) (#8117) - Improve
magic-value-comparison
example in docs (#8111)
v0.1.1
Rule changes
- Add unsafe fix for
escape-sequence-in-docstring
(D301
) (#7970)
Configuration
- Respect
#(deprecated)
attribute in configuration options (#8035) - Add
[format|lint].exclude
options (#8000) - Respect
tab-size
setting in formatter (#8006) - Add
lint.preview
(#8002)
Preview features
- [
pylint
] Implementliteral-membership
(PLR6201
) (#7973) - [
pylint
] Implementtoo-many-boolean-expressions
(PLR0916
) (#7975) - [
pylint
] Implementmisplaced-bare-raise
(E0704
) (#7961) - [
pylint
] Implementglobal-at-module-level
(W0604
) (#8058) - [
pylint
] Implementunspecified-encoding
(PLW1514
) (#7939) - Add fix for
triple-single-quotes
(D300
) (#7967)
Formatter
- New code style badge for
ruff format
(#7878) - Fix comments outside expression parentheses (#7873)
- Add
--target-version
toruff format
(#8055) - Skip over parentheses when detecting
in
keyword (#8054) - Add
--diff
option toruff format
(#7937) - Insert newline after nested function or class statements (#7946)
- Use
pass
over ellipsis in non-function/class contexts (#8049)
Bug fixes
- Lazily evaluate all PEP 695 type alias values (#8033)
- Avoid failed assertion when showing fixes from stdin (#8029)
- Avoid flagging HTTP and HTTPS literals in urllib-open (#8046)
- Avoid flagging
bad-dunder-method-name
for_
(#8015) - Remove Python 2-only methods from
URLOpen
audit (#8047) - Use set bracket replacement for
iteration-over-set
to preserve whitespace and comments (#8001)
Documentation
- Update tutorial to match revised Ruff defaults (#8066)
- Update rule
B005
docs (#8028) - Update GitHub actions example in docs to use
--output-format
(#8014) - Document
lint.preview
andformat.preview
(#8032) - Clarify that new rules should be added to
RuleGroup::Preview
. (#7989)
v0.1.0
This is the first release which uses the CHANGELOG
file. See GitHub Releases for prior changelog entries.
Read Ruff's new versioning policy.
Breaking changes
- Unsafe fixes are no longer displayed or applied without opt-in (#7769)
- Drop formatting specific rules from the default set (#7900)
- The deprecated
format
setting has been removed (#7984)- The
format
setting cannot be used to configure the output format, useoutput-format
instead - The
RUFF_FORMAT
environment variable is ignored, useRUFF_OUTPUT_FORMAT
instead - The
--format
option has been removed fromruff check
, use--output-format
instead
- The
Rule changes
- Extend
reimplemented-starmap
(FURB140
) to catch calls with a single and starred argument (#7768) - Improve cases covered by
RUF015
(#7848) - Update
SIM15
to allowopen
followed byclose
(#7916) - Respect
msgspec.Struct
default-copy semantics inRUF012
(#7786) - Add
sqlalchemy
methods to `flake8-boolean-trap`` exclusion list (#7874) - Add fix for
PLR1714
(#7910) - Add fix for
PIE804
(#7884) - Add fix for
PLC0208
(#7887) - Add fix for
PYI055
(#7886) - Update
non-pep695-type-alias
to require--unsafe-fixes
outside of stub files (#7836) - Improve fix message for
UP018
(#7913) - Update
PLW3201
to supportEnum
sunder names (#7987)
Preview features
- Only show warnings for empty preview selectors when enabling rules (#7842)
- Add
unnecessary-key-check
to simplifykey in dct and dct[key]
todct.get(key)
(#7895) - Add
assignment-in-assert
to prevent walrus expressions in assert statements (#7856) - [
refurb
] Addsingle-item-membership-test
(FURB171
) (#7815) - [
pylint
] Addand-or-ternary
(R1706
) (#7811)
New rules are added in preview.
Configuration
- Add
unsafe-fixes
setting (#7769) - Add
extend-safe-fixes
andextend-unsafe-fixes
for promoting and demoting fixes (#7841)
CLI
- Added
--unsafe-fixes
option for opt-in to display and apply unsafe fixes (#7769) - Fix use of deprecated
--format
option in warning (#7837) - Show changed files when running under
--check
(#7788) - Write summary messages to stderr when fixing via stdin instead of omitting them (#7838)
- Update fix summary message in
check --diff
to include unsafe fix hints (#7790) - Add notebook
cell
field to JSON output format (#7664) - Rename applicability levels to
Safe
,Unsafe
, andDisplay
(#7843)
Bug fixes
- Fix bug where f-strings were allowed in match pattern literal (#7857)
- Fix
SIM110
with a yield in the condition (#7801) - Preserve trailing comments in
C414
fixes (#7775) - Check sequence type before triggering
unnecessary-enumerate
len
suggestion (#7781) - Use correct start location for class/function clause header (#7802)
- Fix incorrect fixes for
SIM101
(#7798) - Format comment before parameter default correctly (#7870)
- Fix
E251
false positive inside f-strings (#7894) - Allow bindings to be created and referenced within annotations (#7885)
- Show per-cell diffs when analyzing notebooks over
stdin
(#7789) - Avoid curly brace escape in f-string format spec (#7780)
- Fix lexing single-quoted f-string with multi-line format spec (#7787)
- Consider nursery rules to be in-preview for
ruff rule
(#7812) - Report precise location for invalid conversion flag (#7809)
- Visit pattern match guard as a boolean test (#7911)
- Respect
--unfixable
inISC
rules (#7917) - Fix edge case with
PIE804
(#7922) - Show custom message in
PTH118
forPath.joinpath
with starred arguments (#7852) - Fix false negative in
outdated-version-block
when using greater than comparisons (#7920) - Avoid converting f-strings within Django
gettext
calls (#7898) - Fix false positive in
PLR6301
(#7933) - Treat type aliases as typing-only expressions e.g. resolves false positive in
TCH004
(#7968) - Resolve
cache-dir
relative to project root (#7962) - Respect subscripted base classes in type-checking rules e.g. resolves false positive in
TCH003
(#7954) - Fix JSON schema limit for
line-length
(#7883) - Fix commented-out
coalesce
keyword (#7876)
Documentation
- Document
reimplemented-starmap
performance effects (#7846) - Default to following the system dark/light mode (#7888)
- Add documentation for fixes (#7901)
- Fix typo in docs of
PLR6301
(#7831) - Update
UP038
docs to note that it results in slower code (#7872) - crlf -> cr-lf (#7766)
- Add an example of an unsafe fix (#7924)
- Fix documented examples for
unnecessary-subscript-reversal
(#7774) - Correct error in tuple example in ruff formatter docs (#7822)
- Add versioning policy to documentation (#7923)
- Fix invalid code in
FURB177
example (#7832)
Formatter
- Less scary
ruff format
message (#7867) - Remove spaces from import statements (#7859)
- Formatter quoting for f-strings with triple quotes (#7826)
- Update
ruff_python_formatter
generate.py comment (#7850) - Document one-call chaining deviation (#7767)
- Allow f-string modifications in line-shrinking cases (#7818)
- Add trailing comment deviation to README (#7827)
- Add trailing zero between dot and exponential (#7956)
- Force parentheses for power operations in unary expressions (#7955)
Playground
- Fix playground
Quick Fix
action (#7824)
v0.0.292
What's Changed
Highlights
This release includes full support for Python 3.12 (out now!), including the new type parameter (PEP 695) and f-string syntaxes (PEP 701).
PEP 701 lifts many of the restrictions on f-strings that existed in the past, allowing for arbitrarily nested f-strings, consistent quote style within f-strings, and more, all of which are now supported by Ruff (thanks to @dhruvmanila in 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). -
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). 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
] Implementprint-empty-string
(FURB105
) by @tjkuson in https://github.com/astral-sh/ruff/pull/7617 - [
flake8-bandit
] Implementweak-cryptographic-key
(S505
) by @mkniewallner in https://github.com/astral-sh/ruff/pull/7703 - [
refurb
] Implementimplicit-cwd
(FURB177
) by @danparizher in https://github.com/astral-sh/ruff/pull/7704 -
unnecessary-pass
(PIE790
) now flags all unnecessarypass
statements; previously, the rule only flaggedpass
statements that followed a docstring in a two-statement body (see: https://github.com/astral-sh/ruff/pull/7697).
Settings
- Add
lint
section to Ruff configuration by @MichaReiser in https://github.com/astral-sh/ruff/pull/7549 - Add
explicit-preview-rules
to toggle explicit selection of preview rules by @zanieb in https://github.com/astral-sh/ruff/pull/7390 - Decrease PEP 593 error to a debug warning by @charliermarsh in https://github.com/astral-sh/ruff/pull/7745
- Write full Jupyter notebook to
stdout
by @charliermarsh in https://github.com/astral-sh/ruff/pull/7748 - Extend
unnecessary-pass
(PIE790
) to trigger on all unnecessarypass
statements by @tjkuson in https://github.com/astral-sh/ruff/pull/7697
Bug Fixes
- Ignore blank lines between comments when counting newlines-after-imports by @charliermarsh in https://github.com/astral-sh/ruff/pull/7607
- Avoid reordering mixed-indent-level comments after branches by @charliermarsh in https://github.com/astral-sh/ruff/pull/7609
- Avoid flagging B009 and B010 on starred expressions by @charliermarsh in https://github.com/astral-sh/ruff/pull/7621
- Use deletion for D215 full-line removals by @charliermarsh in https://github.com/astral-sh/ruff/pull/7625
- Avoid searching for bracketed comments in unparenthesized generators by @charliermarsh in https://github.com/astral-sh/ruff/pull/7627
- Update return type for
PT022
autofix by @dhruvmanila in https://github.com/astral-sh/ruff/pull/7613 - Flag FURB105 with starred kwargs by @charliermarsh in https://github.com/astral-sh/ruff/pull/7630
- Don't suggest replacing
builtin.open()
withPath.open()
if the latter doesn't support all options by @konstin in https://github.com/astral-sh/ruff/pull/7637 - Use 1-based cell indices consistently for Notebooks by @dhruvmanila in https://github.com/astral-sh/ruff/pull/7662
- Add
Expr::Name
checks to rules which useis_logger_candidate
by @qdegraaf in https://github.com/astral-sh/ruff/pull/7521 - Ensure that B006 autofixes are inserted after imports by @Hoxbro in https://github.com/astral-sh/ruff/pull/7629
- Allow named expressions in
__all__
assignments by @charliermarsh in https://github.com/astral-sh/ruff/pull/7673 - Include radix base prefix in large number representation by @charliermarsh in https://github.com/astral-sh/ruff/pull/7700
- Parenthesize multi-line attributes in B009 by @charliermarsh in https://github.com/astral-sh/ruff/pull/7701
- Insert necessary padding in B014 fixes by @charliermarsh in https://github.com/astral-sh/ruff/pull/7699
- fix(rules): improve S507 detection by @mkniewallner in https://github.com/astral-sh/ruff/pull/7661
- Ignore TODO tags in
commented-out-code
by @tjkuson in https://github.com/astral-sh/ruff/pull/7523 - Track fix isolation in
unnecessary-pass
by @charliermarsh in https://github.com/astral-sh/ruff/pull/7715 - Use fixed source code for parser context by @charliermarsh in https://github.com/astral-sh/ruff/pull/7717
- Preserve parentheses in
quadratic-list-summation
by @charliermarsh in https://github.com/astral-sh/ruff/pull/7719 - Compute
NotebookIndex
forDiagnostics
on stdin by @dhruvmanila in https://github.com/astral-sh/ruff/pull/7663 - Perform insertions before replacements by @charliermarsh in https://github.com/astral-sh/ruff/pull/7739
- Skip all bracketed expressions when locating comparison ops by @charliermarsh in https://github.com/astral-sh/ruff/pull/7740
- Fix PLE251 rules with f-string escaping by @konstin in https://github.com/astral-sh/ruff/pull/7741
- Skip BOM when inserting start-of-file imports by @charliermarsh in https://github.com/astral-sh/ruff/pull/7622
- Emit
LexError
for dedent to incorrect level by @MichaReiser in https://github.com/astral-sh/ruff/pull/7638 - Expand
DeprecatedLogWarn
to check forExpr::Atrribute
calls by @qdegraaf in https://github.com/astral-sh/ruff/pull/7677
Other Changes
- Add support for PEP 701 by @dhruvmanila in https://github.com/astral-sh/ruff/pull/7376
- Improve performance of
commented-out-code
(~50-80%) by @charliermarsh in https://github.com/astral-sh/ruff/pull/7706
New Contributors
- @bluthej made their first contribution in https://github.com/astral-sh/ruff/pull/7665
- @Hoxbro made their first contribution in https://github.com/astral-sh/ruff/pull/7629
- @danparizher made their first contribution in https://github.com/astral-sh/ruff/pull/7704
- @aspizu made their first contribution in https://github.com/astral-sh/ruff/pull/7750
Full Changelog: https://github.com/astral-sh/ruff/compare/v0.0.291...v0.0.292
v0.0.291
What's Changed
Deprecations
The format
command-line argument and configuration option has been renamed to output-format
. While Ruff will continue to respect format
when passed as a command-line argument or configuration option, this backwards-compatible support will be dropped in a future release. See: https://github.com/astral-sh/ruff/pull/7514.
Rules
- [
flake8-bandit
] ImplementS201
:flask-debug-true
by @mkniewallner in https://github.com/astral-sh/ruff/pull/7503 - [
flake8-bandit
] ImplementS507
:ssh_no_host_key_verification
by @mkniewallner in https://github.com/astral-sh/ruff/pull/7528 - [
flake8-logging
] ImplementLOG002
:invalid-get-logger-argument
by @dhruvmanila in https://github.com/astral-sh/ruff/pull/7399 - [
flake8-logging
] ImplementLOG007
:exception-without-exc-info
by @qdegraaf in https://github.com/astral-sh/ruff/pull/7410 - [
refurb
] ImplementFURB140
:reimplemented-starmap
by @SavchenkoValeriy in https://github.com/astral-sh/ruff/pull/7253 - [
refurb
] ImplementFURB148
:unnecessary-enumerate
by @tjkuson in https://github.com/astral-sh/ruff/pull/7454 - [
ruff
] Detectasyncio.get_running_loop
calls in RUF006 by @charliermarsh in https://github.com/astral-sh/ruff/pull/7562
Settings
- Show
--no-X
variants in CLI help by @charliermarsh in https://github.com/astral-sh/ruff/pull/7504 - Rename
format
option tooutput-format
by @MichaReiser in https://github.com/astral-sh/ruff/pull/7514 - Enable tab completion for
ruff rule
by @charliermarsh in https://github.com/astral-sh/ruff/pull/7560
Bug Fixes
- Add padding to prevent some autofix errors by @charliermarsh in https://github.com/astral-sh/ruff/pull/7461
- Remove parentheses when rewriting assert calls to statements by @charliermarsh in https://github.com/astral-sh/ruff/pull/7464
- Avoid flagging starred elements in C402 by @charliermarsh in https://github.com/astral-sh/ruff/pull/7466
- Extend
bad-dunder-method-name
to permitattrs
dunders by @tjkuson in https://github.com/astral-sh/ruff/pull/7472 - Avoid N802 violations for @overload methods by @JonathanPlasse in https://github.com/astral-sh/ruff/pull/7498
- Avoid flagging starred expressions in UP007 by @charliermarsh in https://github.com/astral-sh/ruff/pull/7505
- Ensure that LOG007 only triggers on
.exception()
calls by @charliermarsh in https://github.com/astral-sh/ruff/pull/7524 - Use strict sorted and union for NoQA mapping insertion by @dhruvmanila in https://github.com/astral-sh/ruff/pull/7531
- Avoid inserting imports directly after continuation by @charliermarsh in https://github.com/astral-sh/ruff/pull/7553
- Add padding in
PERF102
fixes by @charliermarsh in https://github.com/astral-sh/ruff/pull/7554 - Avoid invalid fix for parenthesized values in F601 by @charliermarsh in https://github.com/astral-sh/ruff/pull/7559
- Treat
os.error
as anOSError
alias by @charliermarsh in https://github.com/astral-sh/ruff/pull/7582 - Extend
bad-dunder-method-name
to permit__html__
by @jaap3 in https://github.com/astral-sh/ruff/pull/7492 - Fix stylist indentation with a formfeed by @konstin in https://github.com/astral-sh/ruff/pull/7489
New Contributors
- @MicaelJarniac made their first contribution in https://github.com/astral-sh/ruff/pull/5498
- @maheshsaripalli9 made their first contribution in https://github.com/astral-sh/ruff/pull/7552
- @T-256 made their first contribution in https://github.com/astral-sh/ruff/pull/7585
Full Changelog: https://github.com/astral-sh/ruff/compare/v0.0.290...v0.0.291
v0.0.290
What's Changed
Rules
- Update
deprecated-import
lists based on recenttyping-extensions
release by @charliermarsh in https://github.com/astral-sh/ruff/pull/7356 - Add support for bounds, constraints, and explicit variance on generic type variables to
UP040
by @nathanwhit in https://github.com/astral-sh/ruff/pull/6749
Settings
- Show rule codes in shell tab completion by @charliermarsh in https://github.com/astral-sh/ruff/pull/7375
Bug Fixes
- Parenthesize single-generator arguments when adding reverse keyword by @charliermarsh in https://github.com/astral-sh/ruff/pull/7365
- Invert reverse argument regardless of whether it's a boolean by @charliermarsh in https://github.com/astral-sh/ruff/pull/7372
- Extend
C416
to catch tuple unpacking by @charliermarsh in https://github.com/astral-sh/ruff/pull/7363 - Allow
NURSERY
rule selctor in JSON Schema by @charliermarsh in https://github.com/astral-sh/ruff/pull/7374 - Avoid flagging single-quoted docstrings with continuations for multi-line rules by @charliermarsh in https://github.com/astral-sh/ruff/pull/7392
- Treat whitespace-only line as blank for
D411
by @charliermarsh in https://github.com/astral-sh/ruff/pull/7351
Preview
- [
flake8-logging
] New ruleundocumented-warn
(LOG009
) by @qdegraaf in https://github.com/astral-sh/ruff/pull/7249 - [
flake8-logging
] New ruledirect-logger-instantiation
(LOG001
) by @charliermarsh in https://github.com/astral-sh/ruff/pull/7397 - [
flake8-logging
] New pluginflake8_logging
(LOG
) by @qdegraaf in https://github.com/astral-sh/ruff/pull/7249 - [
perflint
] Addmanual-dict-comprehsion
(PERF403
) by @qdegraaf in https://github.com/astral-sh/ruff/pull/6132 - [
pylint
] New ruletoo-many-public-methods
(PLR0904
) by @jelly in https://github.com/astral-sh/ruff/pull/6179 - [
refurb
] New ruleno-slice-copy
(FURB145
) by @tjkuson in https://github.com/astral-sh/ruff/pull/7007 - Add warnings for nursery and preview rule selection by @zanieb in https://github.com/astral-sh/ruff/pull/7210
- Remove the
PREVIEW
rule selector by @zanieb in https://github.com/astral-sh/ruff/pull/7389 -
pre-commit
support for the alpha formatter by @zanieb in https://github.com/astral-sh/ruff-pre-commit/pull/50
New Contributors
- @nathanwhit made their first contribution in https://github.com/astral-sh/ruff/pull/6749
Full Changelog: https://github.com/astral-sh/ruff/compare/v0.0.289...v0.0.290
v0.0.289
What's Changed
Bug Fixes
- Invert condition for < and <= in outdated version block by @charliermarsh in https://github.com/astral-sh/ruff/pull/7284
- Ignore
@override
method when enforcingbad-dunder-name
rule by @brendonh8 in https://github.com/astral-sh/ruff/pull/7224 - Add
NotebookIndex
to the cache by @dhruvmanila in https://github.com/astral-sh/ruff/pull/6863
Preview
This release includes a new preview mode which can be used to opt-in to unstable rules and features.
- Update rule selection to respect preview mode by @zanieb in https://github.com/astral-sh/ruff/pull/7195
- Display the
--preview
option in the CLI help menu by @zanieb in https://github.com/astral-sh/ruff/pull/7274
See the documentation and versioning discussion for more details.
New Contributors
- @brendonh8 made their first contribution in https://github.com/astral-sh/ruff/pull/7224
Full Changelog: https://github.com/astral-sh/ruff/compare/v0.0.288...v0.0.289
v0.0.288
What's Changed
Breaking Changes
- Remove emoji identifier support by @MichaReiser in https://github.com/astral-sh/ruff/pull/7212
- Location agnostic GitLab fingerprints by @gregersn in https://github.com/astral-sh/ruff/pull/7203
Rules
- [
ruff
]-
RUF001
: Remove autofix for ambiguous unicode rule by @charliermarsh in https://github.com/astral-sh/ruff/pull/7168
-
Settings
- [
flake8-self
]-
SLF001
: Addextend-ignore-names
option by @jaap3 in https://github.com/astral-sh/ruff/pull/7194
-
Bug Fixes
- [
flake8-bugbear
]-
B006
: Add newline if fix is at end-of-file by @charliermarsh in https://github.com/astral-sh/ruff/pull/7090 -
B006
: Fix function docstring followed by whitespace but no newline by @zanieb in https://github.com/astral-sh/ruff/pull/7160 -
B009
: Parenthesize expressions when converting to attribute access by @charliermarsh in https://github.com/astral-sh/ruff/pull/7091 -
B009
,B010
: Fixgetattr
calls onint
literals by @density in https://github.com/astral-sh/ruff/pull/7057 -
B013
: Supported starred exceptions in length-one tuple detection by @charliermarsh in https://github.com/astral-sh/ruff/pull/7080 -
B013
: Insert required space when fixing by @charliermarsh in https://github.com/astral-sh/ruff/pull/7148
-
- [
flake8-comprehensions
]-
C402
: Add required space when fixing by @charliermarsh in https://github.com/astral-sh/ruff/pull/7152 -
C404
Add required space when fixing by @charliermarsh in https://github.com/astral-sh/ruff/pull/7185 -
C416
Add required space to fix by @charliermarsh in https://github.com/astral-sh/ruff/pull/7204 -
C417
: Support length-2 lists in dictionary comprehension rewrites by @charliermarsh in https://github.com/astral-sh/ruff/pull/7081 -
C417
: Parenthesize targets if necessary by @charliermarsh in https://github.com/astral-sh/ruff/pull/7189
-
- [
flake8-return
]-
RET504
: Add space after return when inlining number by @charliermarsh in https://github.com/astral-sh/ruff/pull/7116
-
- [
flake8-simplify
]-
SIM105
: Avoid attempting to fix violations with multi-statement lines by @charliermarsh in https://github.com/astral-sh/ruff/pull/7191 -
SIM105
Avoid inserting an extra newline for fixes by @charliermarsh in https://github.com/astral-sh/ruff/pull/7221 -
SIM118
: Add required space when fixing by @charliermarsh in https://github.com/astral-sh/ruff/pull/7150 -
SIM118
: delete.keys()
rather than replace expression by @charliermarsh in https://github.com/astral-sh/ruff/pull/7223 -
SIM210
: Retain parentheses when fixing by @charliermarsh in https://github.com/astral-sh/ruff/pull/7118 -
SIM222
: Add parentheses when simplifying conditions by @charliermarsh in https://github.com/astral-sh/ruff/pull/7117 -
SIM300
: Add required space when fixing by @charliermarsh in https://github.com/astral-sh/ruff/pull/7167
-
- [
flake8-pytest-style
]-
PT018
: Split withinnot
, rather than outside ofnot
by @charliermarsh in https://github.com/astral-sh/ruff/pull/7151
-
- [
flynt
]-
FLY002
: Add required space for fixes by @charliermarsh in https://github.com/astral-sh/ruff/pull/7222
-
- [
numpy
]-
NPY001
: Avoid attempting to fix with overridden builtins by @charliermarsh in https://github.com/astral-sh/ruff/pull/7187 -
NPY003
: Use symbol import for replacement by @charliermarsh in https://github.com/astral-sh/ruff/pull/7083
-
- [
pandas-vet
]-
PD002
: Handle parenthesized calls by @charliermarsh in https://github.com/astral-sh/ruff/pull/7111
-
- [
pep8-naming
]-
N806
: Avoid triggering onTypeAlias
assignments by @charliermarsh in https://github.com/astral-sh/ruff/pull/7119
-
- [
pydocstyle
]-
D204
: Fix when there's a semicolon after a docstring by @konstin in https://github.com/astral-sh/ruff/pull/7174 -
D213
,D400
: Ignore single quote docstrings with newline escape by @konstin in https://github.com/astral-sh/ruff/pull/7173 -
D417
: Fix error with function docstrings with dashed lines by @eronnen in https://github.com/astral-sh/ruff/pull/7251
-
- [
pyflakes
]-
F401
: Avoid panic with noqa import name by @charliermarsh in https://github.com/astral-sh/ruff/pull/7260 -
F841
: Expand fixes to handle parenthesized targets by @charliermarsh in https://github.com/astral-sh/ruff/pull/7110
-
- [
pylint
]-
PLW3301
: Copy the starred argument as is for autofix by @dhruvmanila in https://github.com/astral-sh/ruff/pull/7177
-
- [
pyupgrade
]-
UP006
andUP007
: Add required space to fixes by @charliermarsh in https://github.com/astral-sh/ruff/pull/7202 -
UP007
: Avoid attempting to fix invalidOptional
annotations by @charliermarsh in https://github.com/astral-sh/ruff/pull/7079 -
UP007
: Fix syntax error in autofix by @charliermarsh in https://github.com/astral-sh/ruff/pull/7137 -
UP021
: Avoid adding duplicatetext
keyword tosubprocess.run
by @charliermarsh in https://github.com/astral-sh/ruff/pull/7112 -
UP022
: Avoid adding duplicatecapture_output
keyword tosubprocess.run
by @charliermarsh in https://github.com/astral-sh/ruff/pull/7113 -
UP028
: Support parenthesized expressions by @charliermarsh in https://github.com/astral-sh/ruff/pull/7114 -
UP022
: Avoid fixing whencapture_output
is provided by @charliermarsh in https://github.com/astral-sh/ruff/pull/7149 -
UP024
: Add required space when fixing by @charliermarsh in https://github.com/astral-sh/ruff/pull/7171
-
- [
ruff
]-
RUF017
: Avoid duplicate fixes for multi-import imports by @charliermarsh in https://github.com/astral-sh/ruff/pull/7063
-
- Fix named expression precedence in generator by @charliermarsh in https://github.com/astral-sh/ruff/pull/7170
- Fix precedence of annotated assignments in generator by @charliermarsh in https://github.com/astral-sh/ruff/pull/7115
- Update identifier Unicode character validation to match Python spec by @LaBatata101 in https://github.com/astral-sh/ruff/pull/7209
Other Changes
- Added argfile test and documentation by @njgrisafi in https://github.com/astral-sh/ruff/pull/7138
New Contributors
- @oliviacrain made their first contribution in https://github.com/astral-sh/ruff/pull/7093
- @dalgarno made their first contribution in https://github.com/astral-sh/ruff/pull/7108
- @manmartgarc made their first contribution in https://github.com/astral-sh/ruff/pull/7179
- @jaap3 made their first contribution in https://github.com/astral-sh/ruff/pull/7194
- @gregersn made their first contribution in https://github.com/astral-sh/ruff/pull/7203
- @eronnen made their first contribution in https://github.com/astral-sh/ruff/pull/7251
Full Changelog: https://github.com/astral-sh/ruff/compare/v0.0.287...v0.0.288
v0.0.287
What's Changed
Rules
- [refurb] Implement preview
repeated-append
rule (FURB113
) by @SavchenkoValeriy in https://github.com/astral-sh/ruff/pull/6702 - [refurb] Implement preview
delete-full-slice
rule (FURB131
) by @SavchenkoValeriy in https://github.com/astral-sh/ruff/pull/6897 - [refurb] Implement preview
check-and-remove-from-set
rule (FURB132
) by @SavchenkoValeriy in https://github.com/astral-sh/ruff/pull/6904
Bug Fixes
- Expand
PERF401
andPERF402
with type checks by @qdegraaf in https://github.com/astral-sh/ruff/pull/6994 - Insert space to avoid syntax error in RSE fixes by @charliermarsh in https://github.com/astral-sh/ruff/pull/6886
- Avoid PEP 604 upgrades that lead to invalid syntax by @charliermarsh in https://github.com/astral-sh/ruff/pull/6888
- Fix ranges for global usages by @charliermarsh in https://github.com/astral-sh/ruff/pull/6917
- Avoid invalid fix for C417 with separate keys and values by @charliermarsh in https://github.com/astral-sh/ruff/pull/6954
- Avoid panic when
typename
is provided as a keyword argument by @charliermarsh in https://github.com/astral-sh/ruff/pull/6955 - Improve compatibility between multi-statement PYI rules by @charliermarsh in https://github.com/astral-sh/ruff/pull/7024
- Fixed panic in
missing_copyright_notice
by @WindowGenerator in https://github.com/astral-sh/ruff/pull/7029 - Avoid lexer infinite loop on invalid input by @dhruvmanila in https://github.com/astral-sh/ruff/pull/6937
- Fix
WithItem
ranges for parenthesized, non-as
items by @charliermarsh in https://github.com/astral-sh/ruff/pull/6782
New Contributors
- @SavchenkoValeriy made their first contribution in https://github.com/astral-sh/ruff/pull/6702
- @Anselmoo made their first contribution in https://github.com/astral-sh/ruff/pull/6986
- @njgrisafi made their first contribution in https://github.com/astral-sh/ruff/pull/7032
- @WindowGenerator made their first contribution in https://github.com/astral-sh/ruff/pull/7029
Full Changelog: https://github.com/astral-sh/ruff/compare/v0.0.286...v0.0.287
v0.0.286
What's Changed
New Rules
- [
flake8-bugbear
] Updatefunction-call-in-argument-default
(B008
) to ignore arguments with immutable annotations by @zanieb in https://github.com/astral-sh/ruff/pull/6784 - [
flake8-bugbear
] Updatemutable-argument-default
(B006
) to useextend-immutable-calls
when determining if annotations are immutable by @zanieb in https://github.com/astral-sh/ruff/pull/6781 - [
flake8-pie
] Implementunnecessary-range-start
(PIE808
) by @harupy in https://github.com/astral-sh/ruff/pull/6690 - [
flake8-pytest-style
] Add autofix forPT014
by @harupy in https://github.com/astral-sh/ruff/pull/6698 - [
pylint
] Implementno-self-use
(R6301
) by @LaBatata101 in https://github.com/astral-sh/ruff/pull/6574 - [
pylint
] Extendrepeated-equality-comparison-target
to check for mixed orderings and Yoda conditions. by @tjkuson in https://github.com/astral-sh/ruff/pull/6691
Settings
- Make isort's
detect-same-package
behavior configurable by @charliermarsh in https://github.com/astral-sh/ruff/pull/6833
Bug Fixes
- Apply RUF017 when start is passed via position by @hauntsaninja in https://github.com/astral-sh/ruff/pull/6664
- Use
typing_extensions.TypeAlias
for PYI026 fixes on pre-3.10 by @charliermarsh in https://github.com/astral-sh/ruff/pull/6696 - Ignore multi-comparisons in
repeated-equality-comparison-target
by @charliermarsh in https://github.com/astral-sh/ruff/pull/6705 - Accept empty inner calls in C414 by @charliermarsh in https://github.com/astral-sh/ruff/pull/6725
- Allow next in FBT exclusions by @charliermarsh in https://github.com/astral-sh/ruff/pull/6729
- Allow
ctypes.WinError()
in flake8-raise by @charliermarsh in https://github.com/astral-sh/ruff/pull/6731 - Ignore star imports when importing symbols in fixes by @charliermarsh in https://github.com/astral-sh/ruff/pull/6743
- Support C419 autofixes for set comprehensions by @charliermarsh in https://github.com/astral-sh/ruff/pull/6744
- Avoid attempting to fix unconventional submodule imports by @charliermarsh in https://github.com/astral-sh/ruff/pull/6745
- Don't trigger
eq-without-hash
when__hash__
is explicitly set toNone
by @LaBatata101 in https://github.com/astral-sh/ruff/pull/6739 - Avoid E231 if comma is at end-of-line by @charliermarsh in https://github.com/astral-sh/ruff/pull/6747
- Truncate some messages in diagnostics by @charliermarsh in https://github.com/astral-sh/ruff/pull/6748
- Fix isolation groups for unused imports by @charliermarsh in https://github.com/astral-sh/ruff/pull/6774
- Avoid fixing D200 for docstrings that end in escapes by @charliermarsh in https://github.com/astral-sh/ruff/pull/6779
- Parenthesize expressions prior to LibCST parsing by @charliermarsh in https://github.com/astral-sh/ruff/pull/6742
- Fallback to end-of-file if ends in trailing continuation by @charliermarsh in https://github.com/astral-sh/ruff/pull/6789
- Confine repeated-equality-comparison-target to names and attributes by @charliermarsh in https://github.com/astral-sh/ruff/pull/6802
- Fix
native-literals
handling of int literal with attribute access by @zanieb in https://github.com/astral-sh/ruff/pull/6792 - Fix
uncessary-coding-comment
fix when there's leading content by @zanieb in https://github.com/astral-sh/ruff/pull/6775 - Avoid attempting to fix PT018 in multi-statement lines by @charliermarsh in https://github.com/astral-sh/ruff/pull/6829
- Update ERA100 to apply to commented dictionary items with trailing comments by @zanieb in https://github.com/astral-sh/ruff/pull/6822
- Avoid parsing other parts of a format specification if replacements are present by @zanieb in https://github.com/astral-sh/ruff/pull/6858
- Avoid panic in unused arguments rule for parameter-free lambda by @charliermarsh in https://github.com/astral-sh/ruff/pull/6679
- Avoid
C417
forlambda
with default and variadic parameters by @dhruvmanila in https://github.com/astral-sh/ruff/pull/6752 - Add
networkx
to conventional aliases by @zanieb in https://github.com/astral-sh/ruff/pull/6778 - Skip serializing cell ID if it's None by @harupy in https://github.com/astral-sh/ruff/pull/6851
- fix is_raw_string for multiple prefixes by @davidszotten in https://github.com/astral-sh/ruff/pull/6865
- Add jupyter notebook cell ids in 4.5+ if missing by @konstin in https://github.com/astral-sh/ruff/pull/6853
Full Changelog: https://github.com/astral-sh/ruff/compare/v0.0.285...v0.0.286
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.