__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