""" FastAPI dependency that yields an async SQLAlchemy session per request. Usage in route handlers: from deps.db import get_db from sqlalchemy.ext.asyncio import AsyncSession from fastapi import Depends @router.get("/items") async def list_items(session: AsyncSession = Depends(get_db)): ... """ from typing import AsyncGenerator from sqlalchemy.ext.asyncio import AsyncSession from db.session import AsyncSessionLocal async def get_db() -> AsyncGenerator[AsyncSession, None]: """Yield a per-request AsyncSession; close it when the request is done.""" async with AsyncSessionLocal() as session: try: yield session finally: await session.close()