move config to config folder

This commit is contained in:
WorldTeacher
2024-09-11 15:58:56 +02:00
parent 4e117fe84f
commit 05fe6a1af0
2 changed files with 111 additions and 0 deletions

1
config/__init__.py Normal file
View File

@@ -0,0 +1 @@
from .config import Config

110
config/config.py Normal file
View File

@@ -0,0 +1,110 @@
from typing import Optional
import omegaconf
class Config:
_config: Optional[omegaconf.DictConfig] = None
def __init__(self, config_path: str):
"""
Loads the configuration file and stores it for future access.
Args:
config_path (str): Path to the YAML configuration file.
"""
self._config = omegaconf.OmegaConf.load(config_path)
@property
def institution_name(self)->str:
if self._config is None:
raise RuntimeError("Configuration not loaded")
return self._config.institution_name
@institution_name.setter
def institution_name(self, value: str):
if self._config is None:
raise RuntimeError("Configuration not loaded")
self._config.institution_name = value
@property
def loan_duration(self)->int:
if self._config is None:
raise RuntimeError("Configuration not loaded")
return self._config.default_loan_duration
@loan_duration.setter
def loan_duration(self, value: int):
if self._config is None:
raise RuntimeError("Configuration not loaded")
self._config.default_loan_duration = value
@property
def delete_inactive_user_duration(self)->int:
if self._config is None:
raise RuntimeError("Configuration not loaded")
return self._config.inactive_user_deletion
@delete_inactive_user_duration.setter
def delete_inactive_user_duration(self, value: int):
if self._config is None:
raise RuntimeError("Configuration not loaded")
self._config.inactive_user_deletion = value
@property
def catalogue(self)->bool:
if self._config is None:
raise RuntimeError("Configuration not loaded")
return self._config.catalogue
@catalogue.setter
def catalogue(self, value: bool):
if self._config is None:
raise RuntimeError("Configuration not loaded")
self._config.catalogue = value
@property
def database(self)->omegaconf.DictConfig:
if self._config is None:
raise RuntimeError("Configuration not loaded")
return self._config.database
@database.setter
def database(self, value: omegaconf.DictConfig):
if self._config is None:
raise RuntimeError("Configuration not loaded")
self._config.database = value
@property
def report(self)->omegaconf.DictConfig:
if self._config is None:
raise RuntimeError("Configuration not loaded")
return self._config.report
@report.setter
def report(self, value: omegaconf.DictConfig):
if self._config is None:
raise RuntimeError("Configuration not loaded")
self._config.report = value
@property
def debug(self)->bool:
if self._config is None:
raise RuntimeError("Configuration not loaded")
return self._config.debug
@debug.setter
def debug(self, value: bool):
if self._config is None:
raise RuntimeError("Configuration not loaded")
self._config.debug = value
@property
def log_debug(self)->bool:
if self._config is None:
raise RuntimeError("Configuration not loaded")
return self._config.log_debug
@log_debug.setter
def log_debug(self, value: bool):
if self._config is None:
raise RuntimeError("Configuration not loaded")
self._config.log_debug = value
def save(self):
if self._config is None:
raise RuntimeError("Configuration not loaded")
omegaconf.OmegaConf.save(self._config, "config/settings.yaml")
if __name__ == "__main__":
cfg = Config("config/settings.yaml")
print(cfg.database.path)
cfg.database.path = "nopathhere"
print(cfg.database.path)
cfg.save()
#cfg.updateValue("database.path", "Test")