Skip to content

Commit

Permalink
Use nullcontext in case when lock is None. Shutdown pool after code f…
Browse files Browse the repository at this point in the history
…ormatting. (#928)

(cherry picked from commit 90d205d1f50d4f801b3b3de3c40590eece10c4cd)
  • Loading branch information
uriyyo authored and qualname committed Jul 31, 2019
1 parent 7a02076 commit 0892d9a
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions black.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import asyncio
from concurrent.futures import Executor, ProcessPoolExecutor
from contextlib import contextmanager
from datetime import datetime
from enum import Enum
from functools import lru_cache, partial, wraps
Expand Down Expand Up @@ -523,6 +524,7 @@ def reformat_many(
)
finally:
shutdown(loop)
executor.shutdown()


async def schedule_formatting(
Expand Down Expand Up @@ -628,9 +630,8 @@ def format_file_in_place(
src_name = f'{src}\t{then} +0000'
dst_name = f'{src}\t{now} +0000'
diff_contents = diff(src_contents, dst_contents, src_name, dst_name)
if lock:
lock.acquire()
try:

with lock or nullcontext():
f = io.TextIOWrapper(
sys.stdout.buffer,
encoding=encoding,
Expand All @@ -639,9 +640,7 @@ def format_file_in_place(
)
f.write(diff_contents)
f.detach()
finally:
if lock:
lock.release()

return True


Expand Down Expand Up @@ -3593,6 +3592,13 @@ def dump_to_file(*output: str) -> str:
return f.name


@contextmanager
def nullcontext() -> Iterator[None]:
"""Return context manager that does nothing.
Similar to `nullcontext` from python 3.7"""
yield


def diff(a: str, b: str, a_name: str, b_name: str) -> str:
"""Return a unified diff string between strings `a` and `b`."""
import difflib
Expand Down

0 comments on commit 0892d9a

Please sign in to comment.