/
eb
/
python_learn
Обзор
Документация
Войти
/
eb
/
python_learn
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
venv/Lib/site-packages/pip/_internal/cli/command_context.py
36 строк
942 B
EvgeniyBudaev
Type Hints
01 мар 2021, 15:20
01 мар 2021, 15:20
6f8a194
Код
Авторство
О чём код?
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)