muMLE/core/manager.py
2021-07-24 22:46:59 +02:00

32 lines
1.1 KiB
Python

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))