mirror of
https://github.com/astral-sh/ruff.git
synced 2025-07-23 13:05:06 +00:00
Tweak breaking groups for comprehensions (#6321)
## Summary Fixes some comprehension formatting by avoiding creating the group for the comprehension itself (so that if it breaks, all parts break on their own lines, e.g. the `for` and the `if` clauses). Closes https://github.com/astral-sh/ruff/issues/6063. ## Test Plan Bunch of new fixtures.
This commit is contained in:
parent
99baad12d8
commit
4d47dfd6c0
10 changed files with 166 additions and 9 deletions
|
@ -93,3 +93,19 @@ selected_choices = {
|
||||||
|
|
||||||
x, aaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaay) in z
|
x, aaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaay) in z
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a = {
|
||||||
|
k: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
}
|
||||||
|
|
||||||
|
a = {
|
||||||
|
k: [1, 2, 3,]
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
}
|
||||||
|
|
||||||
|
aaaaaaaaaaaaaaaaaaaaa = {
|
||||||
|
k: o for o in self.registry.values if o.__class__ is not ModelAdmin
|
||||||
|
}
|
||||||
|
|
|
@ -31,3 +31,19 @@ len(
|
||||||
a for b in c
|
a for b in c
|
||||||
# trailing
|
# trailing
|
||||||
)
|
)
|
||||||
|
|
||||||
|
a = (
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
)
|
||||||
|
|
||||||
|
a = (
|
||||||
|
[1, 2, 3,]
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
)
|
||||||
|
|
||||||
|
aaaaaaaaaaaaaaaaaaaaa = (
|
||||||
|
o for o in self.registry.values if o.__class__ is not ModelAdmin
|
||||||
|
)
|
||||||
|
|
|
@ -56,4 +56,20 @@ selected_choices = [
|
||||||
|
|
||||||
# Tuples with BinOp
|
# Tuples with BinOp
|
||||||
[i for i in (aaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb, ccccccccccccccccccccc)]
|
[i for i in (aaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb, ccccccccccccccccccccc)]
|
||||||
[(aaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb, ccccccccccccccccccccc) for i in b]
|
[(aaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb, ccccccccccccccccccccc) for i in b]
|
||||||
|
|
||||||
|
a = [
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
]
|
||||||
|
|
||||||
|
a = [
|
||||||
|
[1, 2, 3,]
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
]
|
||||||
|
|
||||||
|
aaaaaaaaaaaaaaaaaaaaa = [
|
||||||
|
o for o in self.registry.values if o.__class__ is not ModelAdmin
|
||||||
|
]
|
||||||
|
|
|
@ -44,7 +44,7 @@ impl FormatNodeRule<ExprDictComp> for FormatExprDictComp {
|
||||||
space(),
|
space(),
|
||||||
value.format(),
|
value.format(),
|
||||||
soft_line_break_or_space(),
|
soft_line_break_or_space(),
|
||||||
group(&joined)
|
&joined
|
||||||
)),
|
)),
|
||||||
"}"
|
"}"
|
||||||
)]
|
)]
|
||||||
|
|
|
@ -60,7 +60,7 @@ impl FormatNodeRule<ExprGeneratorExp> for FormatExprGeneratorExp {
|
||||||
leading_comments(dangling),
|
leading_comments(dangling),
|
||||||
group(&elt.format()),
|
group(&elt.format()),
|
||||||
soft_line_break_or_space(),
|
soft_line_break_or_space(),
|
||||||
group(&joined),
|
&joined
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
|
@ -69,11 +69,11 @@ impl FormatNodeRule<ExprGeneratorExp> for FormatExprGeneratorExp {
|
||||||
[parenthesized_with_dangling_comments(
|
[parenthesized_with_dangling_comments(
|
||||||
"(",
|
"(",
|
||||||
dangling,
|
dangling,
|
||||||
&format_args!(
|
&group(&format_args!(
|
||||||
group(&elt.format()),
|
group(&elt.format()),
|
||||||
soft_line_break_or_space(),
|
soft_line_break_or_space(),
|
||||||
group(&joined)
|
&joined
|
||||||
),
|
)),
|
||||||
")"
|
")"
|
||||||
)]
|
)]
|
||||||
)
|
)
|
||||||
|
|
|
@ -38,7 +38,7 @@ impl FormatNodeRule<ExprListComp> for FormatExprListComp {
|
||||||
&group(&format_args![
|
&group(&format_args![
|
||||||
group(&elt.format()),
|
group(&elt.format()),
|
||||||
soft_line_break_or_space(),
|
soft_line_break_or_space(),
|
||||||
group(&joined)
|
&joined
|
||||||
]),
|
]),
|
||||||
"]"
|
"]"
|
||||||
)]
|
)]
|
||||||
|
|
|
@ -38,7 +38,7 @@ impl FormatNodeRule<ExprSetComp> for FormatExprSetComp {
|
||||||
&group(&format_args!(
|
&group(&format_args!(
|
||||||
group(&elt.format()),
|
group(&elt.format()),
|
||||||
soft_line_break_or_space(),
|
soft_line_break_or_space(),
|
||||||
group(&joined)
|
&joined
|
||||||
)),
|
)),
|
||||||
"}"
|
"}"
|
||||||
)]
|
)]
|
||||||
|
|
|
@ -99,6 +99,22 @@ selected_choices = {
|
||||||
|
|
||||||
x, aaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaay) in z
|
x, aaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaay) in z
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a = {
|
||||||
|
k: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
}
|
||||||
|
|
||||||
|
a = {
|
||||||
|
k: [1, 2, 3,]
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
}
|
||||||
|
|
||||||
|
aaaaaaaaaaaaaaaaaaaaa = {
|
||||||
|
k: o for o in self.registry.values if o.__class__ is not ModelAdmin
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Output
|
## Output
|
||||||
|
@ -251,6 +267,26 @@ selected_choices = {
|
||||||
k: v
|
k: v
|
||||||
for (x, aaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaay) in z # foo
|
for (x, aaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaayaaaay) in z # foo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a = {
|
||||||
|
k: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
}
|
||||||
|
|
||||||
|
a = {
|
||||||
|
k: [
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
]
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
}
|
||||||
|
|
||||||
|
aaaaaaaaaaaaaaaaaaaaa = {
|
||||||
|
k: o for o in self.registry.values if o.__class__ is not ModelAdmin
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,22 @@ len(
|
||||||
a for b in c
|
a for b in c
|
||||||
# trailing
|
# trailing
|
||||||
)
|
)
|
||||||
|
|
||||||
|
a = (
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
)
|
||||||
|
|
||||||
|
a = (
|
||||||
|
[1, 2, 3,]
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
)
|
||||||
|
|
||||||
|
aaaaaaaaaaaaaaaaaaaaa = (
|
||||||
|
o for o in self.registry.values if o.__class__ is not ModelAdmin
|
||||||
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Output
|
## Output
|
||||||
|
@ -75,6 +91,26 @@ len(
|
||||||
for b in c
|
for b in c
|
||||||
# trailing
|
# trailing
|
||||||
)
|
)
|
||||||
|
|
||||||
|
a = (
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
)
|
||||||
|
|
||||||
|
a = (
|
||||||
|
[
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
]
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
)
|
||||||
|
|
||||||
|
aaaaaaaaaaaaaaaaaaaaa = (
|
||||||
|
o for o in self.registry.values if o.__class__ is not ModelAdmin
|
||||||
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,24 @@ selected_choices = [
|
||||||
|
|
||||||
# Tuples with BinOp
|
# Tuples with BinOp
|
||||||
[i for i in (aaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb, ccccccccccccccccccccc)]
|
[i for i in (aaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb, ccccccccccccccccccccc)]
|
||||||
[(aaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb, ccccccccccccccccccccc) for i in b]```
|
[(aaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb, ccccccccccccccccccccc) for i in b]
|
||||||
|
|
||||||
|
a = [
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
]
|
||||||
|
|
||||||
|
a = [
|
||||||
|
[1, 2, 3,]
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
]
|
||||||
|
|
||||||
|
aaaaaaaaaaaaaaaaaaaaa = [
|
||||||
|
o for o in self.registry.values if o.__class__ is not ModelAdmin
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
## Output
|
## Output
|
||||||
```py
|
```py
|
||||||
|
@ -141,6 +158,26 @@ selected_choices = [
|
||||||
)
|
)
|
||||||
for i in b
|
for i in b
|
||||||
]
|
]
|
||||||
|
|
||||||
|
a = [
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
]
|
||||||
|
|
||||||
|
a = [
|
||||||
|
[
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
]
|
||||||
|
for f in bbbbbbbbbbbbbbb
|
||||||
|
if f not in ccccccccccc
|
||||||
|
]
|
||||||
|
|
||||||
|
aaaaaaaaaaaaaaaaaaaaa = [
|
||||||
|
o for o in self.registry.values if o.__class__ is not ModelAdmin
|
||||||
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue