aboutsummaryrefslogtreecommitdiff
path: root/src/ee/xml/bom_file_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/ee/xml/bom_file_utils.py')
-rw-r--r--src/ee/xml/bom_file_utils.py29
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]: