]> 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:

don't uvloop.install on import (#2303)
authorJelle Zijlstra <jelle.zijlstra@gmail.com>
Thu, 3 Jun 2021 17:13:55 +0000 (10:13 -0700)
committerGitHub <noreply@github.com>
Thu, 3 Jun 2021 17:13:55 +0000 (19:13 +0200)
CHANGES.md
src/black/__init__.py
src/black/concurrency.py
src/blackd/__init__.py

index 3427fe8e391b71e1ca3e4ef90ebbffc4f141b56a..e4fa25c90f4efa7fa045a589fcafadaeace377eb 100644 (file)
@@ -6,6 +6,7 @@
 
 - Correct max string length calculation when there are string operators (#2292)
 - Fixed option usage when using the `--code` flag (#2259)
+- Do not call `uvloop.install()` when _Black_ is used as a library (#2303)
 
 ## 21.5b2
 
index 1d0ad7d5dddeeb5f735dd8557cbc9a85ac91ed97..d95e9b13bb92b80cdab097c2ec840d4fbf13d52a 100644 (file)
@@ -38,7 +38,7 @@ from black.comments import normalize_fmt_off
 from black.mode import Mode, TargetVersion
 from black.mode import Feature, supports_feature, VERSION_TO_FEATURES
 from black.cache import read_cache, write_cache, get_cache_info, filter_cached, Cache
-from black.concurrency import cancel, shutdown
+from black.concurrency import cancel, shutdown, maybe_install_uvloop
 from black.output import dump_to_file, diff, color_diff, out, err
 from black.report import Report, Changed
 from black.files import find_project_root, find_pyproject_toml, parse_pyproject_toml
@@ -54,14 +54,6 @@ from blib2to3.pgen2 import token
 
 from _black_version import version as __version__
 
-# If our environment has uvloop installed lets use it
-try:
-    import uvloop
-
-    uvloop.install()
-except ImportError:
-    pass
-
 # types
 FileContent = str
 Encoding = str
@@ -1112,6 +1104,7 @@ def patch_click() -> None:
 
 
 def patched_main() -> None:
+    maybe_install_uvloop()
     freeze_support()
     patch_click()
     main()
index 119a9a71fafc8828913e9d91ae65df3dfb2aab0d..69d79f534e82fc32267e61a1a10e319ca51585bd 100644 (file)
@@ -6,6 +6,21 @@ from typing import Any, Iterable
 from black.output import err
 
 
+def maybe_install_uvloop() -> None:
+    """If our environment has uvloop installed we use it.
+
+    This is called only from command-line entry points to avoid
+    interfering with the parent process if Black is used as a library.
+
+    """
+    try:
+        import uvloop
+
+        uvloop.install()
+    except ImportError:
+        pass
+
+
 def cancel(tasks: Iterable["asyncio.Task[Any]"]) -> None:
     """asyncio signal handler that cancels all `tasks` and reports to stderr."""
     err("Aborted!")
index 10b616894dabbaa566691f42bcfa5017c8dd6eef..3e2a7e7c30f3eb3ed18d51bd18b4322069b588c3 100644 (file)
@@ -20,16 +20,9 @@ except ImportError as ie:
     sys.exit(-1)
 
 import black
+from black.concurrency import maybe_install_uvloop
 import click
 
-# If our environment has uvloop installed lets use it
-try:
-    import uvloop
-
-    uvloop.install()
-except ImportError:
-    pass
-
 from _black_version import version as __version__
 
 # This is used internally by tests to shut down the server prematurely
@@ -210,6 +203,7 @@ def parse_python_variant_header(value: str) -> Tuple[bool, Set[black.TargetVersi
 
 
 def patched_main() -> None:
+    maybe_install_uvloop()
     freeze_support()
     black.patch_click()
     main()