34 lines
1015 B
Python
34 lines
1015 B
Python
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]
|
|
|