# pylint: disable=too-few-public-methods import dictdatabase as DDB from config.db_settings import DatabaseSettings class IsSingletonException(Exception): pass class Database: """ This is a singleton that can be accessed using get_instance() """ __instance = None db = DDB db.config.storage_directory = DatabaseSettings.DATABASE_DIRECTORY if not db.at("requests").exists(): db.at("requests").create({}) if not db.at("profiles").exists(): db.at("profiles").create({}) @staticmethod def get_instance(): if Database.__instance is None: Database() return Database.__instance def __init__(self): if Database.__instance is not None: raise IsSingletonException("This class is a singleton") Database.__instance = self