58 lines
1.3 KiB
Python
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()
|