diff --git a/core/__init__.py b/core/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/core/manager.py b/core/manager.py new file mode 100644 index 0000000..ba90ea1 --- /dev/null +++ b/core/manager.py @@ -0,0 +1,32 @@ +from state.base import State +from uuid import UUID + + +class Manager: + def __init__(self, state: State): + self._state = state + bottom = self._state.create_node() + bottom_id = self._state.create_nodevalue(str(bottom)) + bottom_label = self._state.create_nodevalue("Bottom") + to_uuid = self._state.create_edge(self._state.read_root(), bottom_id) + to_label = self._state.create_edge(self._state.read_root(), bottom_label) + self._state.create_edge(to_label, bottom_id) + self._state.create_edge(to_uuid, bottom_label) + + @property + def models(self): + root = self._state.read_root() + for key in self._state.read_dict_keys(root): + try: + UUID(key) # checks whether the key is a valid UUID + name_node = self._state.read_dict(root, key) + name = self._state.read_value(name_node) + yield key, name + except ValueError: + pass + + +if __name__ == '__main__': + from state.devstate import DevState + m = Manager(DevState()) + print(list(m.models)) diff --git a/services/__init__.py b/services/__init__.py new file mode 100644 index 0000000..e69de29