Refactored some stuff

This commit is contained in:
Andrei Bondarenko 2021-08-16 07:57:17 +02:00
parent 9b3a4c5a44
commit f9aa6a8adf
3 changed files with 37 additions and 54 deletions

View file

@ -1,7 +0,0 @@
from abc import ABC, abstractmethod
from uuid import UUID
class Service(ABC):
def __init__(self, model: UUID):
self.model = model

View file

@ -1,11 +1,10 @@
from services.base import Service, UUID
from uuid import UUID
from state.base import State
from typing import Any, List
class Bottom(Service):
def __init__(self, model: UUID, state: State):
super().__init__(model)
class Bottom:
def __init__(self, state: State):
self.state = state
def create_node(self, value=None) -> UUID:
@ -20,9 +19,6 @@ class Bottom(Service):
else:
return self.state.create_dict(source, label, target)
def read_model_root(self) -> UUID:
return self.model
def read_value(self, node: UUID) -> Any:
return self.state.read_value(node)
@ -68,6 +64,20 @@ class Bottom(Service):
edges = [e for e in edges if read_label(e) == label]
return edges
def read_incoming_nodes(self, target: UUID, label=None) -> List[UUID]:
edges = self.read_incoming_edges(target, label)
if edges is None or len(edges) == 0:
return []
else:
return [self.read_edge_source(e) for e in edges]
def read_outgoing_nodes(self, source: UUID, label=None) -> List[UUID]:
edges = self.read_outgoing_edges(source, label)
if edges is None or len(edges) == 0:
return []
else:
return [self.read_edge_target(e) for e in edges]
def read_keys(self, element: UUID) -> List[str]:
key_nodes = self.state.read_dict_keys(element)
unique_keys = {self.state.read_value(node) for node in key_nodes}