import os from sqlalchemy import create_engine from sqlalchemy.orm import DeclarativeBase, sessionmaker def _db_url() -> str: host = os.getenv("DB_HOST", "localhost") port = os.getenv("DB_PORT", "5432") name = os.getenv("DB_NAME", "fixture") user = os.getenv("DB_USER", "postgres") password = os.getenv("DB_PASSWORD", "fixture") return f"postgresql+psycopg2://{user}:{password}@{host}:{port}/{name}" engine = create_engine(_db_url(), echo=False, future=True) SessionLocal = sessionmaker(bind=engine, autoflush=False, autocommit=False, future=True) class Base(DeclarativeBase): pass def get_session(): session = SessionLocal() try: yield session finally: session.close()