/
sysadminrus
/
AtolPython
Обзор
Документация
Войти
/
sysadminrus
/
AtolPython
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
env/Lib/site-packages/pip/_internal/cli/command_context.py
27 строк
774 B
sysadminrus
first commit
26 июн 2023, 11:52
26 июн 2023, 11:52
cf11e30
Код
Авторство
О чём код?
from contextlib import ExitStack, contextmanager from typing import ContextManager, Generator, TypeVar _T = TypeVar("_T", covariant=True) class CommandContextMixIn: def __init__(self) -> None: super().__init__() self._in_main_context = False self._main_context = ExitStack() @contextmanager def main_context(self) -> Generator[None, None, 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: ContextManager[_T]) -> _T: assert self._in_main_context return self._main_context.enter_context(context_provider)