From 237a6faa8a23826e68bbc00bc107b2d6f97235d0 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Fri, 15 Mar 2019 14:55:15 +0100 Subject: Refactoring: o Renaming part.id to part.uri. Changing to URIs and use that as an identifier if the part is known. Schematic part does not have an URI. o Merging and into o Creating as a possible . Used by order to point to other parts. --- src/ee/kicad/make_bom.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'src/ee/kicad') diff --git a/src/ee/kicad/make_bom.py b/src/ee/kicad/make_bom.py index 7dd5532..0a8f4bb 100644 --- a/src/ee/kicad/make_bom.py +++ b/src/ee/kicad/make_bom.py @@ -62,7 +62,7 @@ def mpn_strategy(component: Component, part: types.Part) -> types.Part: mpn = component.get_field("mpn") if mpn is not None: pn = types.PartNumber(value=mpn.value) - part.part_numbersProp.add_part_number(pn) + part.referencesProp.add_part_number(pn) return part @@ -74,8 +74,8 @@ def dpn_strategy_factory(dpn_mappings: Mapping[str, str]) -> StrategyCallable: if s is None: continue - pn = types.PartNumber(value=s.value, distributor=distributor) - part.part_numbersProp.add_part_number(pn) + pn = types.SupplierPartNumber(value=s.value, supplier=distributor) + part.referencesProp.add_part_number(pn) return part @@ -111,17 +111,22 @@ def work(sch, out: Path, strategy: MakeBomStrategy, new_mode, pretty): parts = PartDb() components = to_bom(sch) for c in components: - part = types.Part(id=c.ref) - part.schema_reference = c.ref - part.part_numbersProp = types.PartNumberList() + part = types.Part() + part.referencesProp = types.ReferencesList() + part.referencesProp.schematic_reference.append(types.SchematicReference(reference=c.ref)) part = strategy.process_part(c, part) - if len(part.part_numbersProp.get_part_number()) == 0: - part.part_numbersProp = None + if part is None: + continue + + if len(part.referencesProp.schematic_reference) == 0 and \ + len(part.referencesProp.part_number) == 0 and \ + len(part.referencesProp.supplier_part_number) == 0: + # No need to dirty the xml with empty lists + part.referencesProp = None - if part is not None: - parts.add_entry(part, True) + parts.add_entry(part, True) save_db(out, parts) -- cgit v1.2.3