ID EN
Contextlib

asynccontextmanager

Python 3.11

Syntax

PYTHON
@contextlib.asynccontextmanager

Examples

Example 1
PYTHON
from contextlib import asynccontextmanager

@asynccontextmanager
async def get_connection():
    conn = await acquire_db_connection()
    try:
        yield conn
    finally:
        await release_db_connection(conn)

async def get_all_users():
    async with get_connection() as conn:
        return conn.query('SELECT ...')
Example 2
PYTHON
import time
from contextlib import asynccontextmanager

@asynccontextmanager
async def timeit():
    now = time.monotonic()
    try:
        yield
    finally:
        print(f'it took {time.monotonic() - now}s to run')

@timeit()
async def main():
     ... async code ...

See Also

contextmanager() asynchronous context manager decorator async with __aenter__() __aexit__() asynchronous generator asynccontextmanager()