diff options
Diffstat (limited to 'src/ee/kicad/bom/__init__.py')
-rw-r--r-- | src/ee/kicad/bom/__init__.py | 58 |
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 + |