diff --git a/.gitignore b/.gitignore index e43b0f9..79b2f55 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .DS_Store +temp/ diff --git a/src/.gitignore b/src/.gitignore new file mode 100644 index 0000000..c18dd8d --- /dev/null +++ b/src/.gitignore @@ -0,0 +1 @@ +__pycache__/ diff --git a/src/test.py b/src/test.py new file mode 100644 index 0000000..358be4c --- /dev/null +++ b/src/test.py @@ -0,0 +1,20 @@ +import wireviz + +PINOUT_I2C = ("GND","VCC","SCL","SDA") +COLORS_WEIRD = ("infrared","ultraviolet","transparent","invisible") + +X1 = wireviz.Node("X1", num_pins=4) +X2 = wireviz.Node("X2", pinout=PINOUT_I2C) +X3 = wireviz.Node("X3", pinout=PINOUT_I2C) + +W1 = wireviz.Cable("W1", num_wires=4) +W2 = wireviz.Cable("W2", num_wires=4, color_code="DIN") +W3 = wireviz.Cable("W3", num_wires=3, colors=COLORS_WEIRD) + +print(X1) +print(X2) +print(X3) + +print(W1) +print(W2) +print(W3) diff --git a/src/wireviz.py b/src/wireviz.py new file mode 100644 index 0000000..9bae181 --- /dev/null +++ b/src/wireviz.py @@ -0,0 +1,56 @@ + +COLOR_CODE_DIN = ['WH','BN','GN','YE','GY','PK','BU','RD','BK','VT'] +COLOR_CODE_IEC = ['BN','RD','OG','YE','GN','BU','VT','GY','WH','BK'] + +class Node: + + def __init__(self, name, num_pins=None, pinout=None): + self.name = name + + if pinout is None: + 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 + + def __repr__(self): + return "{} = {} {}".format(self.name, len(self.pinout), self.pinout) + +class Cable: + + def __init__(self, name, num_wires=None, colors=None, color_code=None): + self.name = name + if color_code is None and colors is None: + self.colors = ("",) * num_wires + else: + if colors is None: + if num_wires is None: + raise Exception("Unknown number of wires") + else: + # TODO: Loop through colors if num_wires > len(COLOR_CODE_XXX) + if color_code == "DIN": + self.colors = tuple(COLOR_CODE_DIN[:num_wires]) + elif color_code == "IEC": + self.colors = tuple(COLOR_CODE_IEC[:num_wires]) + else: + raise Exception("Unknown color code") + else: + if num_wires is None: + self.colors = colors + else: + self.colors = colors[:num_wires] + + def __repr__(self): + return "{} = {} {}".format(self.name, len(self.colors), self.colors) + + + +# class ClassName(object): +# """docstring for .""" +# +# def __init__(self, arg): +# super(, self).__init__() +# self.arg = arg