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/digikey/normalize_facts.py | 2 +- src/ee/digikey/search_parts.py | 29 ++++++++++++++++------------- 2 files changed, 17 insertions(+), 14 deletions(-) (limited to 'src/ee/digikey') diff --git a/src/ee/digikey/normalize_facts.py b/src/ee/digikey/normalize_facts.py index 91ad4db..d7546c3 100644 --- a/src/ee/digikey/normalize_facts.py +++ b/src/ee/digikey/normalize_facts.py @@ -153,4 +153,4 @@ def normalize_facts(in_path: Path, out_path: Path): out_parts.add_entry(part, True) print("Saving {} work parts".format(out_parts.size())) - save_db(out_path, out_parts) + save_db(out_path, out_parts, sort=True) diff --git a/src/ee/digikey/search_parts.py b/src/ee/digikey/search_parts.py index 4f637c7..3d271d5 100644 --- a/src/ee/digikey/search_parts.py +++ b/src/ee/digikey/search_parts.py @@ -10,15 +10,17 @@ __all__ = ["search_parts"] def resolved(p: DigikeyProduct) -> types.Part: - part = types.Part(id=p.part_number, - distributor_info=types.DistributorInfo(), - facts=types.FactList(), - part_numbers=types.PartNumberList()) + # TODO: fix uri + part = types.Part(uri="https://digikey.com/pn#{}".format(p.part_number), + distributor_info=types.DistributorInfo(), + facts=types.FactList(), + references=types.ReferencesList()) part.distributor_infoProp.stateProp = "resolved" - part_numbers = part.part_numbersProp.part_numberProp + supplier_part_numbers = part.referencesProp.supplier_part_numberProp + supplier_part_numbers.append(types.SupplierPartNumber(value=p.part_number, supplier=DIGIKEY_URI)) - part_numbers.append(types.PartNumber(value=p.part_number, distributor=DIGIKEY_URI)) + part_numbers = part.referencesProp.part_numberProp if p.mpn: part_numbers.append(types.PartNumber(value=p.mpn)) facts: List[types.Fact] = part.factsProp.factProp @@ -46,8 +48,8 @@ def search_parts(in_path: Path, out_path: Path, cache_dir: Path): client = DigikeyClient(cache_dir) for part in in_db.iterparts(): - dpn = bom_file_utils.find_dpn(part, DIGIKEY_URI) - mpn = bom_file_utils.find_pn(part) + dpn = next((p.valueProp for p in bom_file_utils.supplier_part_numbers(part) if p.supplierProp == DIGIKEY_URI), None) + mpn = next((p.valueProp for p in bom_file_utils.part_numbers(part)), None) is_mpn = query = None @@ -59,13 +61,14 @@ def search_parts(in_path: Path, out_path: Path, cache_dir: Path): is_mpn = True if query is None: - print("could not find pn or dpn: part.id={}".format(part.idProp)) + # TODO: use schematic reference + print("could not find pn or dpn: part.uri={}".format(part.uriProp)) continue out_id = query - out_part = types.Part(id=out_id, - distributor_info=types.DistributorInfo(), - part_numbers=part.part_numbersProp) + out_part = types.Part(uri=out_id, + distributor_info=types.DistributorInfo(), + references=part.referencesProp) di = out_part.distributor_infoProp text = client.search(query) @@ -101,4 +104,4 @@ def search_parts(in_path: Path, out_path: Path, cache_dir: Path): out_parts.add_entry(out_part, True) print("Saving {} work parts".format(out_parts.size())) - save_db(out_path, out_parts) + save_db(out_path, out_parts, sort=True) -- cgit v1.2.3