diff --git a/functions/classes.py b/functions/classes.py index 3ed46e762db27616e19352bf971b7302606d15dc..4e9802931791ed3e2dc2f4730825e2560db3d097 100644 --- a/functions/classes.py +++ b/functions/classes.py @@ -2,10 +2,11 @@ File consists of several classes for the different elements of a device. """ from __future__ import annotations -from enum import Enum, auto import uuid -from typing import List, Dict, Optional import json +import operator +from enum import Enum, auto +from typing import List, Dict, Optional class AggregationLayer(Enum): @@ -195,10 +196,11 @@ class LegoAssembly: def __repr__(self): return f"LegoAssembly {self.properties['label']} [{self.uuid}]" - def clone(self, label: str = None) -> LegoAssembly: + def clone(self, label: Optional[str] = None) -> LegoAssembly: if label is None: - label = self.label - clone = LegoAssembly(label, copy.deepcopy(self.properties), self.layer) + label = self.properties['label'] + clone = LegoAssembly(self.layer, None, self.properties) + clone.properties['label'] = label for component in self.components: clone.add_component(component.clone()) for assembly in self.assemblies: