import os from loguru import logger class Config: OPTIONS = { 'mqtt': [ 'login', 'password', 'ca', 'cert', 'key', 'broker', 'port', 'meterPublishTopic', 'meterPublishPeriod', 'relaisSubscribeTopic' ], 'modbus': [ 'gateway' ] } def __init__(self): self.values = {} for section, keys in Config.OPTIONS.items(): self.values[section] = {} for key in keys: varname = f"{section}__{key}".upper() try: self.values[section][key] = os.environ[varname] logger.info(f"Config: {section} {key} -> {self.values[section][key]}") except KeyError: pass def __getitem__(self, section): return self.values[section]