6
mirror of https://github.com/AllSpiceIO/cofactr-cogs.git synced 2025-04-18 07:48:55 +00:00

Change search_strategy of "default" to "fuzzy"

This commit is contained in:
Jonathan Tran 2024-05-23 12:37:32 -04:00
parent e91223ecff
commit 57bb688bd9
No known key found for this signature in database
2 changed files with 8 additions and 4 deletions

View File

@ -26,7 +26,7 @@ inputs:
default: Quantity
search_strategy:
description: >
The Cofactr search strategy. Can be: "default" (uses mpn), "mpn_sku_mfr".
The Cofactr search strategy. Can be: "mpn_sku_mfr" or "fuzzy" (uses mpn).
Defaults to "mpn_sku_mfr". See Cofactr API documentation for more
information on search strategies.
default: mpn_sku_mfr

View File

@ -134,7 +134,7 @@ if __name__ == "__main__":
)
parser.add_argument(
"--search-strategy",
help="The Cofactr search strategy. Can be: default or mpn_sku_mfr. "
help="The Cofactr search strategy. Can be: mpn_sku_mfr or fuzzy (uses mpn). "
+ "Defaults to '%(default)s'. The API also supports mpn_exact and mpn_exact_mfr, "
+ "but they are not recommended.",
default="mpn_sku_mfr",
@ -151,6 +151,10 @@ if __name__ == "__main__":
part_number_column = args.bom_part_number_column
manufacturer_column = args.bom_manufacturer_column
quantity_column = args.bom_quantity_column
search_strategy = args.search_strategy
if search_strategy == "fuzzy":
# Cofactr's default search strategy is designed for search results.
search_strategy = "default"
with open(args.bom_file, "r") as bom_file:
bom_csv = csv.DictReader(bom_file)
@ -165,7 +169,7 @@ if __name__ == "__main__":
prices_for_parts = {}
use_mfr = bool(manufacturer_column)
if not use_mfr and query_needs_manufacturer(args.search_strategy):
if not use_mfr and query_needs_manufacturer(search_strategy):
raise ValueError(
"Search strategy requires manufacturer, but no BOM manufacturer column was provided"
)
@ -173,7 +177,7 @@ if __name__ == "__main__":
for part in parts:
part_number = part[part_number_column]
manufacturer = part[manufacturer_column] if use_mfr else ""
prices = fetch_price_for_part(part_number, manufacturer, args.search_strategy)
prices = fetch_price_for_part(part_number, manufacturer, search_strategy)
if prices and len(prices) > 0:
prices_for_parts[part_number] = prices