chore(deps): update dependency ruff to ~0.9.0 #329
Merged
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.
This PR contains the following updates:
~0.8.0->~0.9.0Release Notes
astral-sh/ruff (ruff)
v0.9.0Compare Source
Check out the blog post for a migration guide and overview of the changes!
Breaking changes
Ruff now formats your code according to the 2025 style guide. As a result, your code might now get formatted differently. See the formatter section for a detailed list of changes.
This release doesn’t remove or remap any existing stable rules.
Stabilization
The following rules have been stabilized and are no longer in preview:
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.parametrizecalls outside decorators and calls with keyword arguments.module-import-not-at-top-of-file(E402): Ignorepytest.importorskipcalls 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:
ISC001incompatibility warning (#15123)assertmessage over breaking the assertion expression (#9457)ifguards inmatchcaseclauses (#13513)matchcasepatterns (#6933)ifkeyword for comprehensions where the condition has a leading comment (#12282)withstatements 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-aliasmore eagerly inTYPE_CHECKINGblocks and ignore it in stubs (TC008) (#15180)pylint] Ignoreeq-without-hashin stub files (PLW1641) (#15310)pyupgrade] SplitUP007into two individual rules:UP007forUnionandUP045forOptional(UP007,UP045) (#15313)ruff] New rule that detects classes that are both an enum and adataclass(RUF049) (#15299)ruff] RecodeRUF025toRUF037(RUF037) (#15258)Rule changes
flake8-builtins] Ignorestdlib-module-shadowingin stub files(A005) (#15350)flake8-return] Add support for functions returningtyping.Never(RET503) (#15298)Server
logLevelserver 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=valuewhen thekeyis for a table and it’s a simplevalueBug 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 theintcall would change semantics (RUF046) (#15277)v0.8.6Compare Source
Preview features
format]: Preserve multiline implicit concatenated strings in docstring positions (#15126)ruff] Add rule to detect empty literal in deque call (RUF025) (#15104)ruff] Avoid reporting whenndigitsis possibly negative (RUF057) (#15234)Rule changes
flake8-todos] remove issue code length restriction (TD003) (#15175)pyflakes] Ignore errors in@no_type_checkstring annotations (F722,F821) (#15215)CLI
--verbose(#15237)Bug fixes
ruff] Avoid syntax error when removing int over multiple lines (RUF046) (#15230)pyupgrade] Revert "Add all PEP-585 names toUP006rule" (#15250)v0.8.5Compare Source
Preview features
airflow] Extend names moved from core to provider (AIR303) (#15145, #15159, #15196, #15216)airflow] Extend rule to check class attributes, methods, arguments (AIR302) (#15054, #15083)fastapi] UpdateFAST002to check keyword-only arguments (#15119)flake8-type-checking] DisableTC006andTC007in stub files (#15179)pylint] Detect nested methods correctly (PLW1641) (#15032)ruff] Detect more strict-integer expressions (RUF046) (#14833)ruff] Implementfalsy-dict-get-fallback(RUF056) (#15160)ruff] Implementunnecessary-round(RUF057) (#14828)Rule changes
TypedDictkeys as non-type-expressions (#15073)flake8-comprehensions] SkipC416if comprehension contains unpacking (#14909)flake8-pie] Allowcast(SomeType, ...)(PIE796) (#15141)flake8-simplify] More precise inference for dictionaries (SIM300) (#15164)flake8-use-pathlib] Catch redundant joins inPTH201and avoid syntax errors (#15177)pycodestyle] Preserve original value format (E731) (#15097)pydocstyle] Split on first whitespace character (D403) (#15082)pyupgrade] Add all PEP-585 names toUP006rule (#5454)Configuration
flake8-type-checking] Improve flexibility ofruntime-evaluated-decorators(#15204)pydocstyle] Add setting to ignore missing documentation for*argsand**kwargsparameters (D417) (#15210)ruff] Add an allowlist forunsafe-markup-use(RUF035) (#15076)Bug fixes
TypeCheckerfor detectingfastapiroutes (#15093)pycodestyle] Avoid false positives and negatives related to type parameter default syntax (E225,E251) (#15214)Documentation
shebang-not-executable(EXE001) and add git+windows solution to executable bit (#15208)Configuration
📅 Schedule: Branch creation - "before 7am every weekday" (UTC), 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.
This PR was generated by Mend Renovate. View the repository job log.