Don't explode a one-element collection ending with a comma.
This commit is contained in:
parent
87b8df28c4
commit
180bc06ede
@ -178,9 +178,9 @@ example above).
|
|||||||
|
|
||||||
If a data structure literal (tuple, list, set, dict) or a line of "from"
|
If a data structure literal (tuple, list, set, dict) or a line of "from"
|
||||||
imports cannot fit in the allotted length, it's always split into one
|
imports cannot fit in the allotted length, it's always split into one
|
||||||
per line. This minimizes diffs as well as enables readers of code to
|
element per line. This minimizes diffs as well as enables readers of
|
||||||
find which commit introduced a particular entry. This also makes
|
code to find which commit introduced a particular entry. This also
|
||||||
*Black* compatible with [isort](https://pypi.org/p/isort/). Use
|
makes *Black* compatible with [isort](https://pypi.org/p/isort/). Use
|
||||||
`multi_line_output=3`, `include_trailing_comma=True`,
|
`multi_line_output=3`, `include_trailing_comma=True`,
|
||||||
`force_grid_wrap=0`, and `line_length=88` in your isort config.
|
`force_grid_wrap=0`, and `line_length=88` in your isort config.
|
||||||
|
|
||||||
|
16
black.py
16
black.py
@ -2532,13 +2532,21 @@ def ensure_visible(leaf: Leaf) -> None:
|
|||||||
|
|
||||||
def should_explode(line: Line, opening_bracket: Leaf) -> bool:
|
def should_explode(line: Line, opening_bracket: Leaf) -> bool:
|
||||||
"""Should `line` immediately be split with `delimiter_split()` after RHS?"""
|
"""Should `line` immediately be split with `delimiter_split()` after RHS?"""
|
||||||
return bool(
|
if not (
|
||||||
opening_bracket.parent
|
opening_bracket.parent
|
||||||
and opening_bracket.parent.type in {syms.atom, syms.import_from}
|
and opening_bracket.parent.type in {syms.atom, syms.import_from}
|
||||||
and opening_bracket.value in "[{("
|
and opening_bracket.value in "[{("
|
||||||
and line.bracket_tracker.delimiters
|
):
|
||||||
and line.bracket_tracker.max_delimiter_priority() == COMMA_PRIORITY
|
return False
|
||||||
)
|
|
||||||
|
try:
|
||||||
|
last_leaf = line.leaves[-1]
|
||||||
|
exclude = {id(last_leaf)} if last_leaf.type == token.COMMA else set()
|
||||||
|
max_priority = line.bracket_tracker.max_delimiter_priority(exclude=exclude)
|
||||||
|
except (IndexError, ValueError):
|
||||||
|
return False
|
||||||
|
|
||||||
|
return max_priority == COMMA_PRIORITY
|
||||||
|
|
||||||
|
|
||||||
def is_python36(node: Node) -> bool:
|
def is_python36(node: Node) -> bool:
|
||||||
|
@ -147,7 +147,18 @@ def tricky_asserts(self) -> None:
|
|||||||
"in one line because it's too long"
|
"in one line because it's too long"
|
||||||
)
|
)
|
||||||
|
|
||||||
# This is weird but true.
|
dis_c_instance_method = """\
|
||||||
|
%3d 0 LOAD_FAST 1 (x)
|
||||||
|
2 LOAD_CONST 1 (1)
|
||||||
|
4 COMPARE_OP 2 (==)
|
||||||
|
6 LOAD_FAST 0 (self)
|
||||||
|
8 STORE_ATTR 0 (x)
|
||||||
|
10 LOAD_CONST 0 (None)
|
||||||
|
12 RETURN_VALUE
|
||||||
|
""" % (
|
||||||
|
_C.__init__.__code__.co_firstlineno + 1,
|
||||||
|
)
|
||||||
|
|
||||||
assert (
|
assert (
|
||||||
expectedexpectedexpectedexpectedexpectedexpectedexpectedexpectedexpect
|
expectedexpectedexpectedexpectedexpectedexpectedexpectedexpectedexpect
|
||||||
== {
|
== {
|
||||||
|
Loading…
Reference in New Issue
Block a user