From: Ɓukasz Langa Date: Thu, 19 Apr 2018 00:59:28 +0000 (-0700) Subject: Simplify single-file vs. multi-file modes X-Git-Url: https://git.madduck.net/etc/vim.git/commitdiff_plain/15d5e36ea38988084584639b02aafcaaa2744dcf?ds=sidebyside Simplify single-file vs. multi-file modes --- diff --git a/black.py b/black.py index e09b723..9f230e7 100644 --- 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,