Repository navigation
chore(deps): update ruff to v0.17.1 - #121
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
August 2, 2024 19:34
39b6b33 to
db74b93
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
August 8, 2024 16:35
db74b93 to
7bd3f1e
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
August 15, 2024 14:05
7bd3f1e to
fd4bb15
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
August 16, 2024 18:09
fd4bb15 to
7a1cd6b
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
August 22, 2024 16:38
7a1cd6b to
d080e4c
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
2 times, most recently
from
August 29, 2024 17:30
531db50 to
2d7c66d
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
September 5, 2024 19:04
2d7c66d to
9e086f6
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
September 13, 2024 16:54
9e086f6 to
5d11202
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
September 20, 2024 04:25
5d11202 to
312b495
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
September 21, 2024 18:14
312b495 to
f3dae42
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
September 26, 2024 13:56
f3dae42 to
c9ab781
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
October 4, 2024 16:19
c9ab781 to
a2d1c41
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
October 6, 2024 00:34
a2d1c41 to
7ecbb23
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
2 times, most recently
from
October 17, 2024 16:59
9d87af0 to
8b887b4
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
October 17, 2024 20:49
8b887b4 to
b9f6c59
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
November 22, 2024 11:45
3667def to
93054b0
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
November 29, 2024 06:30
93054b0 to
aebe151
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
December 5, 2024 17:21
aebe151 to
3a64fe0
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
December 12, 2024 18:04
3a64fe0 to
e69d8e9
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
December 19, 2024 16:52
e69d8e9 to
fb3d259
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
December 20, 2024 19:20
fb3d259 to
b224df1
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
2 times, most recently
from
January 2, 2025 13:47
953264f to
d41550d
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
January 4, 2025 13:02
d41550d to
319340d
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
January 9, 2025 15:10
319340d to
222b3f1
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
January 10, 2025 22:46
222b3f1 to
ca304b6
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
January 16, 2025 18:22
ca304b6 to
fcfd0ab
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
February 2, 2025 06:46
fcfd0ab to
d7304aa
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
February 6, 2025 20:41
d7304aa to
b955737
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
February 10, 2025 14:06
b955737 to
2f2ee00
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
February 20, 2025 15:31
2f2ee00 to
451b9e8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
v0.5.0→v0.17.1==0.5.0→==0.17.1Note: The
pre-commitmanager in Renovate is not supported by thepre-commitmaintainers or community. Please do not report any problems there, instead create a Discussion in the Renovate repository if you have any questions.Release Notes
charliermarsh/ruff-pre-commit
v0.17.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.17.1
v0.17.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.17.0
v0.16.10Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.10
v0.16.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.9
v0.16.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.8
v0.16.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.7
v0.16.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.6
v0.16.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.5
v0.16.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.4
v0.16.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.3
v0.16.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.2
v0.16.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.1
v0.16.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.0
v0.15.22Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.22
v0.15.21Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.21
v0.15.20Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.20
v0.15.19Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.19
v0.15.18Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.18
v0.15.17Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.17
v0.15.16Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.16
v0.15.15Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.15
v0.15.14Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.14
v0.15.13Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.13
v0.15.12Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.12
v0.15.11Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.11
v0.15.10Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.10
v0.15.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.9
v0.15.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.8
v0.15.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.7
v0.15.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.6
v0.15.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.5
v0.15.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.4
v0.15.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.3
v0.15.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.2
v0.15.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.1
v0.15.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.0
v0.14.14Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.14
v0.14.13Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.13
v0.14.12Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.12
v0.14.11Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.11
v0.14.10Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.10
v0.14.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.9
v0.14.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.8
v0.14.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.7
v0.14.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.6
v0.14.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.5
v0.14.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.4
v0.14.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.3
v0.14.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.2
v0.14.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.1
v0.14.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.0
v0.13.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.13.3
v0.13.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.13.2
v0.13.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.13.1
v0.13.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.13.0
v0.12.12Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.12
v0.12.11Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.11
v0.12.10Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.10
v0.12.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.9
v0.12.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.8
v0.12.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.7
v0.12.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.7
Ruff's 0.12.6 release was yanked. See the linked release notes for more information.
v0.12.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.5
v0.12.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.4
v0.12.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.3
v0.12.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.2
v0.12.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.1
v0.12.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.0
v0.11.13Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.13
v0.11.12Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.12
v0.11.11Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.11
v0.11.10Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.10
v0.11.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.9
v0.11.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.8
v0.11.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.7
v0.11.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.6
v0.11.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.5
v0.11.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.4
v0.11.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.3
v0.11.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.2
v0.11.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.1
v0.11.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.0
v0.10.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.10.0
v0.9.10Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.10
v0.9.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.9
v0.9.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.8
v0.9.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.7
v0.9.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.6
v0.9.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.5
v0.9.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.4
v0.9.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.3
v0.9.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.2
v0.9.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.1
v0.9.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.0
v0.8.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.6
v0.8.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.5
v0.8.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.4
v0.8.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.3
v0.8.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.2
v0.8.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.1
v0.8.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.0
v0.7.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.7.4
v0.7.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.7.3
v0.7.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.7.2
v0.7.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.7.1
v0.7.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.7.0
v0.6.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.9
v0.6.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.8
v0.6.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.7
v0.6.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.6
v0.6.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.5
v0.6.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.4
v0.6.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.3
v0.6.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.2
v0.6.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.1
v0.6.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.0
v0.5.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.7
v0.5.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.6
v0.5.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.5
v0.5.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.4
v0.5.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.3
v0.5.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.2
v0.5.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.1
astral-sh/ruff (ruff)
v0.17.1Compare Source
Released on 2026-10-15.
Preview features
pycodestyle] Don't treatNone,True, orFalseas keywords (E271-E274) (#29322)Bug fixes
flake8-pyi] Detect legacy positional-only parameters in__new__methods (PYI063) (#28502)flake8-pyi] Fix false positives on quoted annotations (PYI036) (#29274)perflint] Avoid invalid comprehension suggestions (PERF401,PERF403) (#29366)Rule changes
collectionsandweakrefcontainers as mutable (#29213)Documentation
flake8-import-conventions] Update default and examplealiases(#29333)Contributors
v0.17.0Compare Source
Released on 2026-10-09.
The executables in our macOS and Windows release archives and
ruffwheels are now code-signed.macOS executables are signed with an Apple Developer ID certificate and notarized by Apple. Windows
executables have timestamped Authenticode signatures from Azure Artifact Signing. This enables
verification of the release publisher and binary integrity, supports publisher-based allowlisting,
and should reduce security warnings and antivirus false positives.
Breaking changes
Update the default and latest Python versions for 3.15 (#28792)
Ruff now defaults to Python 3.11 instead of 3.10 when no Python version is configured through
target-versionorrequires-python. Whenchecking for syntax errors without a configured Python version, Ruff now defaults to Python 3.15
instead of 3.14.
Update the default rule set (#28786)
Several of the
flake8-datetimezrules(
DTZ001,DTZ005,DTZ006,DTZ007,DTZ011,DTZ012, andDTZ901) are no longer enabled by default,while
undefined-local-with-nested-import-star-usage(
F406), which corresponds to a syntax error, is now enabled by default.Update Rust crate quick-junit to 0.8.0 (#27295)
JUnit output now uses a
skippedattribute instead ofdisabledon<testsuite>elements andincludes a
skippedattribute on the root<testsuites>element.[
flake8-import-conventions] Adddatetime as dtas a conventional alias (ICN001) (#28790)Support Unicode dummy variable names (#28722)
The default
lint.dummy-variable-rgxnow recognizes underscore-prefixed Unicode names, such as
_次, as dummy variables.Update to Unicode 17 (#21229, #28784)
Ruff now uses Unicode 17 data for identifier normalization and named character escapes (
"\N{...}").Always show unsafe and display-only fixes in the CLI (#27810)
The default
fulloutput format now shows unsafe fixes and suggestions requiring manual review,regardless of the
unsafe-fixessetting.Actually applying unsafe fixes still requires explicit opt-in.
Remove the Python dependency from conda-forge builds (conda-forge/ruff-feedstock#361)
The conda-forge build no longer depends on Python, now supports linux-riscv64, win-arm64, and
linux-ppc64le platforms, and now includes shell completions. However, no longer depending on
Python means that
python -m ruffandimport ruffwill no longer work. Useruffdirectly fromPATHinstead. PyPI installations and those from the standalone installer are unaffected.Remove support for ruff-lsp (#28750)
Support for
ruff-lsp, the legacy Python language server deprecated in Ruffv0.9.5, has been removed. The Ruff VS Code
extension now always uses the native language server;
ruff.nativeServeris deprecated andignored. See the migration guide.
Stabilization
The following rules have been stabilized and are no longer in preview:
lazy-import-mismatch(TID254)lazy-import-immediately-resolved(
TID255)os-path-commonprefix(RUF071)The following behaviors have been stabilized:
unsorted-imports(I001),line-too-long(E501), anddoc-line-too-long(W505) nowconsistently ignore trailing pragma comments when computing line length. This resolved several
bugs involving interactions between these rules
(#27313) but may also cause existing imports to be
reformatted and was thus classified as a breaking change.
Preview features
flake8-bugbear] Report the method name and a more precise range (B005) (#27050)refurb] Mark fix unsafe and move tosuspicious(FURB152) (#28405)ruff] Allow docstrings in strict mode (RUF067) (#28679)Bug fixes
flake8-builtins] Expand checks in class scopes (A001) (#29076)flake8-self] Allow private access onobject.__new__(cls)instances (SLF001) (#29001)flake8-tidy-imports] Skiplazy-import-mismatchin stubs (TID254) (#29095)flake8-type-checking] Add the notion of runtime-ambiguous references (#26508)flake8-type-checking] Never flag annotations in function scopes (#29183)pyflakes] Mark the fix as unsafe when it creates a docstring (F541) (#28258)pylint] Preserve trailing comments inuseless-returnfix (PLR1711) (#29180)ruff] Avoid false positive whenpytest.raisesis used in awithstatement (RUF061) (#28186)Rule changes
pyupgrade] Suggesttyping.TypeFormon Python 3.15 (UP035) (#29084)Contributors
v0.16.10Compare Source
Release Notes
Released on 2026-10-01.
Preview features
pyupgrade] Add rule for context manager iterator annotations (UP052) (#29000)Performance
Server
uv formatin untrusted workspaces (#28873)Documentation
Other changes
Contributors
Install ruff 0.16.10
Install prebuilt binaries via shell script
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ruff/releases/download/0.16.10/ruff-installer.ps1 | iex"Download ruff 0.16.10
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
You can also download the attestation from GitHub and verify against that directly:
v0.16.9Compare Source
Release Notes
Released on 2026-09-24.
Preview features
ruff] Avoid false positives for overloaded division (RUF069) (#28309)Bug fixes
flake8-bugbear] Avoid false positives for calls with keyword arguments (B009,B010,B043) (#28776)flake8-tidy-imports] Allow lazy imports to be used in deferred annotations (TID255) (#28767)Rule changes
flake8-pyi] Mention stubs in the diagnostic message (PYI002) (#28542)Documentation
flake8-annotations] Clarify thatANN401checks return types in addition to arguments (#28334)flake8-bugbear] Document type-checker interaction (B010) (#28509)flake8-comprehensions] Documentmap/generator exception behavior (C417) (#27794)ruff] Mention related isort settings (RUF022) (#28719)Contributors
Install ruff 0.16.9
Install prebuilt binaries via shell script
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ruff/releases/download/0.16.9/ruff-installer.ps1 | iex"Download ruff 0.16.9