Python ContextLib
contextlib is a module for working with context managers.
Contents
Decorators
@ContextManager
To convert a function that yields a value into a context manager, try:
from contextlib import contextmanager @contextmanager def managed_resource(): resource = acquire_resource() try: yield resource finally: release_resource(resource) with managed_resource() as resource: ...
Abstract Base Classes
The module contains two abstract base classes that can be used with isinstance or issubclass, and for type annotations
AbstractContextManager
Implements a simple __enter__() method (which returns self) and an abstract __exit__() method (which returns None).
AbstractAsyncContextManager
Implements a simple __aenter__() method (which returns self) and an abstract __aexit__() method (which returns None).
See also
Python contextlib module documentation
Python Module of the Day article for contextlib