From 1700b68acb37e8be5a0002f6aa7e3c7a6255ed61 Mon Sep 17 00:00:00 2001 From: Benedikt Hock <benedikt.hock@stud.tu-darmstadt.de> Date: Thu, 9 Feb 2023 19:17:11 +0100 Subject: [PATCH] Add typing and kwargs --- functions/lego_classes.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/functions/lego_classes.py b/functions/lego_classes.py index 19da189..7e05af7 100644 --- a/functions/lego_classes.py +++ b/functions/lego_classes.py @@ -7,12 +7,15 @@ from typing import Any, Union, Literal, TypedDict, TypeVar, Type, List, Optional class LegoItem: - def __init__(self, item_number: int, mass: float, delivery_time: int) -> None: + def __init__(self, item_number: int, mass: float, delivery_time: int, **kwargs) -> None: # , *args, **kwargs not handling additional/optional specs right now - self.id = uuid.uuid4() - self.item_number = item_number - self.mass = mass - self.delivery_time = delivery_time + self.id: uuid.UUID = uuid.uuid4() + self.properties: dict = kwargs + self.item_number: int = item_number + self.mass: float = mass + self.delivery_time: int = delivery_time + # TODO: Set parent directly and not via id? This would allow for easier traversal of the tree + # Currently there is no way to search for parts and components in tree by id. self.parent_id = None # This will be set when added to a component def __str__(self): @@ -22,6 +25,8 @@ class LegoItem: f"parent_id={self.parent_id})" ) + def __repr__(self): + return f"Lego Item [{self.id}]" class LegoComponent: def __init__(self, items=None | LegoItem | list[LegoItem], -- GitLab