Files
lemon-pepper-stepper/scripts/jlc_bom_formatter.py
2025-11-09 18:14:21 -08:00

23 lines
800 B
Python

import pandas as pd
import os, sys, csv
def footprintFix(fpName):
propertiesList = fpName.split('_')
if len(propertiesList) == 4:
if any(rcl in propertiesList[0] for rcl in ["Resistor", "Capacitor", "Inductor", "Diode"]):
# For things like R/C/L, return something like C0402
return propertiesList[1][-1] + propertiesList[2]
# Strip out library name from FP.
if isinstance(fpName, float):
print("Malformed BOM, check you are not missing footprint assignments.")
else:
return fpName.split(":")[-1]
bom_file = pd.read_csv(sys.argv[1])
bom_file.columns = ['Designator', 'Value', 'Footprint', 'JLCPCB Part #']
bom_file['Footprint'] = bom_file['Footprint'].apply(lambda x: footprintFix(x))
bom_file.to_csv(sys.argv[2], index=False)