From 593a3acb24796f728deba463db646d2a1722cef7 Mon Sep 17 00:00:00 2001 From: "i.nueske" <i.nueske@indiscale.com> Date: Tue, 3 Dec 2024 12:58:23 +0100 Subject: [PATCH] BUG: Only use name as key in compare_entities diff if names match --- src/linkahead/apiutils.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/linkahead/apiutils.py b/src/linkahead/apiutils.py index 9e4ba62..e887ee4 100644 --- a/src/linkahead/apiutils.py +++ b/src/linkahead/apiutils.py @@ -379,7 +379,8 @@ def compare_entities(entity0: Optional[Entity] = None, # compare properties for prop in entity0.properties: - key = prop.name if prop.name is not None else prop.id # ToDo: Would making id default break anything? + # ToDo: Would making id default break anything? + key = prop.name if prop.name is not None else prop.id matching = entity1.properties.filter(prop) if len(matching) == 0: # entity1 has prop, entity0 does not @@ -387,7 +388,7 @@ def compare_entities(entity0: Optional[Entity] = None, elif len(matching) == 1: # It's possible that prop has name and id, but match only has id key = prop.name if (prop.name is not None and - matching[0].name is not None) else prop.id + matching[0].name == prop.name) else prop.id diff[0]["properties"][key] = {} diff[1]["properties"][key] = {} propdiff = (diff[0]["properties"][key], @@ -432,7 +433,7 @@ def compare_entities(entity0: Optional[Entity] = None, # we have not yet compared properties that do not exist in entity0 for prop in entity1.properties: - key = prop.name if prop.name is not None else prop.id # ToDo: Would making id default break anything? + key = prop.name if prop.name is not None else prop.id # check how often the property appears in entity0 num_prop_in_ent0 = len(entity0.properties.filter(prop)) if num_prop_in_ent0 == 0: @@ -448,7 +449,7 @@ def compare_entities(entity0: Optional[Entity] = None, for index, parents, other_entity in [(0, entity0.parents, entity1), (1, entity1.parents, entity0)]: for parent in parents: - key = parent.name if parent.name is not None else parent.id # ToDo: Would making id default break anything? + key = parent.name if parent.name is not None else parent.id matching = other_entity.parents.filter(parent) if len(matching) == 0: diff[index]["parents"].append(key) -- GitLab