Avatar for the astral-sh user
astral-sh
ruff
BlogDocsChangelog

Add a rule/autofix to sort `__slots__` and `__match_args__`

#9564Merged
Comparing
AlexWaygood:sort-dunder-slots
(
333fe62
) with
main
(
a3d667e
)
CodSpeed Performance Gauge
0%
Improvements
0
Regressions
0
Untouched
30
New
0
Dropped
0
Ignored
0

Benchmarks

Passed

formatter[numpy/globals.py]
crates/ruff_benchmark/benches/formatter.rs::formatter::benchmark_formatter::formatter[numpy/globals.py]
CodSpeed Performance Gauge
0%
271.3 µs
271.2 µs
parser[numpy/ctypeslib.py]
crates/ruff_benchmark/benches/parser.rs::parser::benchmark_parser::parser[numpy/ctypeslib.py]
CodSpeed Performance Gauge
0%
2.2 ms
2.2 ms
formatter[unicode/pypinyin.py]
crates/ruff_benchmark/benches/formatter.rs::formatter::benchmark_formatter::formatter[unicode/pypinyin.py]
CodSpeed Performance Gauge
0%
702.9 µs
702.8 µs
formatter[large/dataset.py]
crates/ruff_benchmark/benches/formatter.rs::formatter::benchmark_formatter::formatter[large/dataset.py]
CodSpeed Performance Gauge
0%
9.9 ms
9.9 ms
parser[large/dataset.py]
crates/ruff_benchmark/benches/parser.rs::parser::benchmark_parser::parser[large/dataset.py]
CodSpeed Performance Gauge
0%
12.5 ms
12.5 ms
formatter[numpy/ctypeslib.py]
crates/ruff_benchmark/benches/formatter.rs::formatter::benchmark_formatter::formatter[numpy/ctypeslib.py]
CodSpeed Performance Gauge
0%
2 ms
2 ms
formatter[pydantic/types.py]
crates/ruff_benchmark/benches/formatter.rs::formatter::benchmark_formatter::formatter[pydantic/types.py]
CodSpeed Performance Gauge
0%
3.7 ms
3.7 ms
parser[pydantic/types.py]
crates/ruff_benchmark/benches/parser.rs::parser::benchmark_parser::parser[pydantic/types.py]
CodSpeed Performance Gauge
0%
4.9 ms
4.9 ms
parser[numpy/globals.py]
crates/ruff_benchmark/benches/parser.rs::parser::benchmark_parser::parser[numpy/globals.py]
CodSpeed Performance Gauge
0%
258.7 µs
258.7 µs
parser[unicode/pypinyin.py]
crates/ruff_benchmark/benches/parser.rs::parser::benchmark_parser::parser[unicode/pypinyin.py]
CodSpeed Performance Gauge
0%
849.1 µs
849.1 µs
lexer[large/dataset.py]
crates/ruff_benchmark/benches/lexer.rs::lexer::benchmark_lexer::lexer[large/dataset.py]
CodSpeed Performance Gauge
0%
1.5 ms
1.5 ms
lexer[numpy/globals.py]
crates/ruff_benchmark/benches/lexer.rs::lexer::benchmark_lexer::lexer[numpy/globals.py]
CodSpeed Performance Gauge
0%
47.1 µs
47.1 µs
lexer[pydantic/types.py]
crates/ruff_benchmark/benches/lexer.rs::lexer::benchmark_lexer::lexer[pydantic/types.py]
CodSpeed Performance Gauge
0%
665.9 µs
665.9 µs
lexer[unicode/pypinyin.py]
crates/ruff_benchmark/benches/lexer.rs::lexer::benchmark_lexer::lexer[unicode/pypinyin.py]
CodSpeed Performance Gauge
0%
104.7 µs
104.7 µs
lexer[numpy/ctypeslib.py]
crates/ruff_benchmark/benches/lexer.rs::lexer::benchmark_lexer::lexer[numpy/ctypeslib.py]
CodSpeed Performance Gauge
0%
327.3 µs
327.3 µs
linter/default-rules[large/dataset.py]
crates/ruff_benchmark/benches/linter.rs::default_rules::benchmark_default_rules::linter/default-rules[large/dataset.py]
CodSpeed Performance Gauge
0%
4 ms
4 ms
linter/all-rules[numpy/globals.py]
crates/ruff_benchmark/benches/linter.rs::all_rules::benchmark_all_rules::linter/all-rules[numpy/globals.py]
CodSpeed Performance Gauge
0%
740.9 µs
742.3 µs
linter/default-rules[numpy/globals.py]
crates/ruff_benchmark/benches/linter.rs::default_rules::benchmark_default_rules::linter/default-rules[numpy/globals.py]
CodSpeed Performance Gauge
0%
186.6 µs
186.9 µs
linter/default-rules[unicode/pypinyin.py]
crates/ruff_benchmark/benches/linter.rs::default_rules::benchmark_default_rules::linter/default-rules[unicode/pypinyin.py]
CodSpeed Performance Gauge
0%
374.5 µs
375.2 µs
linter/default-rules[pydantic/types.py]
crates/ruff_benchmark/benches/linter.rs::default_rules::benchmark_default_rules::linter/default-rules[pydantic/types.py]
CodSpeed Performance Gauge
0%
1.9 ms
1.9 ms
linter/default-rules[numpy/ctypeslib.py]
crates/ruff_benchmark/benches/linter.rs::default_rules::benchmark_default_rules::linter/default-rules[numpy/ctypeslib.py]
CodSpeed Performance Gauge
0%
952.5 µs
955.5 µs
linter/all-with-preview-rules[numpy/globals.py]
crates/ruff_benchmark/benches/linter.rs::preview_rules::benchmark_preview_rules::linter/all-with-preview-rules[numpy/globals.py]
CodSpeed Performance Gauge
0%
847.2 µs
850 µs
linter/all-rules[numpy/ctypeslib.py]
crates/ruff_benchmark/benches/linter.rs::all_rules::benchmark_all_rules::linter/all-rules[numpy/ctypeslib.py]
CodSpeed Performance Gauge
-1%
4.6 ms
4.7 ms
linter/all-rules[unicode/pypinyin.py]
crates/ruff_benchmark/benches/linter.rs::all_rules::benchmark_all_rules::linter/all-rules[unicode/pypinyin.py]
CodSpeed Performance Gauge
-1%
2.6 ms
2.6 ms
linter/all-with-preview-rules[unicode/pypinyin.py]
crates/ruff_benchmark/benches/linter.rs::preview_rules::benchmark_preview_rules::linter/all-with-preview-rules[unicode/pypinyin.py]
CodSpeed Performance Gauge
-1%
2.9 ms
2.9 ms
linter/all-rules[large/dataset.py]
crates/ruff_benchmark/benches/linter.rs::all_rules::benchmark_all_rules::linter/all-rules[large/dataset.py]
CodSpeed Performance Gauge
-1%
19.1 ms
19.2 ms
linter/all-with-preview-rules[numpy/ctypeslib.py]
crates/ruff_benchmark/benches/linter.rs::preview_rules::benchmark_preview_rules::linter/all-with-preview-rules[numpy/ctypeslib.py]
CodSpeed Performance Gauge
-1%
5.3 ms
5.4 ms
linter/all-rules[pydantic/types.py]
crates/ruff_benchmark/benches/linter.rs::all_rules::benchmark_all_rules::linter/all-rules[pydantic/types.py]
CodSpeed Performance Gauge
-1%
9.1 ms
9.2 ms
linter/all-with-preview-rules[pydantic/types.py]
crates/ruff_benchmark/benches/linter.rs::preview_rules::benchmark_preview_rules::linter/all-with-preview-rules[pydantic/types.py]
CodSpeed Performance Gauge
-1%
10.8 ms
10.9 ms
linter/all-with-preview-rules[large/dataset.py]
crates/ruff_benchmark/benches/linter.rs::preview_rules::benchmark_preview_rules::linter/all-with-preview-rules[large/dataset.py]
CodSpeed Performance Gauge
-1%
23 ms
23.3 ms

