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: #print(connection[0]) connectorwpin = str(connection[0]) connector = connectorwpin[2:connectorwpin.find("':")] connectorpins = connectorwpin[connectorwpin.find(" [")+2:connectorwpin.rfind("]}")].strip(" ").split(",") connectorwires = str(connection[1]) bundle = connectorwires[2:connectorwires.find("':")] bundlewires = connectorwires[connectorwires.find(" [")+2:connectorwires.rfind("]}")].split(",") print(connectorpins) if len(connection) > 2: connector2wpin = str(connection[2]) connector2 = connector2wpin[2:connector2wpin.find("':")] connector2pins = connector2wpin[connector2wpin.find(" [")+2:connector2wpin.rfind("]}")].split(",") for x in range(0,len(connectorpins)): print(wires[bundle]['length']) wire_info.append({ 'End 1': connector, 'Pin 1': connectorpins[x], 'Length': wires[bundle]['length'], 'Color': wires[bundle]['colors'][x], 'Gauge': wires[bundle]['gauge'], 'End 2': connector2, 'Pin 2': connector2pins[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_1X.yml' wire_table = parse_wireviz_yml(file_path) # Display the table print(wire_table)