from sqlalchemy.ext.asyncio import ( AsyncEngine, AsyncSession, async_sessionmaker, create_async_engine, ) def init_engine(database_url: str) -> AsyncEngine: return create_async_engine( database_url, echo=False, pool_pre_ping=True, ) def get_session_factory(engine: AsyncEngine) -> async_sessionmaker[AsyncSession]: return async_sessionmaker( engine, class_=AsyncSession, expire_on_commit=False, autoflush=False, )