30 lines
664 B
Python
30 lines
664 B
Python
|
|
import yaml
|
||
|
|
import os
|
||
|
|
|
||
|
|
CONFIG_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), "config.yaml")
|
||
|
|
|
||
|
|
_defaults = {
|
||
|
|
"homeassistant": {
|
||
|
|
"url": "ws://homeassistant.local:8123/api/websocket",
|
||
|
|
"token": "",
|
||
|
|
},
|
||
|
|
"pages": [],
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
def load_config(path=None):
|
||
|
|
p = path or CONFIG_PATH
|
||
|
|
with open(p, "r") as f:
|
||
|
|
cfg = yaml.safe_load(f)
|
||
|
|
if not cfg:
|
||
|
|
cfg = {}
|
||
|
|
for k, v in _defaults.items():
|
||
|
|
if k not in cfg:
|
||
|
|
cfg[k] = v
|
||
|
|
return cfg
|
||
|
|
|
||
|
|
|
||
|
|
def save_config(cfg, path=None):
|
||
|
|
p = path or CONFIG_PATH
|
||
|
|
with open(p, "w") as f:
|
||
|
|
yaml.dump(cfg, f, default_flow_style=False, sort_keys=False)
|