fix: Stop moving multiline strings to a new line unless inside bracke… · psf/black@13bd092 (original) (raw)
3 files changed
lines changed
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -16,6 +16,7 @@ | ||
16 | 16 | |
17 | 17 | - `if` guards in `case` blocks are now wrapped in parentheses when the line is too long. |
18 | 18 | (#4269) |
19 | +- Stop moving multiline strings to a new line unless inside brackets (#4289) | |
19 | 20 | |
20 | 21 | ### Configuration |
21 | 22 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -858,11 +858,13 @@ def is_line_short_enough( # noqa: C901 | ||
858 | 858 | return False |
859 | 859 | |
860 | 860 | if leaf.bracket_depth <= max_level_to_update and leaf.type == token.COMMA: |
861 | -# Ignore non-nested trailing comma | |
861 | +# Inside brackets, ignore trailing comma | |
862 | 862 | # directly after MLS/MLS-containing expression |
863 | 863 | ignore_ctxs: List[Optional[LN]] = [None] |
864 | 864 | ignore_ctxs += multiline_string_contexts |
865 | -if not (leaf.prev_sibling in ignore_ctxs and i == len(line.leaves) - 1): | |
865 | +if (line.inside_brackets or leaf.bracket_depth > 0) and ( | |
866 | +i != len(line.leaves) - 1 or leaf.prev_sibling not in ignore_ctxs | |
867 | + ): | |
866 | 868 | commas[leaf.bracket_depth] += 1 |
867 | 869 | if max_level_to_update != math.inf: |
868 | 870 | max_level_to_update = min(max_level_to_update, leaf.bracket_depth) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -175,6 +175,13 @@ def dastardly_default_value( | ||
175 | 175 | "c" |
176 | 176 | ) |
177 | 177 | |
178 | +assert some_var == expected_result, """ | |
179 | +test | |
180 | +""" | |
181 | +assert some_var == expected_result, f""" | |
182 | +expected: {expected_result} | |
183 | +actual: {some_var}""" | |
184 | + | |
178 | 185 | # output |
179 | 186 | """cow |
180 | 187 | say""", |
@@ -385,3 +392,10 @@ def dastardly_default_value( | ||
385 | 392 | ) |
386 | 393 | |
387 | 394 | this_will_also_become_one_line = "abc" # comment |
395 | + | |
396 | +assert some_var == expected_result, """ | |
397 | +test | |
398 | +""" | |
399 | +assert some_var == expected_result, f""" | |
400 | +expected: {expected_result} | |
401 | +actual: {some_var}""" |