aboutsummaryrefslogtreecommitdiff
path: root/src/ee/tools/kicad_make_bom.py
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2017-09-12 08:51:45 +0200
committerTrygve Laugstøl <trygvis@inamo.no>2017-09-12 08:51:45 +0200
commitf81cd8de1bc679786579f14c3da28285789b38e1 (patch)
tree9b7cd6b811e68667f9765c54a345650604749536 /src/ee/tools/kicad_make_bom.py
parent7f267c4aabd0a0fc5487bdf962e3c16857137c0c (diff)
downloadee-python-f81cd8de1bc679786579f14c3da28285789b38e1.tar.gz
ee-python-f81cd8de1bc679786579f14c3da28285789b38e1.tar.bz2
ee-python-f81cd8de1bc679786579f14c3da28285789b38e1.tar.xz
ee-python-f81cd8de1bc679786579f14c3da28285789b38e1.zip
o Implementing kicad-make-bom as a tool.
Diffstat (limited to 'src/ee/tools/kicad_make_bom.py')
-rw-r--r--src/ee/tools/kicad_make_bom.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/ee/tools/kicad_make_bom.py b/src/ee/tools/kicad_make_bom.py
new file mode 100644
index 0000000..518cf75
--- /dev/null
+++ b/src/ee/tools/kicad_make_bom.py
@@ -0,0 +1,37 @@
+import argparse
+import ee.kicad as kicad
+from ee.tools import mk_parents
+from xml.etree import ElementTree
+from xml.dom import minidom
+
+parser = argparse.ArgumentParser(description="Create a bom XML file from a KiCAD schematic")
+
+parser.add_argument("--sch",
+ required=True,
+ metavar="SCH",
+ help="The schematic to read")
+
+parser.add_argument("--out",
+ metavar="FILE",
+ help="The output file")
+
+parser.add_argument("--pretty",
+ action='store_true',
+ help="Pretty print the XML")
+
+args = parser.parse_args()
+
+sch = kicad.read_schematic(args.sch)
+
+bom = kicad.to_bom(sch)
+xml = ElementTree.tostring(bom, encoding='unicode')
+
+if args.pretty:
+ xml = minidom.parseString(xml).toprettyxml(indent=" ")
+
+if args.out:
+ mk_parents(args.out)
+ with open(args.out, "w") as f:
+ f.write(xml)
+else:
+ print(xml)