Files
whisperbox-transcribe/app/web/injections/db.py

27 lines
689 B
Python

from functools import lru_cache
from typing import Generator
from fastapi import Depends
from sqlalchemy.orm import Session
from app.shared.db.base import make_engine, make_session_local
from app.shared.settings import Settings
from app.web.injections.settings import get_settings
@lru_cache
def session_local(database_url: str):
engine = make_engine(database_url)
return make_session_local(engine)
def get_session_local(settings: Settings = Depends(get_settings)):
return session_local(settings.DATABASE_URI)
def get_session(
session_local=Depends(get_session_local),
) -> Generator[Session, None, None]:
with session_local() as session:
yield session