HighNeed_projekt_inz/highneed/venv/lib/python3.6/site-packages/pip/_internal/cli/command_context.py
Mikhail Ronchyk ddf3d072cc first commit
2021-03-25 15:15:48 +03:00

37 lines
978 B
Python

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 ContextManager, Iterator, TypeVar
_T = TypeVar('_T', covariant=True)
class CommandContextMixIn:
def __init__(self):
# type: () -> None
super().__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)