Commits

Click on a commit to change the comparison range
Base
main
a3d667e
0%
Spruce up a little bit
785a002
1 year ago
by AlexWaygood
0%
regenerate schema
dfeb341
1 year ago
by AlexWaygood
0%
Respond to some Micha comments from Discord
39a059b
1 year ago
by AlexWaygood
-6%
Also implement the fix for multiline `__slots__` and `__match_args__`
883b561
1 year ago
by AlexWaygood
+5%
remove some unnecessary uses of `pub`
270432f
1 year ago
by AlexWaygood
0%
use static lifetimes Co-authored-by: Micha Reiser <micha@reiser.io>
6c94446
1 year ago
by AlexWaygood
+1%
Address a bunch of Micha comments
90c413b
1 year ago
by AlexWaygood
0%
explicitly test an edge case
902871a
1 year ago
by AlexWaygood
0%
split the assertion in two
b667d2f
1 year ago
by AlexWaygood
0%
Rename `NodeAnalysis`
cf6ca75
1 year ago
by AlexWaygood
0%
fix a few nits
b04bdb0
1 year ago
by AlexWaygood
0%
Address some Charlie comments
3dfdf8b
1 year ago
by AlexWaygood
0%
More Charlie comments
1f59a16
1 year ago
by AlexWaygood
0%
Make `create_fix` a method in `sort_dunder_slots.rs`
e64879a
1 year ago
by AlexWaygood
0%
Put all the validation logic for the elements into a newtype constructor method
6645934
1 year ago
by AlexWaygood
-1%
Merge branch 'main' into sort-dunder-slots
58bed1d
1 year ago
by AlexWaygood
0%
Implement `Clone` and `Copy` for `SortingStyle`
0ab0682
1 year ago
by AlexWaygood
0%
Small cleanups
333fe62
1 year ago
by AlexWaygood
© 2025 CodSpeed Technology
Home Terms PrivacyDocs