mode.utils.contexts¶
Context manager utilities.
-
class
mode.utils.contexts.AbstractAsyncContextManager¶ An abstract base class for asynchronous context managers.
-
class
mode.utils.contexts.AsyncExitStack¶ Async context manager for dynamic management of a stack of exit callbacks.
Example
>>> async with AsyncExitStack() as stack: ... connections = [await stack.enter_async_context(get_connection()) ... for i in range(5)] ... # All opened connections will automatically be released at the ... # end of the async with statement, even if attempts to open a ... # connection later in the list raise an exception.
-
async
enter_async_context(cm: AsyncContextManager) → Any¶ Enters the supplied async context manager.
If successful, also pushes its __aexit__ method as a callback and returns the result of the __aenter__ method.
-
push_async_exit(exit: Union[AsyncContextManager, Callable[..., Awaitable]]) → Union[AsyncContextManager, Callable[..., Awaitable]]¶ Register coroutine with the standard __aexit__ method signature.
Can suppress exceptions the same way __aexit__ method can. Also accepts any object with an __aexit__ method (registering a call to the method instead of the object itself).
-
push_async_callback(callback: Callable[..., Awaitable], *args: Any, **kwds: Any) → Callable[..., Awaitable]¶ Register an arbitrary coroutine function and arguments.
Cannot suppress exceptions.
-
async
aclose() → None¶ Immediately unwind the context stack.
-
async
-
class
mode.utils.contexts.ExitStack¶ Context manager for dynamic management of a stack of exit callbacks.
- For example:
- with ExitStack() as stack:
files = [stack.enter_context(open(fname)) for fname in filenames] # All opened files will automatically be closed at the end of # the with statement, even if attempts to open files later # in the list raise an exception.
-
close() → None¶ Immediately unwind the context stack.
-
mode.utils.contexts.asynccontextmanager(func: Callable) → Callable[..., AsyncContextManager]¶ asynccontextmanager decorator.
-
class
mode.utils.contexts.nullcontext(enter_result: Any = None)¶ Context that does nothing.