1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
import yaml
import numpy
import pandas as pd
def parse_wireviz_yml(file_path):
# Load the WireViz YML file
with open(file_path, 'r') as file:
data = yaml.safe_load(file)
wires = data['cables']
connectors = data['connectors']
connections = data['connections']
wire_info = []
for connection in connections:
connectorwpin = str(connection[0])
connector = connectorwpin[2:connectorwpin.find("':")]
connectorpins = connectorwpin[connectorwpin.find(" [")+2:connectorwpin.rfind("]}")].strip(" ").split(",")
connectorpinsadjusted = []
for pins in connectorpins:
if pins.count("-") > 0:
pinrange = pins.strip("' ").split("-")
for x in range(int(pinrange[0]),int(pinrange[1])+1):
connectorpinsadjusted.append(x)
else:
connectorpinsadjusted = connectorpins
connectorwires = str(connection[1])
bundle = connectorwires[2:connectorwires.find("':")]
bundlewires = connectorwires[connectorwires.find(" [")+2:connectorwires.rfind("]}")].split(",")
if len(connection) > 2:
connector2wpin = str(connection[2])
connector2 = connector2wpin[2:connector2wpin.find("':")]
connector2pins = connector2wpin[connector2wpin.find(" [")+2:connector2wpin.rfind("]}")].split(",")
print(connector2pins)
connector2pinsadjusted = []
for pins in connector2pins:
if pins.count("-") > 0:
pinrange = pins.strip("' ").split("-")
for x in range(int(pinrange[0]),int(pinrange[1])+1):
connector2pinsadjusted.append(x)
else:
connector2pinsadjusted = connector2pins
print(connector2pinsadjusted)
for x in range(0,len(connectorpinsadjusted)):
wire_info.append({
'End 1': connector,
'Pin 1': connectorpinsadjusted[x],
'Length': wires[bundle]['length'],
'Color': wires[bundle]['colors'][x],
'Gauge': wires[bundle]['gauge'],
'End 2': connector2,
'Pin 2': connector2pinsadjusted[x],
})
#print(connection[1])
for wire in wires:
wire_name = wire
length = wires[wire]['length']
# Create a DataFrame to display the data as a table
wire_df = pd.DataFrame(wire_info, columns=['End 1', 'Pin 1', 'Length', 'Color', 'Gauge', 'End 2', 'Pin 2'])
return wire_df
# Path to your WireViz YML file
file_path = 'wireviz/Choppy_IB_PPS_main.yml'
wire_table = parse_wireviz_yml(file_path)
# Display the table
print(wire_table)
|