From ab922928de2902f2d9119a887726e365f7a58177 Mon Sep 17 00:00:00 2001 From: Daniel Rojas Date: Thu, 28 May 2020 18:37:44 +0200 Subject: [PATCH] Simplify __init__ functions, Pt. I --- examples/example1.yml | 1 - src/wireviz.py | 42 ++++++++++++++++++++++++++++++------------ src/yaml2wireviz.py | 25 ++++++++++++++----------- 3 files changed, 44 insertions(+), 24 deletions(-) diff --git a/examples/example1.yml b/examples/example1.yml index 05a5877..7398666 100644 --- a/examples/example1.yml +++ b/examples/example1.yml @@ -3,7 +3,6 @@ nodes: type: D-Sub gender: female pinout: [DCD, RX, TX, DTR, GND, DSR, RTS, CTS, RI] - random: yes X2: type: Molex KK 254 gender: female diff --git a/src/wireviz.py b/src/wireviz.py index 4e774ce..db68863 100644 --- a/src/wireviz.py +++ b/src/wireviz.py @@ -57,11 +57,11 @@ class Harness: self.nodes = {} self.cables = {} - def add_node(self, name, type=None, gender=None, show_name=True, num_pins=None, show_num_pins=True, pinout=None, ports_left=False, ports_right=False): - self.nodes[name] = Node(name, type, gender, show_name, num_pins, show_num_pins, pinout, ports_left, ports_right) + def add_node(self, name, *args, **kwargs): + self.nodes[name] = Node(name, *args, **kwargs) - def add_cable(self, name, mm2=None, awg=None, show_equiv=False, length=0, show_name=False, show_pinout=False, num_wires=None, show_num_wires=True, colors=None, color_code=None, shield=False): - self.cables[name] = Cable(name, mm2, awg, show_equiv, length, show_name, show_pinout, num_wires, show_num_wires, colors, color_code, shield) + def add_cable(self, name, *args, **kwargs): + self.cables[name] = Cable(name, *args, **kwargs) def loop(self, node_name, from_pin, to_pin): self.nodes[node_name].loop(from_pin, to_pin) @@ -177,14 +177,22 @@ class Harness: class Node: - def __init__(self, name, type=None, gender=None, show_name=True, num_pins=None, show_num_pins=True, pinout=None, ports_left=False, ports_right=False): + def __init__(self, name, + type=None, + gender=None, + show_name=True, + num_pins=True, + show_num_pins=None, + pinout=None): self.name = name self.type = type self.gender = gender self.show_name = show_name self.show_num_pins = show_num_pins - self.ports_left = ports_left - self.ports_right = ports_right + # self.pinout = [] + + self.ports_left = False + self.ports_right = False self.loops = [] if pinout is None: @@ -193,17 +201,27 @@ class Node: self.pinout = ('',) * num_pins else: if num_pins is None: - if pinout is None: - raise Exception('Must provide num_pins or pinout') - else: - self.pinout = pinout + raise Exception('Must provide num_pins or pinout') + else: + self.pinout = pinout def loop(self, from_pin, to_pin): self.loops.append((from_pin, to_pin)) class Cable: - def __init__(self, name, mm2=None, awg=None, show_equiv=False, length=0, show_name=False, show_pinout=False, num_wires=None, show_num_wires=True, colors=None, color_code=None, shield=False): + def __init__(self, name, + mm2=None, + awg=None, + show_equiv=False, + length=0, + show_name=False, + show_pinout=False, + num_wires=None, + show_num_wires=True, + colors=None, + color_code=None, + shield=False ): self.name = name if mm2 is not None and awg is not None: raise Exception('You cannot define both mm2 and awg!') diff --git a/src/yaml2wireviz.py b/src/yaml2wireviz.py index 0f599b6..f171726 100644 --- a/src/yaml2wireviz.py +++ b/src/yaml2wireviz.py @@ -1,6 +1,8 @@ import yaml import wireviz +filename = '../examples/example1.yml' +filename = '../examples/example2.yml' filename = '../examples/ferrules.yml' def check_designators(what, where): @@ -49,10 +51,7 @@ h = wireviz.Harness() if 'nodes' in input and type(input['nodes']) == dict: if len(input['nodes']) > 0: for k, o in input['nodes'].items(): - h.add_node(k, type=o.get('type'), - gender=o.get('gender'), - num_pins=o.get('num_pins'), - pinout=o.get('pinout')) + h.add_node(name=k, **o) else: print('Node list empty') else: @@ -63,19 +62,22 @@ else: if 'wires' in input and type(input['wires']) == dict: if len(input['wires']) > 0: for k, o in input['wires'].items(): - h.add_cable(k, mm2=o.get('mm2'), - awg=o.get('awg'), - length=o.get('length'), - num_wires=o.get('num_wires'), - colors=o.get('colors'), - color_code=o.get('color_code'), - shield=o.get('shield')) + h.add_cable(name=k, **o) else: print('Wire list empty') else: print('No wire list found') input['wires'] = {} +if 'ferrules' in input and type(input['ferrules']) == dict: + if len(input['wires']) > 0: + pass + else: + print('Ferrule list empty') +else: + print('No ferrule list found') + input['ferrules'] = {} + # add connections if 'connections' in input: if len(input['connections']) > 0: @@ -129,6 +131,7 @@ if 'connections' in input: w_n = check_designators([from_name, to_name],('wires','nodes')) n_n = check_designators([from_name, to_name],('nodes','nodes')) + f_w = check_designators([from_name, to_name],('ferrules','wires')) w_f = check_designators([from_name, to_name],('wires','ferrules'))