From 673282847946be13a532a53d2cf23aa6a8ad449b Mon Sep 17 00:00:00 2001 From: "Hock, Martin" <martin.hock@fst.tu-darmstadt.de> Date: Thu, 2 Mar 2023 05:20:59 +0100 Subject: [PATCH] Fix some label in dict issues. Fix optional label parameter typing. Fix Assembly property parameter options. --- functions/classes.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/functions/classes.py b/functions/classes.py index c86206f..00df699 100644 --- a/functions/classes.py +++ b/functions/classes.py @@ -50,9 +50,9 @@ class LegoComponent: - def clone(self, new_label: str = None) -> LegoComponent: + def clone(self, new_label: Optional[str] = None) -> LegoComponent: if new_label is None: - new_label = self.properties.label + new_label = self.properties['label'] clone = LegoComponent(None, None, self.properties) clone.properties['label'] = new_label return clone @@ -68,7 +68,6 @@ class LegoComponent: def to_dict(self) -> Dict: dict_ = { "uuid": self.uuid, - "label": self.label, "properties": self.properties, "layer": self.layer, } @@ -93,10 +92,16 @@ class LegoAssembly: self.uuid: uuid.UUID = uuid.uuid4() self.parent: None | LegoAssembly = None self.properties: dict = {} + self.layer: AggregationLayer = layer if label is not None: self.properties['label'] = label - self.layer: AggregationLayer = layer - self.properties.update(properties) + for prop in properties: + if isinstance(prop, dict): + self.properties.update(prop) + else: + raise ValueError(f"Unexpected argument type: {type(properties)}") + for key, value in kwargs.items(): + self.properties[key] = value self.components: List[LegoComponent] = [] self.assemblies: List[LegoAssembly] = [] @@ -249,6 +254,3 @@ class KPIEncoder(json.JSONEncoder): return "kpi-" + str(o) if isinstance(o, (AggregationLayer)): return "kpi-" + o.properties.label - return super().default(o) - -pass \ No newline at end of file -- GitLab