]> git.madduck.net Git - etc/vim.git/commitdiff

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:

Simplify single-file vs. multi-file modes
authorŁukasz Langa <lukasz@langa.pl>
Thu, 19 Apr 2018 00:59:28 +0000 (17:59 -0700)
committerŁukasz Langa <lukasz@langa.pl>
Thu, 19 Apr 2018 00:59:28 +0000 (17:59 -0700)
black.py

index e09b72380fbd60950dcc94253c61a6c8cd526d15..9f230e794c57f8e45781fa0566495f91a897d812 100644 (file)
--- a/black.py
+++ b/black.py
@@ -200,23 +200,31 @@ def main(
         return
 
     elif len(sources) == 1:
-        return_code = run_single_file_mode(
-            line_length, check, fast, quiet, write_back, sources[0]
-        )
+        return_code = reformat_one(sources[0], line_length, fast, quiet, write_back)
     else:
-        return_code = run_multi_file_mode(line_length, fast, quiet, write_back, sources)
+        loop = asyncio.get_event_loop()
+        executor = ProcessPoolExecutor(max_workers=os.cpu_count())
+        return_code = 1
+        try:
+            return_code = loop.run_until_complete(
+                schedule_formatting(
+                    sources, line_length, write_back, fast, quiet, loop, executor
+                )
+            )
+        finally:
+            shutdown(loop)
     ctx.exit(return_code)
 
 
-def run_single_file_mode(
-    line_length: int,
-    check: bool,
-    fast: bool,
-    quiet: bool,
-    write_back: WriteBack,
-    src: Path,
+def reformat_one(
+    src: Path, line_length: int, fast: bool, quiet: bool, write_back: WriteBack
 ) -> int:
-    report = Report(check=check, quiet=quiet)
+    """Reformat a single file under `src` without spawning child processes.
+
+    If `quiet` is True, non-error messages are not output. `line_length`,
+    `write_back`, and `fast` options are passed to :func:`format_file_in_place`.
+    """
+    report = Report(check=write_back is WriteBack.NO, quiet=quiet)
     try:
         changed = Changed.NO
         if not src.is_file() and str(src) == "-":
@@ -246,27 +254,6 @@ def run_single_file_mode(
     return report.return_code
 
 
-def run_multi_file_mode(
-    line_length: int,
-    fast: bool,
-    quiet: bool,
-    write_back: WriteBack,
-    sources: List[Path],
-) -> int:
-    loop = asyncio.get_event_loop()
-    executor = ProcessPoolExecutor(max_workers=os.cpu_count())
-    return_code = 1
-    try:
-        return_code = loop.run_until_complete(
-            schedule_formatting(
-                sources, line_length, write_back, fast, quiet, loop, executor
-            )
-        )
-    finally:
-        shutdown(loop)
-        return return_code
-
-
 async def schedule_formatting(
     sources: List[Path],
     line_length: int,