parent
18119d3846
commit
de806405d2
14
black.py
14
black.py
@ -2726,6 +2726,14 @@ def normalize_invisible_parens(node: Node, parens_after: Set[str]) -> None:
|
||||
|
||||
check_lpar = False
|
||||
for index, child in enumerate(list(node.children)):
|
||||
# Add parentheses around long tuple unpacking in assignments.
|
||||
if (
|
||||
index == 0
|
||||
and isinstance(child, Node)
|
||||
and child.type == syms.testlist_star_expr
|
||||
):
|
||||
check_lpar = True
|
||||
|
||||
if check_lpar:
|
||||
if child.type == syms.atom:
|
||||
if maybe_make_parens_invisible_in_atom(child, parent=node):
|
||||
@ -2757,7 +2765,11 @@ def normalize_invisible_parens(node: Node, parens_after: Set[str]) -> None:
|
||||
lpar = Leaf(token.LPAR, "")
|
||||
rpar = Leaf(token.RPAR, "")
|
||||
index = child.remove() or 0
|
||||
node.insert_child(index, Node(syms.atom, [lpar, child, rpar]))
|
||||
prefix = child.prefix
|
||||
child.prefix = ""
|
||||
new_child = Node(syms.atom, [lpar, child, rpar])
|
||||
new_child.prefix = prefix
|
||||
node.insert_child(index, new_child)
|
||||
|
||||
check_lpar = isinstance(child, Leaf) and child.value in parens_after
|
||||
|
||||
|
10
tests/data/tupleassign.py
Normal file
10
tests/data/tupleassign.py
Normal file
@ -0,0 +1,10 @@
|
||||
sdfjklsdfsjldkflkjsf, sdfjsdfjlksdljkfsdlkf, sdfsdjfklsdfjlksdljkf, sdsfsdfjskdflsfsdf = 1, 2, 3
|
||||
|
||||
|
||||
# output
|
||||
(
|
||||
sdfjklsdfsjldkflkjsf,
|
||||
sdfjsdfjlksdljkfsdlkf,
|
||||
sdfsdjfklsdfjlksdljkf,
|
||||
sdsfsdfjskdflsfsdf,
|
||||
) = (1, 2, 3)
|
@ -542,6 +542,14 @@ def test_bracket_match(self) -> None:
|
||||
black.assert_equivalent(source, actual)
|
||||
black.assert_stable(source, actual, black.FileMode())
|
||||
|
||||
@patch("black.dump_to_file", dump_to_stderr)
|
||||
def test_tuple_assign(self) -> None:
|
||||
source, expected = read_data("tupleassign")
|
||||
actual = fs(source)
|
||||
self.assertFormatEqual(expected, actual)
|
||||
black.assert_equivalent(source, actual)
|
||||
black.assert_stable(source, actual, black.FileMode())
|
||||
|
||||
def test_tab_comment_indentation(self) -> None:
|
||||
contents_tab = "if 1:\n\tif 2:\n\t\tpass\n\t# comment\n\tpass\n"
|
||||
contents_spc = "if 1:\n if 2:\n pass\n # comment\n pass\n"
|
||||
|
Loading…
Reference in New Issue
Block a user