diff --git a/pipeline/src/base.py b/pipeline/src/base.py index 7f4ee74b..843c53d2 100644 --- a/pipeline/src/base.py +++ b/pipeline/src/base.py @@ -34,6 +34,16 @@ def has_property(self, name): if property.name == name: return True return False + + def __eq__(self, other: Node) -> bool: + + for property in self.properties: + property_other = getattr(other, property.name, None) + property_self = getattr(self, property.name, None) + if property_other != property_self: + return False + + return True def to_jsonld(self, include_empty_properties=True, embed_linked_nodes=True, with_context=True): """ diff --git a/pipeline/src/collection.py b/pipeline/src/collection.py index b1226025..65e421ab 100644 --- a/pipeline/src/collection.py +++ b/pipeline/src/collection.py @@ -34,6 +34,18 @@ def __len__(self): def __iter__(self): return iter(self.nodes.values()) + + def __eq__(self, other): + + # The current implementation assumes that nodes in both graphs are connected with the same link number. + for node_id in self.nodes: + if node_id in other.nodes.keys(): + if self.nodes[node_id] != other.nodes[node_id]: + return False + else: + return False + + return True def add(self, *nodes): """