Coverage for /usr/lib/python3.10/site-packages/hyd/backend/db.py: 100%
13 statements
« prev ^ index » next coverage.py v7.0.3, created at 2023-02-06 00:31 +0000
« prev ^ index » next coverage.py v7.0.3, created at 2023-02-06 00:31 +0000
1import sqlalchemy
2import sqlalchemy.orm
3from fastapi import Request
4from sqlalchemy.orm import declarative_base, sessionmaker
6from hyd.backend.exc import HydError
7from hyd.backend.util.const import MARIADB_ADDRESS, MARIADB_PASSWORD
9EXTEND_EXISTING = True
11URL_MARIADB = (
12 f"mariadb+mariadbconnector://hyd_user:{MARIADB_PASSWORD}@{MARIADB_ADDRESS}:3306/hyd_db"
13)
16engine: sqlalchemy.engine.base.Engine = sqlalchemy.create_engine(
17 URL_MARIADB,
18 # echo=True prints all SQL statements being executed to the console as they happen
19 # echo=True,
20 # use sqlalchemy.future.Engine for full 2.0 compatibility
21 future=True,
22)
24DeclarativeMeta: type = declarative_base()
26# for typing see https://github.com/sqlalchemy/sqlalchemy/issues/7656
27SessionMaker = sessionmaker(
28 bind=engine,
29 autocommit=False,
30 autoflush=False,
31)
33# Dependency
34def get_db(request: Request):
35 return request.state.db