mirror of
https://github.com/astral-sh/ruff.git
synced 2025-07-24 13:33:50 +00:00
Don't touch tuple brackets after in
(#3160)
This commit is contained in:
parent
d8e4902516
commit
227ff62a4e
2 changed files with 114 additions and 1 deletions
|
@ -68,7 +68,9 @@ impl<'a> Visitor<'a> for ParenthesesNormalizer {
|
||||||
}
|
}
|
||||||
StmtKind::For { target, iter, .. } | StmtKind::AsyncFor { target, iter, .. } => {
|
StmtKind::For { target, iter, .. } | StmtKind::AsyncFor { target, iter, .. } => {
|
||||||
use_inferred_parens(target);
|
use_inferred_parens(target);
|
||||||
use_inferred_parens(iter);
|
if !matches!(iter.node, ExprKind::Tuple { .. }) {
|
||||||
|
use_inferred_parens(iter);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
StmtKind::While { test, .. } => {
|
StmtKind::While { test, .. } => {
|
||||||
use_inferred_parens(test);
|
use_inferred_parens(test);
|
||||||
|
|
|
@ -0,0 +1,111 @@
|
||||||
|
---
|
||||||
|
source: crates/ruff_python_formatter/src/lib.rs
|
||||||
|
assertion_line: 146
|
||||||
|
expression: snapshot
|
||||||
|
input_file: crates/ruff_python_formatter/resources/test/fixtures/black/simple_cases/remove_for_brackets.py
|
||||||
|
---
|
||||||
|
## Input
|
||||||
|
|
||||||
|
```py
|
||||||
|
# Only remove tuple brackets after `for`
|
||||||
|
for (k, v) in d.items():
|
||||||
|
print(k, v)
|
||||||
|
|
||||||
|
# Don't touch tuple brackets after `in`
|
||||||
|
for module in (core, _unicodefun):
|
||||||
|
if hasattr(module, "_verify_python3_env"):
|
||||||
|
module._verify_python3_env = lambda: None
|
||||||
|
|
||||||
|
# Brackets remain for long for loop lines
|
||||||
|
for (why_would_anyone_choose_to_name_a_loop_variable_with_a_name_this_long, i_dont_know_but_we_should_still_check_the_behaviour_if_they_do) in d.items():
|
||||||
|
print(k, v)
|
||||||
|
|
||||||
|
for (k, v) in dfkasdjfldsjflkdsjflkdsjfdslkfjldsjfgkjdshgkljjdsfldgkhsdofudsfudsofajdslkfjdslkfjldisfjdffjsdlkfjdlkjjkdflskadjldkfjsalkfjdasj.items():
|
||||||
|
print(k, v)
|
||||||
|
|
||||||
|
# Test deeply nested brackets
|
||||||
|
for (((((k, v))))) in d.items():
|
||||||
|
print(k, v)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Black Differences
|
||||||
|
|
||||||
|
```diff
|
||||||
|
--- Black
|
||||||
|
+++ Ruff
|
||||||
|
@@ -17,9 +17,7 @@
|
||||||
|
for (
|
||||||
|
k,
|
||||||
|
v,
|
||||||
|
-) in (
|
||||||
|
- dfkasdjfldsjflkdsjflkdsjfdslkfjldsjfgkjdshgkljjdsfldgkhsdofudsfudsofajdslkfjdslkfjldisfjdffjsdlkfjdlkjjkdflskadjldkfjsalkfjdasj.items()
|
||||||
|
-):
|
||||||
|
+) in dfkasdjfldsjflkdsjflkdsjfdslkfjldsjfgkjdshgkljjdsfldgkhsdofudsfudsofajdslkfjdslkfjldisfjdffjsdlkfjdlkjjkdflskadjldkfjsalkfjdasj.items():
|
||||||
|
print(k, v)
|
||||||
|
|
||||||
|
# Test deeply nested brackets
|
||||||
|
```
|
||||||
|
|
||||||
|
## Ruff Output
|
||||||
|
|
||||||
|
```py
|
||||||
|
# Only remove tuple brackets after `for`
|
||||||
|
for k, v in d.items():
|
||||||
|
print(k, v)
|
||||||
|
|
||||||
|
# Don't touch tuple brackets after `in`
|
||||||
|
for module in (core, _unicodefun):
|
||||||
|
if hasattr(module, "_verify_python3_env"):
|
||||||
|
module._verify_python3_env = lambda: None
|
||||||
|
|
||||||
|
# Brackets remain for long for loop lines
|
||||||
|
for (
|
||||||
|
why_would_anyone_choose_to_name_a_loop_variable_with_a_name_this_long,
|
||||||
|
i_dont_know_but_we_should_still_check_the_behaviour_if_they_do,
|
||||||
|
) in d.items():
|
||||||
|
print(k, v)
|
||||||
|
|
||||||
|
for (
|
||||||
|
k,
|
||||||
|
v,
|
||||||
|
) in dfkasdjfldsjflkdsjflkdsjfdslkfjldsjfgkjdshgkljjdsfldgkhsdofudsfudsofajdslkfjdslkfjldisfjdffjsdlkfjdlkjjkdflskadjldkfjsalkfjdasj.items():
|
||||||
|
print(k, v)
|
||||||
|
|
||||||
|
# Test deeply nested brackets
|
||||||
|
for k, v in d.items():
|
||||||
|
print(k, v)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Black Output
|
||||||
|
|
||||||
|
```py
|
||||||
|
# Only remove tuple brackets after `for`
|
||||||
|
for k, v in d.items():
|
||||||
|
print(k, v)
|
||||||
|
|
||||||
|
# Don't touch tuple brackets after `in`
|
||||||
|
for module in (core, _unicodefun):
|
||||||
|
if hasattr(module, "_verify_python3_env"):
|
||||||
|
module._verify_python3_env = lambda: None
|
||||||
|
|
||||||
|
# Brackets remain for long for loop lines
|
||||||
|
for (
|
||||||
|
why_would_anyone_choose_to_name_a_loop_variable_with_a_name_this_long,
|
||||||
|
i_dont_know_but_we_should_still_check_the_behaviour_if_they_do,
|
||||||
|
) in d.items():
|
||||||
|
print(k, v)
|
||||||
|
|
||||||
|
for (
|
||||||
|
k,
|
||||||
|
v,
|
||||||
|
) in (
|
||||||
|
dfkasdjfldsjflkdsjflkdsjfdslkfjldsjfgkjdshgkljjdsfldgkhsdofudsfudsofajdslkfjdslkfjldisfjdffjsdlkfjdlkjjkdflskadjldkfjsalkfjdasj.items()
|
||||||
|
):
|
||||||
|
print(k, v)
|
||||||
|
|
||||||
|
# Test deeply nested brackets
|
||||||
|
for k, v in d.items():
|
||||||
|
print(k, v)
|
||||||
|
```
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue