]> git.madduck.net Git - etc/vim.git/blobdiff - black.py

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Blacken .py files in blib2to3 (#1011)
[etc/vim.git] / black.py
index b8736e7b1d9360085674307b71318ef427d873ab..077698311087d75ad54b4090c8db231ccb10c55f 100644 (file)
--- a/black.py
+++ b/black.py
@@ -12,7 +12,7 @@ from multiprocessing import Manager, freeze_support
 import os
 from pathlib import Path
 import pickle
-import re
+import regex as re
 import signal
 import sys
 import tempfile
@@ -1341,19 +1341,15 @@ class Line:
         # only report an unsplittable 'type: ignore' if this line was
         # one line in the original code.
 
-        # Like in the type comment check above, we need to skip a black added
-        # trailing comma or invisible paren, since it will be the original leaf
-        # before it that has the original line number.
-        last_idx = -1
-        last_leaf = self.leaves[-1]
-        if len(self.leaves) > 2 and (
-            last_leaf.type == token.COMMA
-            or (last_leaf.type == token.RPAR and not last_leaf.value)
-        ):
-            last_idx = -2
+        # Grab the first and last line numbers, skipping generated leaves
+        first_line = next((l.lineno for l in self.leaves if l.lineno != 0), 0)
+        last_line = next((l.lineno for l in reversed(self.leaves) if l.lineno != 0), 0)
 
-        if self.leaves[0].lineno == self.leaves[last_idx].lineno:
-            for node in self.leaves[last_idx:]:
+        if first_line == last_line:
+            # We look at the last two leaves since a comma or an
+            # invisible paren could have been added at the end of the
+            # line.
+            for node in self.leaves[-2:]:
                 for comment in self.comments.get(id(node), []):
                     if is_type_comment(comment, " ignore"):
                         return True
@@ -3810,7 +3806,8 @@ def re_compile_maybe_verbose(regex: str) -> Pattern[str]:
     """
     if "\n" in regex:
         regex = "(?x)" + regex
-    return re.compile(regex)
+    compiled: Pattern[str] = re.compile(regex)
+    return compiled
 
 
 def enumerate_reversed(sequence: Sequence[T]) -> Iterator[Tuple[Index, T]]: