Skip to content
Snippets Groups Projects
Commit ad3c4eef authored by Hock, Martin's avatar Hock, Martin
Browse files

Merge branch 'deepcopy' into 'development'

Adjust dict and key/value pair assignments to use deepcopy in constructor and clone()

See merge request fst-tuda/projects/lehre/praktikum_digitalisierung/quality-kpi!4
parents cce49d38 da6f429f
No related branches found
No related tags found
2 merge requests!6Merge for new WS2223 release,!4Adjust dict and key/value pair assignments to use deepcopy in constructor and clone()
Pipeline #933297 passed
......@@ -8,6 +8,7 @@ import json
import operator
from enum import Enum, auto
from typing import List, Dict, Optional
from copy import deepcopy
class AggregationLayer(Enum):
......@@ -83,14 +84,14 @@ class LegoComponent:
if label is not None:
self.properties["label"] = label
if datasheet is not None:
self.properties.update(datasheet)
self.properties.update(deepcopy(datasheet))
for prop in more_properties:
if isinstance(prop, dict):
self.properties.update(prop)
self.properties.update(deepcopy(prop))
else:
raise ValueError(f"Unexpected argument type: {type(more_properties)}")
for key, value in kwargs.items():
self.properties[key] = value
self.properties[key] = deepcopy(value)
def clone(self, new_label: Optional[str] = None) -> LegoComponent:
"""
......@@ -113,7 +114,7 @@ class LegoComponent:
"""
if new_label is None:
new_label = self.properties["label"]
clone = LegoComponent(None, None, self.properties)
clone = LegoComponent(None, None, deepcopy(self.properties))
clone.properties["label"] = new_label
return clone
......@@ -207,11 +208,11 @@ class LegoAssembly:
self.properties["label"] = label
for prop in properties:
if isinstance(prop, dict):
self.properties.update(prop)
self.properties.update(deepcopy(prop))
else:
raise ValueError(f"Unexpected argument type: {type(properties)}")
for key, value in kwargs.items():
self.properties[key] = value
self.properties[key] = deepcopy(value)
self.components: List[LegoComponent] = []
self.assemblies: List[LegoAssembly] = []
......@@ -419,7 +420,7 @@ class LegoAssembly:
"""
if label is None:
label = self.properties["label"]
clone = LegoAssembly(self.layer, None, self.properties)
clone = LegoAssembly(self.layer, None, deepcopy(self.properties))
clone.properties["label"] = label
for component in self.components:
clone.add_component(component.clone())
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment