diff lib/python3.8/site-packages/pip/_internal/cli/command_context.py @ 0:9e54283cc701 draft

"planemo upload commit d12c32a45bcd441307e632fca6d9af7d60289d44"
author guerler
date Mon, 27 Jul 2020 03:47:31 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/python3.8/site-packages/pip/_internal/cli/command_context.py	Mon Jul 27 03:47:31 2020 -0400
@@ -0,0 +1,36 @@
+from contextlib import contextmanager
+
+from pip._vendor.contextlib2 import ExitStack
+
+from pip._internal.utils.typing import MYPY_CHECK_RUNNING
+
+if MYPY_CHECK_RUNNING:
+    from typing import Iterator, ContextManager, TypeVar
+
+    _T = TypeVar('_T', covariant=True)
+
+
+class CommandContextMixIn(object):
+    def __init__(self):
+        # type: () -> None
+        super(CommandContextMixIn, self).__init__()
+        self._in_main_context = False
+        self._main_context = ExitStack()
+
+    @contextmanager
+    def main_context(self):
+        # type: () -> Iterator[None]
+        assert not self._in_main_context
+
+        self._in_main_context = True
+        try:
+            with self._main_context:
+                yield
+        finally:
+            self._in_main_context = False
+
+    def enter_context(self, context_provider):
+        # type: (ContextManager[_T]) -> _T
+        assert self._in_main_context
+
+        return self._main_context.enter_context(context_provider)