input:
f(
"lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor"
"incididunt ut labore et dolore magna aliqua Ut enim ad minim",
"",
)
Expected output:
f(
(
"lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor"
"incididunt ut labore et dolore magna aliqua Ut enim ad minim"
),
"",
)
Actual:
No change
Playground
playground
Context:
This was implemented and reverted due to disruptive changes:
f(
x,
- "lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor"
- "incididunt ut labore et dolore magna aliqua Ut enim ad minim",
+ (
+ "lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor"
+ "incididunt ut labore et dolore magna aliqua Ut enim ad minim"
+ ),
)
I think that it should be re-enabled, because it does improve style, readability, and catch bugs. Some additional cases should be considered:
- Only wrap the string if it shares a boundary with an expression that starts with a string literal:
Details
f(
x,
"a" # don't wrap
"b",
)
f(
"a" # don't wrap
"b",
x,
)
f(
1,
"a" # don't wrap
"b",
)
f(
"a" + "b",
"a" # wrap, the preceding parameter begins with a string literal
"b",
)
- Don't wrap in cases of following keyword arguments:
Details
f(
"a" # don't wrap
"b",
a="a",
)
f(
"a",
a="a" # don't wrap
"b",
)
f(
a="a",
"a" # wrap
"b",
)
f(
a="a" # wrap
"b",
"a",
)
I feel like this is a healthy balance of disruption and readability.
Related:
Black version 23.10.0
input:
Expected output:
Actual:
No change
Playground
playground
Context:
This was implemented and reverted due to disruptive changes:
f( x, - "lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor" - "incididunt ut labore et dolore magna aliqua Ut enim ad minim", + ( + "lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor" + "incididunt ut labore et dolore magna aliqua Ut enim ad minim" + ), )I think that it should be re-enabled, because it does improve style, readability, and catch bugs. Some additional cases should be considered:
Details
Details
I feel like this is a healthy balance of disruption and readability.
Related:
Black version 23.10.0