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

Added combined add function to accept both Component and Assembly.

parent 980e8d14
No related branches found
No related tags found
No related merge requests found
......@@ -145,6 +145,19 @@ class LegoAssembly:
assembly.parent = self
self.assemblies.append(assembly)
def add(self, part: LegoAssembly | LegoComponent | List[LegoAssembly | LegoComponent]) -> None:
if isinstance(part, LegoComponent):
self.add_component(part)
elif isinstance(part, LegoAssembly):
self.add_assembly(part)
elif isinstance(part, list):
for p in part:
self.add(p)
else:
raise TypeError(
f"Argument should be of types {LegoAssembly.__name__}, {LegoComponent.__name__} or a list of them, "
f"got {type(part).__name__} instead."
)
def children(self) -> Dict[str, List[LegoComponent] | List[LegoAssembly]]:
return {"components": self.components, "assemblies": self.assemblies}
......@@ -254,4 +267,4 @@ class KPIEncoder(json.JSONEncoder):
return "kpi-" + str(o)
if isinstance(o, (AggregationLayer)):
return "kpi-" + o.properties.label
return super().default(o)
return super().default(o)
\ No newline at end of file
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