alexchilton's picture
deploy: raise similarity threshold to 0.19
e050f79
Raw
History Blame Contribute Delete
869 Bytes
from collections.abc import Iterator
from contextlib import contextmanager
from sqlalchemy import Engine, create_engine
from sqlalchemy.orm import Session, sessionmaker
from backend.config import get_settings
def get_engine(url: str | None = None) -> Engine:
settings = get_settings()
database_url = url or settings.database_url
connect_args: dict[str, object] = {}
if database_url.startswith("sqlite"):
connect_args = {"check_same_thread": False}
return create_engine(database_url, connect_args=connect_args)
@contextmanager
def get_session(engine: Engine) -> Iterator[Session]:
factory = sessionmaker(autocommit=False, autoflush=False, bind=engine)
session = factory()
try:
yield session
session.commit()
except Exception:
session.rollback()
raise
finally:
session.close()