30350n / inventree_part_import

CLI to import parts from suppliers like DigiKey, LCSC, Mouser, etc. to InvenTree
MIT License
24 stars 8 forks source link

LCSC import failure for mpn 50058-8020 and 53048-0410 #34

Closed atanisoft closed 2 months ago

atanisoft commented 2 months ago

When importing mpn 50058-8020 or 53048-0410 there is a crash during LCSC part handling:

successfully updated Mouser part 538-50058-8020 (http://localhost:1337/supplier-part/861/)
Traceback (most recent call last):
  File "bin/inventree-part-import", line 8, in <module>
    sys.exit(inventree_part_import())
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "click/decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "inventree_part_import/cli.py", line 23, in wrapper
    func(*args, **kwargs)
  File "inventree_part_import/cli.py", line 208, in inventree_part_import
    importer.import_part(part, None, supplier, only_supplier)
  File "inventree_part_import/part_importer.py", line 64, in import_part
    results, result_count = async_results.get()
                            ^^^^^^^^^^^^^^^^^^^
  File "python3.11/multiprocessing/pool.py", line 774, in get
    raise self._value
  File "python3.11/multiprocessing/pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
                    ^^^^^^^^^^^^^^^^^^^
  File "inventree_part_import/suppliers/base.py", line 79, in cached_search
    return self.search(search_term)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "inventree_part_import/suppliers/supplier_lcsc.py", line 30, in search
    if product_detail := result["result"]["tipProductDetailUrlVO"]:
                         ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
30350n commented 2 months ago

This is caused by the LCSC API not being 100% reliable right now seemingly. It shouldn't cause an error now anymore though.