Python ContextLib

contextlib is a module for working with context managers.


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


CategoryRicottone

Python/ContextLib (last edited 2023-06-15 20:50:29 by DominicRicottone)