Repository navigation
chore(pre-commit): update ruff to v0.17.0 - #151
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
2 times, most recently
from
May 31, 2024 22:52
c1840c9 to
2f12590
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
June 5, 2024 18:55
2f12590 to
36455cc
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
June 14, 2024 15:42
36455cc to
77a329c
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
June 20, 2024 18:07
77a329c to
dae2d88
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
June 20, 2024 23:24
dae2d88 to
688c299
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
June 27, 2024 19:34
688c299 to
8c93b5a
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
July 5, 2024 15:13
8c93b5a to
e4e9bb4
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #151 +/- ##
==========================================
- Coverage 82.95% 79.31% -3.65%
==========================================
Files 2 2
Lines 88 87 -1
==========================================
- Hits 73 69 -4
- Misses 15 18 +3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
July 14, 2024 16:53
e4e9bb4 to
2cdb85f
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
July 18, 2024 20:30
2cdb85f to
1043b6d
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
July 20, 2024 20:46
1043b6d to
84a86a0
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
July 25, 2024 16:33
84a86a0 to
aaefd9a
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
August 2, 2024 18:27
aaefd9a to
a19c35e
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
August 8, 2024 16:31
a19c35e to
8393639
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
August 15, 2024 14:43
8393639 to
1573613
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
September 21, 2024 20:01
631229f to
aed555e
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
September 26, 2024 12:40
aed555e to
ade1f7e
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
September 26, 2024 16:25
ade1f7e to
d1169cd
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
October 4, 2024 15:03
d1169cd to
eea0189
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
October 17, 2024 18:11
eea0189 to
cb6f2c5
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
October 17, 2024 22:38
cb6f2c5 to
933df48
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
October 24, 2024 17:02
933df48 to
55d16a1
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
November 1, 2024 16:33
55d16a1 to
4c52485
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
November 8, 2024 12:20
4c52485 to
ceea45d
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
November 15, 2024 14:21
ceea45d to
aca942d
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
November 22, 2024 11:05
aca942d to
4e98cb3
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
November 29, 2024 06:15
4e98cb3 to
870735b
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
December 5, 2024 15:19
870735b to
fe42ebe
Compare
renovate
Bot
force-pushed
the
renovate/ruff
branch
from
December 12, 2024 16:52
fe42ebe to
ac8068d
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.4.4→v0.17.0v0.17.1==0.4.4→==0.17.00.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
astral-sh/ruff-pre-commit
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
v0.5.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.0
v0.4.10Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/v0.4.10
v0.4.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/v0.4.9
v0.4.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/v0.4.8
v0.4.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/v0.4.7
v0.4.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/v0.4.6
v0.4.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/v0.4.5
astral-sh/ruff (ruff)
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