From 304b8df0bef98fa2a89d7520473e680a1c6403a4 Mon Sep 17 00:00:00 2001 From: Visa Tuominen Date: Mon, 15 Aug 2022 12:11:28 +0300 Subject: [PATCH] Check that pins exist, make visible when "hide disconnected" is active --- src/wireviz/DataClasses.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/wireviz/DataClasses.py b/src/wireviz/DataClasses.py index d27aa90..ab1e256 100644 --- a/src/wireviz/DataClasses.py +++ b/src/wireviz/DataClasses.py @@ -142,7 +142,6 @@ class Connector: hide_disconnected_pins: bool = False autogenerate: bool = False loops: List[List[Pin]] = field(default_factory=list) - loop_color: Optional[Color] = "WH" ignore_in_bom: bool = False additional_components: List[AdditionalComponent] = field(default_factory=list) @@ -179,11 +178,13 @@ class Connector: self.show_pincount = self.style != 'simple' # hide pincount for simple (1 pin) connectors by default for loop in self.loops: - # TODO: check that pins to connect actually exist - # TODO: allow using pin labels in addition to pin numbers, just like when defining regular connections - # TODO: include properties of wire used to create the loop - if len(loop) != 2: - raise Exception('Loops must be between exactly two pins!') + # check that pins to connect actually exist + if type(loop) == dict: + loop = list(loop.values())[0] + for pin in loop: + if not ((self.pins.count(pin) == 1) or (self.pinlabels.count == 1)): + raise Exception(f"Didn't find exactly one {self.name}:{pin} to loop into") + self.activate_pin(pin) for i, item in enumerate(self.additional_components): if isinstance(item, dict):