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
|
||||
}
|
||||
|
||||
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
|
||||
# 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
|
||||
)
|
||||
|
|
|
@ -57,3 +57,19 @@ selected_choices = [
|
|||
# Tuples with BinOp
|
||||
[i for i in (aaaaaaaaaaaaaaaaaaaaaa + bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb, ccccccccccccccccccccc)]
|
||||
[(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(),
|
||||
value.format(),
|
||||
soft_line_break_or_space(),
|
||||
group(&joined)
|
||||
&joined
|
||||
)),
|
||||
"}"
|
||||
)]
|
||||
|
|
|
@ -60,7 +60,7 @@ impl FormatNodeRule<ExprGeneratorExp> for FormatExprGeneratorExp {
|
|||
leading_comments(dangling),
|
||||
group(&elt.format()),
|
||||
soft_line_break_or_space(),
|
||||
group(&joined),
|
||||
&joined
|
||||
]
|
||||
)
|
||||
} else {
|
||||
|
@ -69,11 +69,11 @@ impl FormatNodeRule<ExprGeneratorExp> for FormatExprGeneratorExp {
|
|||
[parenthesized_with_dangling_comments(
|
||||
"(",
|
||||
dangling,
|
||||
&format_args!(
|
||||
&group(&format_args!(
|
||||
group(&elt.format()),
|
||||
soft_line_break_or_space(),
|
||||
group(&joined)
|
||||
),
|
||||
&joined
|
||||
)),
|
||||
")"
|
||||
)]
|
||||
)
|
||||
|
|
|
@ -38,7 +38,7 @@ impl FormatNodeRule<ExprListComp> for FormatExprListComp {
|
|||
&group(&format_args![
|
||||
group(&elt.format()),
|
||||
soft_line_break_or_space(),
|
||||
group(&joined)
|
||||
&joined
|
||||
]),
|
||||
"]"
|
||||
)]
|
||||
|
|
|
@ -38,7 +38,7 @@ impl FormatNodeRule<ExprSetComp> for FormatExprSetComp {
|
|||
&group(&format_args!(
|
||||
group(&elt.format()),
|
||||
soft_line_break_or_space(),
|
||||
group(&joined)
|
||||
&joined
|
||||
)),
|
||||
"}"
|
||||
)]
|
||||
|
|
|
@ -99,6 +99,22 @@ selected_choices = {
|
|||
|
||||
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
|
||||
|
@ -251,6 +267,26 @@ selected_choices = {
|
|||
k: v
|
||||
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
|
||||
# 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
|
||||
|
@ -75,6 +91,26 @@ len(
|
|||
for b in c
|
||||
# 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
|
||||
[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
|
||||
```py
|
||||
|
@ -141,6 +158,26 @@ selected_choices = [
|
|||
)
|
||||
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