manager.py 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. from state.base import State
  2. from uuid import UUID
  3. class Manager:
  4. def __init__(self, state: State):
  5. self._state = state
  6. bottom = self._state.create_node()
  7. bottom_id = self._state.create_nodevalue(str(bottom))
  8. bottom_label = self._state.create_nodevalue("Bottom")
  9. to_uuid = self._state.create_edge(self._state.read_root(), bottom_id)
  10. to_label = self._state.create_edge(self._state.read_root(), bottom_label)
  11. self._state.create_edge(to_label, bottom_id)
  12. self._state.create_edge(to_uuid, bottom_label)
  13. @property
  14. def models(self):
  15. root = self._state.read_root()
  16. for key in self._state.read_dict_keys(root):
  17. try:
  18. UUID(key) # checks whether the key is a valid UUID
  19. name_node = self._state.read_dict(root, key)
  20. name = self._state.read_value(name_node)
  21. yield key, name
  22. except ValueError:
  23. pass
  24. if __name__ == '__main__':
  25. from state.devstate import DevState
  26. m = Manager(DevState())
  27. print(list(m.models))