mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-02 06:41:23 +00:00
Remove preview gating for flake8-simplify
rules (#9686)
## Summary Un-gates detecting `dict.get` rewrites in `if` expressions (rather than just `if` statements).
This commit is contained in:
parent
2d6fd0fc91
commit
ae13d8fddf
4 changed files with 40 additions and 207 deletions
|
@ -57,7 +57,6 @@ mod tests {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test_case(Rule::YodaConditions, Path::new("SIM300.py"))]
|
#[test_case(Rule::YodaConditions, Path::new("SIM300.py"))]
|
||||||
#[test_case(Rule::IfElseBlockInsteadOfDictGet, Path::new("SIM401.py"))]
|
|
||||||
fn preview_rules(rule_code: Rule, path: &Path) -> Result<()> {
|
fn preview_rules(rule_code: Rule, path: &Path) -> Result<()> {
|
||||||
let snapshot = format!(
|
let snapshot = format!(
|
||||||
"preview__{}_{}",
|
"preview__{}_{}",
|
||||||
|
|
|
@ -224,10 +224,6 @@ pub(crate) fn if_exp_instead_of_dict_get(
|
||||||
body: &Expr,
|
body: &Expr,
|
||||||
orelse: &Expr,
|
orelse: &Expr,
|
||||||
) {
|
) {
|
||||||
if checker.settings.preview.is_disabled() {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let Expr::Compare(ast::ExprCompare {
|
let Expr::Compare(ast::ExprCompare {
|
||||||
left: test_key,
|
left: test_key,
|
||||||
ops,
|
ops,
|
||||||
|
|
|
@ -159,4 +159,44 @@ SIM401.py:45:5: SIM401 [*] Use `vars[idx] = a_dict.get(key, "default")` instead
|
||||||
50 47 | ###
|
50 47 | ###
|
||||||
51 48 | # Negative cases
|
51 48 | # Negative cases
|
||||||
|
|
||||||
|
SIM401.py:123:7: SIM401 [*] Use `a_dict.get(key, "default3")` instead of an `if` block
|
||||||
|
|
|
||||||
|
122 | # SIM401
|
||||||
|
123 | var = a_dict[key] if key in a_dict else "default3"
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SIM401
|
||||||
|
124 |
|
||||||
|
125 | # SIM401
|
||||||
|
|
|
||||||
|
= help: Replace with `a_dict.get(key, "default3")`
|
||||||
|
|
||||||
|
ℹ Unsafe fix
|
||||||
|
120 120 | ###
|
||||||
|
121 121 |
|
||||||
|
122 122 | # SIM401
|
||||||
|
123 |-var = a_dict[key] if key in a_dict else "default3"
|
||||||
|
123 |+var = a_dict.get(key, "default3")
|
||||||
|
124 124 |
|
||||||
|
125 125 | # SIM401
|
||||||
|
126 126 | var = "default-1" if key not in a_dict else a_dict[key]
|
||||||
|
|
||||||
|
SIM401.py:126:7: SIM401 [*] Use `a_dict.get(key, "default-1")` instead of an `if` block
|
||||||
|
|
|
||||||
|
125 | # SIM401
|
||||||
|
126 | var = "default-1" if key not in a_dict else a_dict[key]
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SIM401
|
||||||
|
127 |
|
||||||
|
128 | # OK (default contains effect)
|
||||||
|
|
|
||||||
|
= help: Replace with `a_dict.get(key, "default-1")`
|
||||||
|
|
||||||
|
ℹ Unsafe fix
|
||||||
|
123 123 | var = a_dict[key] if key in a_dict else "default3"
|
||||||
|
124 124 |
|
||||||
|
125 125 | # SIM401
|
||||||
|
126 |-var = "default-1" if key not in a_dict else a_dict[key]
|
||||||
|
126 |+var = a_dict.get(key, "default-1")
|
||||||
|
127 127 |
|
||||||
|
128 128 | # OK (default contains effect)
|
||||||
|
129 129 | var = a_dict[key] if key in a_dict else val1 + val2
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,202 +0,0 @@
|
||||||
---
|
|
||||||
source: crates/ruff_linter/src/rules/flake8_simplify/mod.rs
|
|
||||||
---
|
|
||||||
SIM401.py:6:1: SIM401 [*] Use `var = a_dict.get(key, "default1")` instead of an `if` block
|
|
||||||
|
|
|
||||||
5 | # SIM401 (pattern-1)
|
|
||||||
6 | / if key in a_dict:
|
|
||||||
7 | | var = a_dict[key]
|
|
||||||
8 | | else:
|
|
||||||
9 | | var = "default1"
|
|
||||||
| |____________________^ SIM401
|
|
||||||
10 |
|
|
||||||
11 | # SIM401 (pattern-2)
|
|
||||||
|
|
|
||||||
= help: Replace with `var = a_dict.get(key, "default1")`
|
|
||||||
|
|
||||||
ℹ Unsafe fix
|
|
||||||
3 3 | ###
|
|
||||||
4 4 |
|
|
||||||
5 5 | # SIM401 (pattern-1)
|
|
||||||
6 |-if key in a_dict:
|
|
||||||
7 |- var = a_dict[key]
|
|
||||||
8 |-else:
|
|
||||||
9 |- var = "default1"
|
|
||||||
6 |+var = a_dict.get(key, "default1")
|
|
||||||
10 7 |
|
|
||||||
11 8 | # SIM401 (pattern-2)
|
|
||||||
12 9 | if key not in a_dict:
|
|
||||||
|
|
||||||
SIM401.py:12:1: SIM401 [*] Use `var = a_dict.get(key, "default2")` instead of an `if` block
|
|
||||||
|
|
|
||||||
11 | # SIM401 (pattern-2)
|
|
||||||
12 | / if key not in a_dict:
|
|
||||||
13 | | var = "default2"
|
|
||||||
14 | | else:
|
|
||||||
15 | | var = a_dict[key]
|
|
||||||
| |_____________________^ SIM401
|
|
||||||
16 |
|
|
||||||
17 | # OK (default contains effect)
|
|
||||||
|
|
|
||||||
= help: Replace with `var = a_dict.get(key, "default2")`
|
|
||||||
|
|
||||||
ℹ Unsafe fix
|
|
||||||
9 9 | var = "default1"
|
|
||||||
10 10 |
|
|
||||||
11 11 | # SIM401 (pattern-2)
|
|
||||||
12 |-if key not in a_dict:
|
|
||||||
13 |- var = "default2"
|
|
||||||
14 |-else:
|
|
||||||
15 |- var = a_dict[key]
|
|
||||||
12 |+var = a_dict.get(key, "default2")
|
|
||||||
16 13 |
|
|
||||||
17 14 | # OK (default contains effect)
|
|
||||||
18 15 | if key in a_dict:
|
|
||||||
|
|
||||||
SIM401.py:24:1: SIM401 [*] Use `var = a_dict.get(keys[idx], "default")` instead of an `if` block
|
|
||||||
|
|
|
||||||
23 | # SIM401 (complex expression in key)
|
|
||||||
24 | / if keys[idx] in a_dict:
|
|
||||||
25 | | var = a_dict[keys[idx]]
|
|
||||||
26 | | else:
|
|
||||||
27 | | var = "default"
|
|
||||||
| |___________________^ SIM401
|
|
||||||
28 |
|
|
||||||
29 | # SIM401 (complex expression in dict)
|
|
||||||
|
|
|
||||||
= help: Replace with `var = a_dict.get(keys[idx], "default")`
|
|
||||||
|
|
||||||
ℹ Unsafe fix
|
|
||||||
21 21 | var = val1 + val2
|
|
||||||
22 22 |
|
|
||||||
23 23 | # SIM401 (complex expression in key)
|
|
||||||
24 |-if keys[idx] in a_dict:
|
|
||||||
25 |- var = a_dict[keys[idx]]
|
|
||||||
26 |-else:
|
|
||||||
27 |- var = "default"
|
|
||||||
24 |+var = a_dict.get(keys[idx], "default")
|
|
||||||
28 25 |
|
|
||||||
29 26 | # SIM401 (complex expression in dict)
|
|
||||||
30 27 | if key in dicts[idx]:
|
|
||||||
|
|
||||||
SIM401.py:30:1: SIM401 [*] Use `var = dicts[idx].get(key, "default")` instead of an `if` block
|
|
||||||
|
|
|
||||||
29 | # SIM401 (complex expression in dict)
|
|
||||||
30 | / if key in dicts[idx]:
|
|
||||||
31 | | var = dicts[idx][key]
|
|
||||||
32 | | else:
|
|
||||||
33 | | var = "default"
|
|
||||||
| |___________________^ SIM401
|
|
||||||
34 |
|
|
||||||
35 | # SIM401 (complex expression in var)
|
|
||||||
|
|
|
||||||
= help: Replace with `var = dicts[idx].get(key, "default")`
|
|
||||||
|
|
||||||
ℹ Unsafe fix
|
|
||||||
27 27 | var = "default"
|
|
||||||
28 28 |
|
|
||||||
29 29 | # SIM401 (complex expression in dict)
|
|
||||||
30 |-if key in dicts[idx]:
|
|
||||||
31 |- var = dicts[idx][key]
|
|
||||||
32 |-else:
|
|
||||||
33 |- var = "default"
|
|
||||||
30 |+var = dicts[idx].get(key, "default")
|
|
||||||
34 31 |
|
|
||||||
35 32 | # SIM401 (complex expression in var)
|
|
||||||
36 33 | if key in a_dict:
|
|
||||||
|
|
||||||
SIM401.py:36:1: SIM401 [*] Use `vars[idx] = a_dict.get(key, "defaultß9💣2ℝ6789ß9💣2ℝ6789ß9💣2ℝ6789ß9💣2ℝ6789ß9💣2ℝ6789")` instead of an `if` block
|
|
||||||
|
|
|
||||||
35 | # SIM401 (complex expression in var)
|
|
||||||
36 | / if key in a_dict:
|
|
||||||
37 | | vars[idx] = a_dict[key]
|
|
||||||
38 | | else:
|
|
||||||
39 | | vars[idx] = "defaultß9💣2ℝ6789ß9💣2ℝ6789ß9💣2ℝ6789ß9💣2ℝ6789ß9💣2ℝ6789"
|
|
||||||
| |___________________________________________________________________________^ SIM401
|
|
||||||
40 |
|
|
||||||
41 | # SIM401
|
|
||||||
|
|
|
||||||
= help: Replace with `vars[idx] = a_dict.get(key, "defaultß9💣2ℝ6789ß9💣2ℝ6789ß9💣2ℝ6789ß9💣2ℝ6789ß9💣2ℝ6789")`
|
|
||||||
|
|
||||||
ℹ Unsafe fix
|
|
||||||
33 33 | var = "default"
|
|
||||||
34 34 |
|
|
||||||
35 35 | # SIM401 (complex expression in var)
|
|
||||||
36 |-if key in a_dict:
|
|
||||||
37 |- vars[idx] = a_dict[key]
|
|
||||||
38 |-else:
|
|
||||||
39 |- vars[idx] = "defaultß9💣2ℝ6789ß9💣2ℝ6789ß9💣2ℝ6789ß9💣2ℝ6789ß9💣2ℝ6789"
|
|
||||||
36 |+vars[idx] = a_dict.get(key, "defaultß9💣2ℝ6789ß9💣2ℝ6789ß9💣2ℝ6789ß9💣2ℝ6789ß9💣2ℝ6789")
|
|
||||||
40 37 |
|
|
||||||
41 38 | # SIM401
|
|
||||||
42 39 | if foo():
|
|
||||||
|
|
||||||
SIM401.py:45:5: SIM401 [*] Use `vars[idx] = a_dict.get(key, "default")` instead of an `if` block
|
|
||||||
|
|
|
||||||
43 | pass
|
|
||||||
44 | else:
|
|
||||||
45 | if key in a_dict:
|
|
||||||
| _____^
|
|
||||||
46 | | vars[idx] = a_dict[key]
|
|
||||||
47 | | else:
|
|
||||||
48 | | vars[idx] = "default"
|
|
||||||
| |_____________________________^ SIM401
|
|
||||||
49 |
|
|
||||||
50 | ###
|
|
||||||
|
|
|
||||||
= help: Replace with `vars[idx] = a_dict.get(key, "default")`
|
|
||||||
|
|
||||||
ℹ Unsafe fix
|
|
||||||
42 42 | if foo():
|
|
||||||
43 43 | pass
|
|
||||||
44 44 | else:
|
|
||||||
45 |- if key in a_dict:
|
|
||||||
46 |- vars[idx] = a_dict[key]
|
|
||||||
47 |- else:
|
|
||||||
48 |- vars[idx] = "default"
|
|
||||||
45 |+ vars[idx] = a_dict.get(key, "default")
|
|
||||||
49 46 |
|
|
||||||
50 47 | ###
|
|
||||||
51 48 | # Negative cases
|
|
||||||
|
|
||||||
SIM401.py:123:7: SIM401 [*] Use `a_dict.get(key, "default3")` instead of an `if` block
|
|
||||||
|
|
|
||||||
122 | # SIM401
|
|
||||||
123 | var = a_dict[key] if key in a_dict else "default3"
|
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SIM401
|
|
||||||
124 |
|
|
||||||
125 | # SIM401
|
|
||||||
|
|
|
||||||
= help: Replace with `a_dict.get(key, "default3")`
|
|
||||||
|
|
||||||
ℹ Unsafe fix
|
|
||||||
120 120 | ###
|
|
||||||
121 121 |
|
|
||||||
122 122 | # SIM401
|
|
||||||
123 |-var = a_dict[key] if key in a_dict else "default3"
|
|
||||||
123 |+var = a_dict.get(key, "default3")
|
|
||||||
124 124 |
|
|
||||||
125 125 | # SIM401
|
|
||||||
126 126 | var = "default-1" if key not in a_dict else a_dict[key]
|
|
||||||
|
|
||||||
SIM401.py:126:7: SIM401 [*] Use `a_dict.get(key, "default-1")` instead of an `if` block
|
|
||||||
|
|
|
||||||
125 | # SIM401
|
|
||||||
126 | var = "default-1" if key not in a_dict else a_dict[key]
|
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SIM401
|
|
||||||
127 |
|
|
||||||
128 | # OK (default contains effect)
|
|
||||||
|
|
|
||||||
= help: Replace with `a_dict.get(key, "default-1")`
|
|
||||||
|
|
||||||
ℹ Unsafe fix
|
|
||||||
123 123 | var = a_dict[key] if key in a_dict else "default3"
|
|
||||||
124 124 |
|
|
||||||
125 125 | # SIM401
|
|
||||||
126 |-var = "default-1" if key not in a_dict else a_dict[key]
|
|
||||||
126 |+var = a_dict.get(key, "default-1")
|
|
||||||
127 127 |
|
|
||||||
128 128 | # OK (default contains effect)
|
|
||||||
129 129 | var = a_dict[key] if key in a_dict else val1 + val2
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue