Skip to content
Snippets Groups Projects

F copy entity

Merged Alexander Schlemmer requested to merge f-copy-entity into dev
Files
3
+ 40
1
@@ -565,7 +565,7 @@ def getCommitIn(folder):
@@ -565,7 +565,7 @@ def getCommitIn(folder):
return t.readline().strip()
return t.readline().strip()
COMPARED = ["name", "role", "datatype", "description", "importance",
COMPARED = ["name", "role", "datatype", "description",
"id", "path", "checksum", "size"]
"id", "path", "checksum", "size"]
@@ -681,6 +681,45 @@ def compare_entities(old_entity: Entity, new_entity: Entity):
@@ -681,6 +681,45 @@ def compare_entities(old_entity: Entity, new_entity: Entity):
return (olddiff, newdiff)
return (olddiff, newdiff)
 
def copy_entity(entity: Entity):
 
"""
 
Return a copy of entity.
 
 
If deep == True return a deep copy, recursively copying all sub entities.
 
"""
 
print(entity)
 
if entity.role == "File":
 
new = File()
 
elif entity.role == "Property":
 
new = Property()
 
elif entity.role == "RecordType":
 
new = RecordType()
 
elif entity.role == "Record":
 
new = Record()
 
elif entity.role == "Entity":
 
new = Entity()
 
else:
 
raise RuntimeError("Unkonwn role.")
 
 
# Copy special attributes:
 
# TODO: this might rise an exception when copying
 
# special file attributes like checksum and size.
 
for attribute in COMPARED + ["value"]:
 
val = getattr(entity, attribute)
 
if val is not None:
 
setattr(new, attribute, val)
 
 
# Copy parents:
 
for p in entity.parents:
 
new.add_parent(p)
 
 
# Copy properties:
 
for p in entity.properties:
 
new.add_property(p, importance=entity.get_importance(p))
 
 
return new
 
 
def describe_diff(olddiff, newdiff, name=None, as_update=True):
def describe_diff(olddiff, newdiff, name=None, as_update=True):
description = ""
description = ""
Loading