diff options
Diffstat (limited to 'src/ee/xml/bom_file_utils.py')
-rw-r--r-- | src/ee/xml/bom_file_utils.py | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/src/ee/xml/bom_file_utils.py b/src/ee/xml/bom_file_utils.py index 59a9b0e..207ac5a 100644 --- a/src/ee/xml/bom_file_utils.py +++ b/src/ee/xml/bom_file_utils.py @@ -5,8 +5,9 @@ from ee.xml import types __all__ = [ "facts", "find_root_tag", - "find_pn", - "find_dpn", + "schematic_references", + "part_numbers", + "supplier_part_numbers", ] @@ -14,25 +15,19 @@ def find_root_tag(root): return next((tag for tag, klass in types.GDSClassesMapping.items() if klass == type(root)), None) -def part_numbers(part: types.Part) -> List[types.PartNumber]: - pns = part.part_numbersProp # type: types.PartNumberList - - if pns is None: - return [] +def schematic_references(part: types.Part) -> List[types.SchematicReference]: + return [] if part.referencesProp is None or part.referencesProp.schematic_reference is None else \ + part.referencesProp.schematic_reference - return pns.part_numberProp - -def find_pn(part: types.Part) -> Optional[str]: - for pn in part_numbers(part): - if pn.distributor is None: - return pn.value +def part_numbers(part: types.Part) -> List[types.PartNumber]: + return [] if part.referencesProp is None or part.referencesProp.part_number is None else \ + part.referencesProp.part_number -def find_dpn(part: types.Part, distributor: str) -> Optional[str]: - for pn in part_numbers(part): - if pn.distributor == distributor: - return pn.value +def supplier_part_numbers(part: types.Part) -> List[types.SupplierPartNumber]: + return [] if part.referencesProp is None or part.referencesProp.supplier_part_number is None else \ + part.referencesProp.supplier_part_number def facts(part: types.Part, create=False) -> Optional[types.FactList]: |