""" Persistence (Postgresql) configuration SPDX - License - Identifier: LGPL - 3.0 - or -later Copyright © 2022 Concordia CERC group Project Coder Peter Yefi peteryefi@gmail.com """ import os from dotenv import load_dotenv from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() # load environmental variables load_dotenv() class BaseConfiguration(object): """ Base configuration class to hold common persistence configuration """ def __init__(self): self._db_name = os.getenv('DB_NAME') self._db_host = os.getenv('DB_HOST') self._db_user = os.getenv('DB_USER') self._db_pass = os.getenv('DB_PASSWORD') self._db_port = os.getenv('DB_PORT') def conn_string(self): """ Returns a connection string postgresql :return: connection string """ if self._db_pass: return f'postgresql://{self._db_user}:{self._db_pass}@{self._db_host}:{self._db_port}/{self._db_name}' return f'postgresql://{self._db_user}@{self._db_host}:{self._db_port}/{self._db_name}'