Example #1
0
    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)
Example #2
0
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):
        """