from ...db.config.config import get_engine_configuration from sqlalchemy import create_engine as sqlalchemy_create_engine from functools import cache from sqlalchemy.orm import sessionmaker import logging logger = logging.getLogger(__name__) @cache def create_engine(*, engine_string=None, echo=None): logger.debug(f"create_engine {engine_string}") if engine_string is None: engine_string, echo = get_engine_configuration() engine = sqlalchemy_create_engine(engine_string, echo=echo=="true", future=True) # TODO Session = sessionmaker(engine) session = Session() return engine, session