def from_config(cls, config: MainConfig, base) -> Database: """ Create an instance of Database from a configuration file. Parameters ---------- config : MainConfig Contents of the configuration file. base : SQLAlchemy declarative Base Base to which the CDM tables are bound via SQLAlchemy's declarative model Returns ------- Database """ db_config = config.database password = db_config.password.get_secret_value() url = URL( drivername=db_config.drivername, host=db_config.host, port=db_config.port, database=db_config.database_name, username=db_config.username, password=password, query=db_config.query, ) if not password and not Database._can_connect_without_password(url): url.password = getpass('Database password:') return cls(uri=url, schema_translate_map=config.schema_translate_map, base=base)
from sqlalchemy import create_engine from sqlalchemy.engine.url import URL from sqlalchemy.orm import sessionmaker, Session, scoped_session from .config import database_config __engine_url = URL(database_config['driver']) __engine_url.username = database_config['user'] __engine_url.password = database_config['password'] __engine_url.host = database_config['host'] __engine_url.database = database_config['name'] engine_url = str(__engine_url) __engine = create_engine(str(__engine_url) + '?charset=utf8') class __Database: __session = None def __init__(self, session_maker): """ :type session_maker: sessionmaker """ self.__session__maker = session_maker def get_session(self): """