resume working
diff --git a/wally/config.py b/wally/config.py
index 46669f0..cb47567 100644
--- a/wally/config.py
+++ b/wally/config.py
@@ -1,10 +1,13 @@
from typing import Any, Dict, Optional
-from .storage import IStorable
+from .result_classes import IStorable
-ConfigBlock = Any
+
+ConfigBlock = Dict[str, Any]
class Config(IStorable):
+ yaml_tag = 'config'
+
def __init__(self, dct: ConfigBlock) -> None:
# make mypy happy, set fake dict
self.__dict__['_dct'] = {}
@@ -25,17 +28,21 @@
# None, disabled, enabled, metadata, ignore_errors
self.discovery = None # type: Optional[str]
- self.logging = None # type: ConfigBlock
- self.ceph = None # type: ConfigBlock
- self.openstack = None # type: ConfigBlock
- self.fuel = None # type: ConfigBlock
- self.test = None # type: ConfigBlock
- self.sensors = None # type: ConfigBlock
+ self.logging = None # type: 'Config'
+ self.ceph = None # type: 'Config'
+ self.openstack = None # type: 'Config'
+ self.fuel = None # type: 'Config'
+ self.test = None # type: 'Config'
+ self.sensors = None # type: 'Config'
self._dct.clear()
self._dct.update(dct)
- def raw(self) -> ConfigBlock:
+ @classmethod
+ def fromraw(cls, data: Dict[str, Any]) -> 'Config':
+ return cls(data)
+
+ def raw(self) -> Dict[str, Any]:
return self._dct
def get(self, path: str, default: Any = None) -> Any: