fieldpoc/fieldpoc/config.py

58 lines
1.3 KiB
Python

#!/usr/bin/env python3
class ConfigBase:
_DEFAULTS = {}
def __init__(self, c):
self._c = c
def __getattr__(self, name):
# check if key is in config
if name in self._c.keys():
return self._c.get(name)
# check if key is in default config
elif name in self._DEFAULTS.keys():
return self._DEFAULTS.get(name)
else:
raise AttributeError()
class ControllerConfig(ConfigBase):
def __init__(self, c):
self._c = c
class DatabaseConfig(ConfigBase):
pass
class DectConfig(ConfigBase):
_DEFAULTS = {
"enabled": True,
}
def __init__(self, c):
self._c = c
def check(self):
return True
class ExtensionsConfig(ConfigBase):
pass
class YateConfig(ConfigBase):
_DEFAULTS = {
"enabled": True,
}
class Config:
def __init__(self, c):
self.controller = ControllerConfig(c.get("controller", {}))
self.database = DatabaseConfig(c.get("database", {}))
self.dect = DectConfig(c.get("dect", {}))
self.extensions = ExtensionsConfig(c.get("extensions", {}))
self.yate = YateConfig(c.get("yate", {}))
def check(self):
return self.dect.check()