diff --git a/functions/classes.py b/functions/classes.py index 96b993eec82976ad3ce743c5c8eaf4447f0f4f2c..49f6eed52dd6177b4cbb6a08acbcf5b99e027193 100644 --- a/functions/classes.py +++ b/functions/classes.py @@ -191,7 +191,18 @@ class LegoComponent: str: A string representing the LegoComponent instance. """ - return f"LegoComponent({self.properties if self.properties else ""})" + label_str = "" + if self.properties["label"] is not None: + label_str = f"label='{self.properties['label']}', " + property_str = ", ".join( + [ + f"'{k}': '{v}'" if isinstance(v, str) else f"'{k}': {v}" + for k, v in self.properties.items() + if not k == "label" + ] + ) + property_str = f"**{{{property_str}}}" if property_str else property_str + return f"LegoComponent({label_str}{property_str})" def __str__(self): """Handle the conversion of LegoComponent objects to str objects. @@ -519,9 +530,35 @@ class LegoAssembly: return False def __repr__(self): + """Create a machine-readable representation of the instance. + + Returns: + str: A string representing the LegoAssembly instance. + """ + + label_str = "" + if self.properties["label"] is not None: + label_str = f"label='{self.properties['label']}', " + layer_str = f"layer={self._layer}, " + property_str = ", ".join( + [ + f"'{k}': '{v}'" if isinstance(v, str) else f"'{k}': {v}" + for k, v in self.properties.items() + if not k == "label" + ] + ) + property_str = f"**{{{property_str}}}" if property_str else property_str + + return f"LegoAssembly({label_str}{layer_str}{property_str})" + + def __str__(self): + """Handle the conversion of LegoComponent objects to str objects. + + Returns: + str: A string converted from the LegoComponent instance. """ - String representation of the object including the component label and UUID. - """ + if self.properties["label"] is None: + return f"LegoAssembly [{self._uuid}]" return f"LegoAssembly {self.properties['label']} [{self._uuid}]"