X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/cb5aadad74c0a1c9c514a633c632c99b668c70ed..c071af761e1550c6e4ebab8e5af747d2d8fdd48e:/black.py diff --git a/black.py b/black.py index 3e3ae0a..537ba59 100644 --- a/black.py +++ b/black.py @@ -40,7 +40,7 @@ from blib2to3 import pygram, pytree from blib2to3.pgen2 import driver, token from blib2to3.pgen2.parse import ParseError -__version__ = "18.4a0" +__version__ = "18.4a1" DEFAULT_LINE_LENGTH = 88 # types syms = pygram.python_symbols @@ -1498,7 +1498,7 @@ def is_split_before_delimiter(leaf: Leaf, previous: Leaf = None) -> int: if ( leaf.type in VARARGS and leaf.parent - and leaf.parent.type in {syms.argument, syms.typedargslist} + and leaf.parent.type in {syms.argument, syms.typedargslist, syms.dictsetmaker} ): # * and ** might also be MATH_OPERATORS but in this case they are not. # Don't treat them as a delimiter. @@ -1998,6 +1998,9 @@ def normalize_string_quotes(leaf: Leaf) -> None: else: new_body = escaped_orig_quote.sub(rf"\1{orig_quote}", body) new_body = unescaped_new_quote.sub(rf"\1\\{new_quote}", new_body) + # Add escapes again for consecutive occurences of new_quote (sub + # doesn't match overlapping substrings). + new_body = unescaped_new_quote.sub(rf"\1\\{new_quote}", new_body) if new_quote == '"""' and new_body[-1] == '"': # edge case: new_body = new_body[:-1] + '\\"' @@ -2088,14 +2091,16 @@ def max_delimiter_priority_in_atom(node: LN) -> int: first = node.children[0] last = node.children[-1] - if first.type == token.LPAR and last.type == token.RPAR: - bt = BracketTracker() - for c in node.children[1:-1]: - if isinstance(c, Leaf): - bt.mark(c) - else: - for leaf in c.leaves(): - bt.mark(leaf) + if not (first.type == token.LPAR and last.type == token.RPAR): + return 0 + + bt = BracketTracker() + for c in node.children[1:-1]: + if isinstance(c, Leaf): + bt.mark(c) + else: + for leaf in c.leaves(): + bt.mark(leaf) try: return bt.max_delimiter_priority()