InSync
20d73dd41c
[ty] Report when a dataclass contains more than one KW_ONLY
field ( #18731 )
...
## Summary
Part of [#111 ](https://github.com/astral-sh/ty/issues/111 ).
After this change, dataclasses with two or more `KW_ONLY` field will be
reported as invalid. The duplicate fields will simply be ignored when
computing `__init__`'s signature.
## Test Plan
Markdown tests.
2025-06-19 19:42:31 -07:00
GiGaGon
50bf3fa45a
[flake8-pie
] Add fix safety section to PIE794
( #18802 )
...
<!--
Thank you for contributing to Ruff/ty! To help us out with reviewing,
please consider the following:
- Does this pull request include a summary of the change? (See below.)
- Does this pull request include a descriptive title? (Please prefix
with `[ty]` for ty pull
requests.)
- Does this pull request include references to any relevant issues?
-->
## Summary
<!-- What's the purpose of the change? What does it do, and why? -->
Part of #15584
This PR adds a fix safety section to `PIE794`
I could not track down when this rule was initially implemented/made
unsafe due how old it could be + multiple large refactors to `ruff`.
There is no comment/reasoning in the code given for the unsafety.
Here is a code example demonstrating why it should be unsafe, since
removing any of the assignments would change program behavior
[playground](https://play.ruff.rs/01004644-4259-4449-a581-5007cd59846a )
```py
class A:
x = 1
x = 2
print(x)
class B:
x = print(3)
x = print(4)
class C:
x = [1,2,3]
y = x
x = y[1]
```
## Test Plan
<!-- How was it tested? -->
N/A, no tests affected.
---------
Co-authored-by: Dylan <dylwil3@gmail.com>
2025-06-19 21:51:23 +00:00
GiGaGon
440635cbe6
[pycodestyle
] Add fix safety section to W291
and W293
( #18800 )
...
Part of #15584
This PR adds fix safety sections to `W291` and `W293`
The unsafe caveat was added in #10049
10a1d9f01e/crates/ruff_linter/src/rules/pycodestyle/rules/trailing_whitespace.rs (L92)
Code example demonstrating unsafety:
```
PS ~\Desktop\New_folder\ruff>Get-Content issue.py
```
```py
# W291
"""
1
"""
# W293
"""
"""
```
```
PS ~\Desktop\New_folder\ruff>Get-Escaped-Content issue.py
```
```
# W291\n"""\n1 \n"""\n\n# W293\n"""\n \n"""\r\n
```
```
PS ~\Desktop\New_folder\ruff>uvx ruff check issue.py --isolated --select W
```
```snap
issue.py:3:2: W291 Trailing whitespace
|
1 | # W291
2 | """
3 | 1
| ^ W291
4 | """
|
= help: Remove trailing whitespace
issue.py:8:1: W293 Blank line contains whitespace
|
6 | # W293
7 | """
8 |
| ^ W293
9 | """
|
= help: Remove whitespace from blank line
Found 2 errors.
No fixes available (2 hidden fixes can be enabled with the `--unsafe-fixes` option).
```
## Test Plan
<!-- How was it tested? -->
N/A, no tests affected.
2025-06-19 16:48:02 -05:00
Dylan
ce0a32aadb
[flake8-comprehensions
] Handle template strings for comprehension fixes ( #18710 )
...
Essentially this PR ensures that when we do fixes like this:
```diff
- t"{set(f(x) for x in foo)}"
+ t"{ {f(x) for x in foo} }"
```
we are correctly adding whitespace around the braces.
This logic is already in place for f-strings and just needed to be
generalized to interpolated strings.
2025-06-19 16:23:46 -05:00
Brent Westbrook
10a1d9f01e
Unify OldDiagnostic
and Message
( #18391 )
...
CI / Fuzz for new ty panics (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (linux, release) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Waiting to run
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz build (push) Blocked by required conditions
CI / fuzz parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / check playground (push) Blocked by required conditions
CI / benchmarks-instrumented (push) Blocked by required conditions
CI / benchmarks-walltime (push) Blocked by required conditions
Summary
--
This PR unifies the remaining differences between `OldDiagnostic` and
`Message` (`OldDiagnostic` was only missing an optional `noqa_offset`
field) and
replaces `Message` with `OldDiagnostic`.
The biggest functional difference is that the combined `OldDiagnostic`
kind no
longer implements `AsRule` for an infallible conversion to `Rule`. This
was
pretty easy to work around with `is_some_and` and `is_none_or` in the
few places
it was needed. In `LintContext::report_diagnostic_if_enabled` we can
just use
the new `Violation::rule` method, which takes care of most cases.
Most of the interesting changes are in [this
range](8156992540
)
before I started renaming.
Test Plan
--
Existing tests
Future Work
--
I think it's time to start shifting some of these fields to the new
`Diagnostic`
kind. I believe we want `Fix` for sure, but I'm less sure about the
others. We
may want to keep a thin wrapper type here anyway to implement a `rule`
method,
so we could leave some of these fields on that too.
2025-06-19 09:37:58 -04:00
Robsdedude
4e83db4d40
[pylint
] Detect more exotic NaN literals in PLW0177
( #18630 )
...
CI / cargo test (linux) (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / cargo fuzz build (push) Blocked by required conditions
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux, release) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Waiting to run
CI / cargo build (msrv) (push) Blocked by required conditions
CI / fuzz parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / Fuzz for new ty panics (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / check playground (push) Blocked by required conditions
CI / benchmarks-instrumented (push) Blocked by required conditions
CI / benchmarks-walltime (push) Blocked by required conditions
Co-authored-by: Micha Reiser <micha@reiser.io>
2025-06-19 11:05:06 +00:00
Victor Hugo Gomes
136443b71b
[flake8-async
] Mark autofix for ASYNC115
as unsafe if the call expression contains comments ( #18753 )
...
Co-authored-by: Micha Reiser <micha@reiser.io>
2025-06-19 13:01:33 +02:00
Victor Hugo Gomes
f7a741a99e
[flake8-bugbear
] Mark autofix for B004
as unsafe if the hasattr
call expr contains comments ( #18755 )
2025-06-19 10:46:53 +00:00
Charlie Marsh
4c8d612120
Enforce pytest
import for decorators ( #18779 )
2025-06-19 09:49:34 +00:00
Victor Hugo Gomes
65b288b45b
[flake8-comprehension
] Mark autofix for C420
as unsafe if there's comments inside the dict comprehension ( #18768 )
2025-06-19 09:43:05 +00:00
chiri
06da2c808f
[flake8-async] fix detection for large integer sleep durations in ASYNC116
rule ( #18767 )
...
Co-authored-by: Micha Reiser <micha@reiser.io>
2025-06-19 09:37:20 +00:00
renovate[bot]
55a2ff91c7
Update dependency ruff to v0.12.0 ( #18790 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-19 09:32:47 +00:00
renovate[bot]
d6705f4700
Update taiki-e/install-action action to v2.53.2 ( #18789 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-19 09:31:46 +00:00
Frazer McLean
f67ff33177
Add lint rule for calling chmod with non-octal integers ( #18541 )
...
Co-authored-by: Micha Reiser <micha@reiser.io>
2025-06-19 11:30:29 +02:00
Nikolas Hearp
dcf0a8d4d7
Mark RET501
fix unsafe if comments are inside ( #18780 )
...
Co-authored-by: Charlie Marsh <crmarsh416@gmail.com>
2025-06-19 11:12:12 +02:00
Brent Westbrook
e352a50b74
Use LintContext::report_diagnostic_if_enabled
in check_tokens
( #18769 )
...
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (linux, release) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Waiting to run
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz build (push) Blocked by required conditions
CI / fuzz parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / Fuzz for new ty panics (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / check playground (push) Blocked by required conditions
CI / benchmarks-instrumented (push) Blocked by required conditions
CI / benchmarks-walltime (push) Blocked by required conditions
## Summary
This PR avoids the `Vec::retain` call in `check_tokens` by checking if
rules are enabled as their diagnostics are constructed.
2a425e43fd/crates/ruff_linter/src/checkers/tokens.rs (L174-L176)
Since `LintContext::report_diagnostic_if_enabled` required a
`LinterSettings`, I added a `settings` field to the context itself
instead of trying to pass it everywhere. This also turned
`LogicalLinesContext` into a trivial wrapper around `LintContext`, so I
just removed it in favor of using `LintContext` directly too.
The diff is a bit smaller with whitespace hidden since many blocks got
moved into something like this:
```rust
if let Some(mut diagnostic) = context.report_diagnostic.enabled(...) {
// old code
}
```
## Test Plan
Existing tests
2025-06-18 17:05:36 -04:00
sobolevn
2a425e43fd
[UP008]: use super()
, not __super__
in error messages ( #18743 )
...
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (linux, release) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Waiting to run
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz build (push) Blocked by required conditions
CI / fuzz parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / Fuzz for new ty panics (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / check playground (push) Blocked by required conditions
CI / benchmarks-instrumented (push) Blocked by required conditions
CI / benchmarks-walltime (push) Blocked by required conditions
[ty Playground] Release / publish (push) Has been cancelled
When I try to grep CPython with `__super__` I get 0 results:
```
(.venv) ~/Desktop/cpython main ✔
» ag __super__ .
```
That's how we can understand that the naming is not the best.
2025-06-18 13:57:57 -04:00
Zanie Blue
cb512ba80b
Use Depot Windows runners for cargo test
( #18754 )
...
From 6m 15s -> 3m 54s (total runtime)
See also https://github.com/astral-sh/uv/pull/14122
We don't use a Dev Drive here so this is trivial (ref #15664 )
2025-06-18 10:52:24 -05:00
Micha Reiser
97af091d5d
Run ty benchmarks when ruff_benchmark
changes ( #18758 )
2025-06-18 17:43:19 +02:00
Micha Reiser
1188ffccc4
Disallow newlines in format specifiers of single quoted f- or t-strings ( #18708 )
2025-06-18 14:56:15 +02:00
Micha Reiser
23261a38a0
[ty] Add more benchmarks ( #18714 )
CI / benchmarks-instrumented (push) Blocked by required conditions
CI / benchmarks-walltime (push) Blocked by required conditions
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (linux, release) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Waiting to run
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz build (push) Blocked by required conditions
CI / fuzz parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / Fuzz for new ty panics (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / check playground (push) Blocked by required conditions
[ty Playground] Release / publish (push) Waiting to run
2025-06-18 13:41:38 +02:00
Micha Reiser
37fdece72f
[ty] Anchor all exclude patterns ( #18685 )
...
Co-authored-by: Andrew Gallant <andrew@astral.sh>
2025-06-18 08:57:36 +00:00
Dhruv Manilawala
8184dae287
Include changelog reference for other major versions ( #18745 )
...
Add references to changelog files for other major versions in the main
CHANGELOG.md file.
[Rendered](https://github.com/astral-sh/ruff/blob/dhruv/other-changelog/CHANGELOG.md )
2025-06-18 07:05:43 +00:00
Matthias Hörtenhuber
a2cd6df429
Use updated pre-commit id ( #18718 )
...
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (linux, release) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Waiting to run
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz build (push) Blocked by required conditions
CI / fuzz parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / Fuzz for new ty panics (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / check playground (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
[ty Playground] Release / publish (push) Waiting to run
## Summary
Update pre-commit hook id according to
https://github.com/astral-sh/ruff-pre-commit/pull/124
2025-06-17 14:12:11 -04:00
Brent Westbrook
9220addf52
Split the changelog into separate files ( #18725 )
...
Summary
--
During the release today, I noticed that the changelog is finally too
long to
render at all on GitHub. This PR follows the same splitting procedure as
in
uv (astral-sh/uv#11510 , astral-sh/uv#12099 ): first splitting the file
into one
per minor version, and then reversing the contents of each file to start
with
the breaking release (`changelogs/0.11.x.md` starts with 0.11.0 instead
of
0.11.13 as in the old changelog).
For the second part, I used
[`reverse-changelog.py`](https://github.com/astral-sh/uv/blob/main/scripts/reverse-changelog.py )
from the uv repo, so hopefully everything is correct. I spot-checked
0.7.0 at least.
2025-06-17 13:27:36 -04:00
Alperen Keleş
932f941d15
[ty] fix binary expression inference between boolean literals and bool
instances ( #18663 )
2025-06-17 18:02:40 +01:00
Brent Westbrook
87f0feb21a
Bump 0.12.0 ( #18724 )
...
- [x] Updated changelog
- [x] Updated breaking changes
2025-06-17 11:05:59 -04:00
Alex Waygood
685eac10e5
Revert "[ty] Offer "Did you mean...?" suggestions for unresolved from
imports and unresolved attributes ( #18705 )" ( #18721 )
2025-06-17 15:48:09 +01:00
Dylan
a93992fa30
[flake8-return
] Stabilize only add return None
at the end when fixing implicit-return
(RET503
) ( #18516 )
...
This involved slightly more code changes than usual for a stabilization
- so maybe worth double-checking the logic!
I did verify by hand that the new stable behavior on the test fixture
matches the old preview behavior, even after the internal refactor.
2025-06-17 09:58:12 -04:00
Brent Westbrook
50f84808bc
[pyupgrade
] Stabilize non-pep695-generic-function
(UP047
) ( #18524 )
...
## Summary
- Stabilizes UP047 (non-pep695-generic-function) rule by changing it
from Preview to Stable
## Test plan
- ✅ Rule is already tested in main test function, no migration needed
- ✅ `make check` passes
- ✅ `make test` passes
## Rule Documentation
- [Test
file](https://github.com/astral-sh/ruff/blob/main/crates/ruff_linter/src/rules/pyupgrade/mod.rs#L111 )
- [Rule
documentation](https://docs.astral.sh/ruff/rules/non-pep695-generic-function/ )
2025-06-17 09:58:12 -04:00
Brent Westbrook
6754e94abc
[pyupgrade
] Stabilize non-pep695-generic-class
(UP046
) ( #18519 )
...
## Summary
- Stabilizes UP046 (non-pep695-generic-class) rule by changing it from
Preview to Stable
## Test plan
- ✅ Rule is already tested in main test function, no migration needed
- ✅ `make check` passes
- ✅ `make test` passes
## Rule Documentation
- [Test
file](https://github.com/astral-sh/ruff/blob/main/crates/ruff_linter/src/rules/pyupgrade/mod.rs#L109-L110 )
- [Rule
documentation](https://docs.astral.sh/ruff/rules/non-pep695-generic-class/ )
2025-06-17 09:58:12 -04:00
Brent Westbrook
33c8c7569d
[pandas-vet
] Deprecate pandas-df-variable-name
(PD901
) ( #18618 )
...
Summary
--
Deprecates PD901 as part of #7710 . I don't feel particularly strongly
about this one, though I have certainly used `df` as a dataframe name in
the past, just going through the open issues in the 0.12 milestone.
Test Plan
--
N/a
2025-06-17 09:58:12 -04:00
Brent Westbrook
34dc8e0531
[flake8-bandit
] Remove suspicious-xmle-tree-usage
(S320
) ( #18617 )
...
Summary
--
Closes #13707 . The rule was deprecated in 0.10 (#16680 ) and slated for
removal in either this or the next release.
Test Plan
--
N/a
2025-06-17 09:58:12 -04:00
Dylan
b01195b166
Stabilize dataclass-enum
(RUF049
) ( #18570 )
...
Co-authored-by: Brent Westbrook <brentrwestbrook@gmail.com>
2025-06-17 09:58:12 -04:00
Dylan
ce176b1acf
Stabilize unnecessary-dict-index-lookup
(PLR1733
) ( #18571 )
...
Co-authored-by: Brent Westbrook <brentrwestbrook@gmail.com>
2025-06-17 09:58:12 -04:00
Micha Reiser
7072cf69b4
Remove rust-toolchain.toml from sdist ( #17925 )
...
Closes https://github.com/astral-sh/ruff/issues/17909
2025-06-17 09:58:12 -04:00
Brent Westbrook
72c8dc006f
Stabilize starmap-zip
(RUF058
) ( #18525 )
...
## Summary
- Stabilizes RUF058 (starmap-zip) rule by changing it from Preview to
Stable
- Migrates test cases from preview_rules to main rules function
- Updates snapshots accordingly and removes old preview snapshots
## Test plan
- ✅ Migrated tests from preview to main test function
- ✅ `make check` passes
- ✅ `make test` passes
- ✅ `make citest` passes (no leftover snapshots)
## Rule Documentation
- [Test
file](https://github.com/astral-sh/ruff/blob/main/crates/ruff_linter/src/rules/ruff/mod.rs#L103-L104 )
- [Rule documentation](https://docs.astral.sh/ruff/rules/starmap-zip/ )
2025-06-17 09:58:12 -04:00
Brent Westbrook
ad9ae4e2b6
[flake8-logging
] Stabilize exc-info-outside-except-handler
(LOG014
) ( #18517 )
...
## Summary
- Stabilizes LOG014 (exc-info-outside-except-handler) rule by changing
it from Preview to Stable
## Test plan
- ✅ Rule is already tested in main test function, no migration needed
- ✅ `make check` passes
- ✅ `make test` passes
## Rule Documentation
- [Test
file](https://github.com/astral-sh/ruff/blob/main/crates/ruff_linter/src/rules/flake8_logging/mod.rs#L22-L23 )
- [Rule
documentation](https://docs.astral.sh/ruff/rules/exc-info-outside-except-handler/ )
2025-06-17 09:58:12 -04:00
Dylan
de4fc5b171
[pyupgrade
] Stabilize non-pep604-annotation-optional
(UP045
) and preview behavior for non-pep604-annotation-union
(UP007
) ( #18505 )
2025-06-17 09:58:12 -04:00
Dylan
56f2aaaebc
Stabilize pytest-warns-too-broad
(PT030
) ( #18568 )
2025-06-17 09:58:12 -04:00
Dylan
ebd2a27559
Stabilize for-loop-writes
(FURB122
) ( #18565 )
2025-06-17 09:58:12 -04:00
Dylan
1278e3442a
Stabilize pytest-warns-with-multiple-statements
(PT031
) ( #18569 )
2025-06-17 09:58:12 -04:00
Dylan
7efbf469dd
Stabilize pytest-parameter-with-default-argument
(PT028
) ( #18566 )
2025-06-17 09:58:12 -04:00
Dylan
2a1fed9327
Stabilize nan-comparison
(PLW0177
) ( #18559 )
2025-06-17 09:58:12 -04:00
Dylan
7de8a0b429
Stabilize check-and-remove-from-set
(FURB132
) ( #18560 )
2025-06-17 09:58:12 -04:00
Dylan
0a1c6cb70b
Stabilize unnecessary-round
(RUF057
) ( #18563 )
2025-06-17 09:58:12 -04:00
Dylan
2dafc5a8bd
Stabilize eq-without-hash
(PLW1641
) ( #18561 )
2025-06-17 09:58:12 -04:00
Dylan
72a4c3ed83
Stabilize int-on-sliced-str
(FURB166
) ( #18558 )
2025-06-17 09:58:12 -04:00
Dylan
e559e21e93
[pylint
] Stabilize import-outside-top-level
(PLC0415
) ( #18554 )
2025-06-17 09:58:12 -04:00
Dylan
c948be495a
[ruff
] Stabilize invalid-formatter-suppression-comment
(RUF028
) ( #18555 )
2025-06-17 09:58:12 -04:00