Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Created by
brew bump
Created with
brew bump-formula-pr
.release notes
stdlib-module-shadowing
(A005
).This rule has also been renamed: previously, it was called
builtin-module-shadowing
.builtin-lambda-argument-shadowing
(A006
)slice-to-remove-prefix-or-suffix
(FURB188
)boolean-chained-comparison
(PLR1716
)decimal-from-float-literal
(RUF032
)post-init-default
(RUF033
)useless-if-else
(RUF034
)The following behaviors have been stabilized:
pytest-parametrize-names-wrong-type
(PT006
): Detectpytest.parametrize
calls outside decorators and calls with keyword arguments.module-import-not-at-top-of-file
(E402
): Ignorepytest.importorskip
calls between import statements.mutable-dataclass-default
(RUF008
) andfunction-call-in-dataclass-default-argument
(RUF009
): Add support forattrs
.bad-version-info-comparison
(PYI006
): Extend the rule to check non-stub files.The following fixes or improvements to fixes have been stabilized:
redundant-numeric-union
(PYI041
)duplicate-union-members
(PYI016
)Formatter
This release introduces the new 2025 stable style (#13371), stabilizing the following changes:
ISC001
incompatibility warning (#15123)assert
message over breaking the assertion expression (#9457)if
guards inmatch
case
clauses (#13513)match
case
patterns (#6933)if
keyword for comprehensions where the condition has a leading comment (#12282)with
statements with a single context manager for Python 3.8 or older (#10276)max-doc-code-line-length = "dynamic"
(#13523)Preview features
flake8-bugbear
] Implementclass-as-data-structure
(B903
) (#9601)flake8-type-checking
] Applyquoted-type-alias
more eagerly inTYPE_CHECKING
blocks and ignore it in stubs (TC008
) (#15180)pylint
] Ignoreeq-without-hash
in stub files (PLW1641
) (#15310)pyupgrade
] SplitUP007
into two individual rules:UP007
forUnion
andUP045
forOptional
(UP007
,UP045
) (#15313)ruff
] New rule that detects classes that are both an enum and adataclass
(RUF049
) (#15299)ruff
] RecodeRUF025
toRUF037
(RUF037
) (#15258)Rule changes
flake8-builtins
] Ignorestdlib-module-shadowing
in stub files(A005
) (#15350)flake8-return
] Add support for functions returningtyping.Never
(RET503
) (#15298)Server
logLevel
server settingwhich defaults to
info
. This addresses the issue where users were notified about an error and told to consult the log, but it didn’t contain any messages. (#15232)CLI
--config key=value
when thekey
is for a table and it’s a simplevalue
Bug fixes
eradicate
] Ignore metadata blocks directly followed by normal blocks (ERA001
) (#15330)flake8-django
] Recognize other magic methods (DJ012
) (#15365)pycodestyle
] Avoid false positives related to type aliases (E252
) (#15356)pydocstyle
] Avoid treating newline-separated sections as sub-sections (D405
) (#15311)pyflakes
] Remove call when removing final argument fromformat
(F523
) (#15309)refurb
] Mark fix as unsafe when the right-hand side is a string (FURB171
) (#15273)ruff
] Treat)
as a regex metacharacter (RUF043
,RUF055
) (#15318)ruff
] Parenthesize theint
-call argument when removing theint
call would change semantics (RUF046
) (#15277)Contributors
Install ruff 0.9.0
Install prebuilt binaries via shell script
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/ruff/releases/download/0.9.0/ruff-installer.ps1 | iex"
Download ruff 0.9.0