from xml.etree.ElementTree import Element, ElementTree from ee.kicad.model import * __all__ = ["to_bom"] def simple_element(parent, e, text): if len(text) == 0: return element = Element(e) element.text = text parent.append(element) def field(f: ComponentField) -> Element: field = Element("field", {"name": f.name}) field.text = f.value return field def comp(c: Component) -> Element: comp = Element("comp", {"ref": c.ref}) simple_element(comp, "value", c.value) simple_element(comp, "footprint", c.footprint) # # # 561E4EAA fields = Element("fields") [fields.append(field(f)) for f in c.fields if f.index > 3] if len(fields) > 0: comp.append(fields) return comp def to_bom(schematic: Schematic) -> Element: root = Element("export") root.attrib["version"] = "D" design = Element("design") root.append(design) components = Element("components") root.append(components) [components.append(comp(c)) for c in schematic.components] return root