from sqlmodel import create_engine from sqlalchemy.ext.asyncio import AsyncEngine import os from typing import AsyncGenerator from sqlmodel.ext.asyncio.session import AsyncSession from contextlib import asynccontextmanager # Get database URL from environment variable DATABASE_URL = os.getenv("DATABASE_URL", "sqlite+aiosqlite:///./todo_app.db") # Create async engine engine = AsyncEngine(create_engine(DATABASE_URL, echo=True)) async def get_session() -> AsyncGenerator[AsyncSession, None]: async with AsyncSession(engine) as session: yield session