Skip to content
Snippets Groups Projects

F copy entity

Merged Alexander Schlemmer requested to merge f-copy-entity into dev
1 unresolved thread
2 files
+ 82
6
Compare changes
  • Side-by-side
  • Inline

Files

+ 14
6
@@ -735,14 +735,14 @@ def merge_entities(entity_a: Entity, entity_b: Entity):
for key in diff_r2["properties"]:
if key in diff_r1["properties"]:
if ("importance" in diff_r1["properties"][key] and
"importance" in diff_r2["properties"][key]):
"importance" in diff_r2["properties"][key]):
if (diff_r1["properties"][key]["importance"] !=
diff_r2["properties"][key]["importance"]):
diff_r2["properties"][key]["importance"]):
raise NotImplementedError()
elif ("importance" in diff_r1["properties"][key] or
"importance" in diff_r2["properties"][key]):
raise NotImplementedError()
for attribute in ("datatype", "unit", "value"):
if diff_r1["properties"][key][attribute] is None:
setattr(entity_a.get_property(key), attribute,
@@ -750,9 +750,17 @@ def merge_entities(entity_a: Entity, entity_b: Entity):
else:
raise RuntimeError("Merge conflict.")
else:
entity_a.add_property(
entity_b.get_property(key),
importance=entity_b.get_importance(key))
# TODO: This is a temporary FIX for
# https://gitlab.indiscale.com/caosdb/src/caosdb-pylib/-/issues/105
entity_a.add_property(id=entity_b.get_property(key).id,
name=entity_b.get_property(key).name,
datatype=entity_b.get_property(key).datatype,
value=entity_b.get_property(key).value,
unit=entity_b.get_property(key).unit,
importance=entity_b.get_importance(key))
# entity_a.add_property(
# entity_b.get_property(key),
# importance=entity_b.get_importance(key))
for special_attribute in ("name", "description"):
sa_a = getattr(entity_a, special_attribute)
Loading