Source code for mode.utils.contexts
"""Context manager utilities."""
from types import TracebackType
from typing import Any, Optional, Type
try:
from contextlib import AbstractAsyncContextManager
from contextlib import AsyncExitStack, ExitStack
from contextlib import asynccontextmanager
from contextlib import nullcontext
except ImportError:
from ._py37_contextlib import AbstractAsyncContextManager
from ._py37_contextlib import AsyncExitStack, ExitStack
from ._py37_contextlib import asynccontextmanager
from ._py37_contextlib import nullcontext
__all__ = [
'AbstractAsyncContextManager',
'AsyncExitStack',
'ExitStack',
'asynccontextmanager',
'nullcontext',
'asyncnullcontext',
]
[docs]class asyncnullcontext(AbstractAsyncContextManager):
"""Context for async-with statement doing nothing."""
enter_result: Any
def __init__(self, enter_result: Any = None) -> None:
self.enter_result = enter_result
async def __aenter__(self) -> 'asyncnullcontext':
return self.enter_result
async def __aexit__(self,
exc_type: Type[BaseException] = None,
exc_val: BaseException = None,
exc_tb: TracebackType = None) -> Optional[bool]:
...