diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2019-03-15 14:55:15 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2019-03-15 14:55:15 +0100 |
commit | 237a6faa8a23826e68bbc00bc107b2d6f97235d0 (patch) | |
tree | fe1a6a6b1a4ed991a6eacd9ec6960325db3f9e4f /src/ee/xml/bom_file_utils.py | |
parent | 3523190bb7ca1c38caea3a1aae51062d22e56b09 (diff) | |
download | ee-python-237a6faa8a23826e68bbc00bc107b2d6f97235d0.tar.gz ee-python-237a6faa8a23826e68bbc00bc107b2d6f97235d0.tar.bz2 ee-python-237a6faa8a23826e68bbc00bc107b2d6f97235d0.tar.xz ee-python-237a6faa8a23826e68bbc00bc107b2d6f97235d0.zip |
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 <schema-reference> and <part-numbers> into <references>
o Creating <part-uri> as a possible <reference>. Used by order to point
to other parts.
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]: |