""" Configuration helper SPDX - License - Identifier: LGPL - 3.0 - or -later Copyright © 2020 Project Author Guille Gutierrez guillermo.gutierrezmorote@concordia.ca """ import configparser from pathlib import Path class ConfigurationHelper: """ Configuration class """ def __init__(self): base_path = Path().resolve().parent config_file = Path(base_path / 'libs/config/configuration.ini').resolve() self._config = configparser.ConfigParser() self._config.read(config_file) @property def h_i(self): """ Configured internal convective coefficient in W/m2K :return: float """ return self._config.getfloat('convective_fluxes', 'h_i') @property def h_e(self): """ Configured external convective coefficient in W/m2K :return: float """ return self._config.getfloat('convective_fluxes', 'h_e') @property def frame_ratio(self): """ Configured frame ratio :return: float """ return self._config.getfloat('windows', 'frame_ratio') @property def heated(self): """ Configured heated flag :return: Boolean """ return self._config.getboolean('thermal_zones', 'heated') @property def cooled(self): """ Configured cooled flag :return: Boolean """ return self._config.getboolean('thermal_zones', 'cooled') @property def additional_thermal_bridge_u_value(self): """ Configured additional thermal bridge u value W/m2K :return: """ return self._config.getfloat('thermal_zones', 'additional_thermal_bridge_u_value') @property def indirectly_heated_area_ratio(self): """ Configured indirectly heated area ratio :return: float """ return self._config.getfloat('thermal_zones', 'indirectly_heated_area_ratio') @property def infiltration_rate_system_on(self): """ Configured infiltration rate system on in air change per hour :return: float """ return self._config.getfloat('thermal_zones', 'infiltration_rate_system_on') @property def outside_solar_absorptance(self): """ Configured exterior solar absorptance :return: float """ return self._config.getfloat('thermal_zones', 'outside_solar_absorptance') @property def min_air_change(self): """ Configured minimum air change rate in air changes per hour :return: float """ return self._config.getfloat('thermal_zones', 'min_air_change')