aboutsummaryrefslogtreecommitdiff
path: root/src/ee/kicad/bom/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/ee/kicad/bom/__init__.py')
-rw-r--r--src/ee/kicad/bom/__init__.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/ee/kicad/bom/__init__.py b/src/ee/kicad/bom/__init__.py
new file mode 100644
index 0000000..1808357
--- /dev/null
+++ b/src/ee/kicad/bom/__init__.py
@@ -0,0 +1,58 @@
+__all__ = [
+ 'Part',
+ 'Library',
+ 'Bom',
+ 'Comp',
+]
+
+class Part:
+ def __init__(self, name):
+ self.name = name
+
+class Library:
+ def __init__(self, name):
+ self.name = name
+ self.parts = {}
+
+ def add_part(self, part):
+ try:
+ return self.parts[part]
+ except KeyError:
+ p = Part(part)
+ self.parts[part] = p
+ return p
+
+class Bom:
+ def __init__(self):
+ self.libraries = {}
+ self.components = {}
+
+ def add_component(self, component):
+ self.components[component.ref] = component
+
+ def get_component(self, name):
+ return self.components[name]
+
+ def get_components(self):
+ return self.components
+
+ def find_library(self, name):
+ try:
+ return self.libraries[name]
+ except KeyError:
+ lib = Library(name)
+ self.libraries[name] = lib
+ return lib
+
+class Comp:
+ def __init__(self, ref, value, library, part, footprint):
+ self.ref = ref
+ self.value = value
+ self.footprint = footprint
+ self.library = library
+ self.part = part
+ self.fields = {}
+
+ def add_field(self, key, value):
+ self.fields[key] = value
+