From 514c26fcc7c9c31721836706c0070eea882edf66 Mon Sep 17 00:00:00 2001 From: Visa Tuominen Date: Tue, 9 Aug 2022 16:14:04 +0300 Subject: [PATCH] check pin counts before finding index --- src/wireviz/Harness.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/wireviz/Harness.py b/src/wireviz/Harness.py index 4153193..5fa1c54 100644 --- a/src/wireviz/Harness.py +++ b/src/wireviz/Harness.py @@ -189,10 +189,16 @@ class Harness: else: raise Exception('No side for loops') for loop in connector.loops: - i_loop_0 = connector.pins.index(loop[0])+1 - i_loop_1 = connector.pins.index(loop[1])+1 - dot.edge(f'{connector.name}:p{i_loop_0}{loop_side}:{loop_dir}', - f'{connector.name}:p{i_loop_1}{loop_side}:{loop_dir}') + loop_pins = [] + for pin in loop: + if connector.pins.count(pin) == 1: + loop_pins.append(connector.pins.index(pin)+1) + elif connector.pinlabels.count(pin) == 1: + loop_pins.append(connector.pinlabels.index(pin)+1) + else: + raise Exception(f"Didn't find exactly one {connector.name}:{pin} to loop into") + dot.edge(f'{connector.name}:p{loop_pins[0]}{loop_side}:{loop_dir}', + f'{connector.name}:p{loop_pins[1]}{loop_side}:{loop_dir}') # determine if there are double- or triple-colored wires in the harness;