""" Config SPDX - License - Identifier: LGPL - 3.0 - or -later Copyright © 2023 Project Peter Yefi peteryefi@gmail.com """ import distutils import os import platform from pathlib import Path import hub.helpers.dictionaries from hub.persistence.db_control import DBControl from hub.persistence.repository import Repository from hub.catalog_factories.energy_systems_catalog_factory import EnergySystemsCatalogFactory class Config: def __init__(self): dotenv_path = "{}/.local/etc/hub_api/.env".format(os.path.expanduser('~')) if platform.system() == 'Linux': dotenv_path = Path(dotenv_path).resolve() environment = 'PROD' database_name = 'montreal_retrofit' self._database = DBControl(db_name=database_name, app_env=environment, dotenv_path=dotenv_path) self._repository = Repository(db_name=database_name, app_env=environment, dotenv_path=dotenv_path) self._energy_systems_catalog = EnergySystemsCatalogFactory('montreal_custom').catalog self._dictionaries = { 'pluto': hub.helpers.dictionaries.Dictionaries().pluto_function_to_hub_function, 'htf': hub.helpers.dictionaries.Dictionaries().hft_function_to_hub_function, 'montreal': hub.helpers.dictionaries.Dictionaries().montreal_function_to_hub_function, 'alkis': hub.helpers.dictionaries.Dictionaries().alkis_function_to_hub_function, 'eilat': hub.helpers.dictionaries.Dictionaries().eilat_function_to_hub_function } @property def database(self): return self._database @property def repository(self): return self._repository @property def energy_systems_catalog(self): return self._energy_systems_catalog @staticmethod def max_file_size(): return 10 * 1024 * 1024 # 10 MB @property def function_dictionary(self, dictionary): return self._dictionaries[dictionary] @property def insel(self): return distutils.spawn.find_executable('insel') @property def sra(self): return distutils.spawn.find_executable('sra') @property def base_uri(self): return self._base_uri