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

Remove unreached code, use black formatter

parent 4646326a
No related branches found
No related tags found
1 merge request!3Merge to main to create "WS2223" Version
...@@ -7,6 +7,7 @@ import uuid ...@@ -7,6 +7,7 @@ import uuid
from typing import List, Dict, Optional from typing import List, Dict, Optional
import json import json
class AggregationLayer(Enum): class AggregationLayer(Enum):
SYSTEM = auto() SYSTEM = auto()
ASSEMBLY = auto() ASSEMBLY = auto()
...@@ -15,13 +16,19 @@ class AggregationLayer(Enum): ...@@ -15,13 +16,19 @@ class AggregationLayer(Enum):
class LegoComponent: class LegoComponent:
def __init__(self, label: Optional[str] = None, datasheet: Optional[dict] = None, *more_properties: dict, **kwargs) -> None: def __init__(
self,
label: Optional[str] = None,
datasheet: Optional[dict] = None,
*more_properties: dict,
**kwargs,
) -> None:
self.uuid: uuid.UUID = uuid.uuid4() self.uuid: uuid.UUID = uuid.uuid4()
self.parent: None | LegoAssembly = None self.parent: None | LegoAssembly = None
self.layer: AggregationLayer = AggregationLayer.COMPONENT self.layer: AggregationLayer = AggregationLayer.COMPONENT
self.properties: dict = {} self.properties: dict = {}
if label is not None: if label is not None:
self.properties['label'] = label self.properties["label"] = label
if datasheet is not None: if datasheet is not None:
self.properties.update(datasheet) self.properties.update(datasheet)
for prop in more_properties: for prop in more_properties:
...@@ -32,14 +39,11 @@ class LegoComponent: ...@@ -32,14 +39,11 @@ class LegoComponent:
for key, value in kwargs.items(): for key, value in kwargs.items():
self.properties[key] = value self.properties[key] = value
def clone(self, new_label: Optional[str] = None) -> LegoComponent: def clone(self, new_label: Optional[str] = None) -> LegoComponent:
if new_label is None: if new_label is None:
new_label = self.properties['label'] new_label = self.properties["label"]
clone = LegoComponent(None, None, self.properties) clone = LegoComponent(None, None, self.properties)
clone.properties['label'] = new_label clone.properties["label"] = new_label
return clone return clone
def get_root_assembly(self): def get_root_assembly(self):
...@@ -60,24 +64,25 @@ class LegoComponent: ...@@ -60,24 +64,25 @@ class LegoComponent:
def __str__(self): def __str__(self):
return self.__repr__() return self.__repr__()
return (
f"Item(id={self.uuid}, item_number={self.lego_id}, "
f"mass={self.mass}, delivery_time={self.delivery_time}, "
f"parent_id={self.parent})"
)
def __repr__(self): def __repr__(self):
return f"LegoComponent {self.properties['label']} [{self.uuid}]" return f"LegoComponent {self.properties['label']} [{self.uuid}]"
class LegoAssembly: class LegoAssembly:
def __init__(self, layer: AggregationLayer, label: Optional[str] = None, *properties: dict , **kwargs) -> None: def __init__(
self,
layer: AggregationLayer,
label: Optional[str] = None,
*properties: dict,
**kwargs,
) -> None:
self.uuid: uuid.UUID = uuid.uuid4() self.uuid: uuid.UUID = uuid.uuid4()
self.parent: None | LegoAssembly = None self.parent: None | LegoAssembly = None
self.properties: dict = {} self.properties: dict = {}
self.layer: AggregationLayer = layer self.layer: AggregationLayer = layer
if label is not None: if label is not None:
self.properties['label'] = label self.properties["label"] = label
for prop in properties: for prop in properties:
if isinstance(prop, dict): if isinstance(prop, dict):
self.properties.update(prop) self.properties.update(prop)
...@@ -128,7 +133,9 @@ class LegoAssembly: ...@@ -128,7 +133,9 @@ class LegoAssembly:
assembly.parent = self assembly.parent = self
self.assemblies.append(assembly) self.assemblies.append(assembly)
def add(self, part: LegoAssembly | LegoComponent | List[LegoAssembly | LegoComponent]) -> None: def add(
self, part: LegoAssembly | LegoComponent | List[LegoAssembly | LegoComponent]
) -> None:
if isinstance(part, LegoComponent): if isinstance(part, LegoComponent):
self.add_component(part) self.add_component(part)
elif isinstance(part, LegoAssembly): elif isinstance(part, LegoAssembly):
...@@ -141,6 +148,7 @@ class LegoAssembly: ...@@ -141,6 +148,7 @@ class LegoAssembly:
f"Argument should be of types {LegoAssembly.__name__}, {LegoComponent.__name__} or a list of them, " f"Argument should be of types {LegoAssembly.__name__}, {LegoComponent.__name__} or a list of them, "
f"got {type(part).__name__} instead." f"got {type(part).__name__} instead."
) )
def children(self) -> Dict[str, List[LegoComponent] | List[LegoAssembly]]: def children(self) -> Dict[str, List[LegoComponent] | List[LegoAssembly]]:
return {"components": self.components, "assemblies": self.assemblies} return {"components": self.components, "assemblies": self.assemblies}
...@@ -197,6 +205,7 @@ class LegoAssembly: ...@@ -197,6 +205,7 @@ class LegoAssembly:
clone.add_assembly(assembly.clone()) clone.add_assembly(assembly.clone())
return clone return clone
def print_assembly_tree(root, level=0, is_last=False): def print_assembly_tree(root, level=0, is_last=False):
if not isinstance(root, LegoAssembly): if not isinstance(root, LegoAssembly):
raise TypeError( raise TypeError(
...@@ -249,4 +258,4 @@ class KPIEncoder(json.JSONEncoder): ...@@ -249,4 +258,4 @@ class KPIEncoder(json.JSONEncoder):
return "kpi-" + str(o) return "kpi-" + str(o)
if isinstance(o, (AggregationLayer)): if isinstance(o, (AggregationLayer)):
return "kpi-" + o.name return "kpi-" + o.name
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