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
