hildogjr / KiCost

Build cost spreadsheet for a KiCad project.
MIT License
493 stars 97 forks source link

Starting cost processing ... ERROR:Internal error: invalid literal for int() with base 10: '' (kicost - kicost_gui.py:150) #567

Closed mxa closed 1 week ago

mxa commented 2 weeks ago

Issue / Problem report

KiCost v1.1.19 on Kubuntu 24.04 I'm getting this error:

DEBUG:Getting parts... (kicost.edas - generic_csv.py:197)
Traceback (most recent call last):
  File "/usr/bin/kicost", line 33, in <module>
    sys.exit(load_entry_point('kicost==1.1.19', 'console_scripts', 'kicost')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/kicost/__main__.py", line 479, in main
    main_real()
  File "/usr/lib/python3/dist-packages/kicost/__main__.py", line 469, in main_real
    kicost(in_file=args.input, eda_name=args.eda,
  File "/usr/lib/python3/dist-packages/kicost/kicost.py", line 172, in kicost
    p, info = get_part_groups(eda_name[i_prj], in_file[i_prj], ignore_fields, variant[i_prj], dist_list)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/kicost/edas/__init__.py", line 49, in get_part_groups
    return eda_class.get_part_groups(eda, in_file, ignore_fields, variant, distributors)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/kicost/edas/eda.py", line 119, in get_part_groups
    parts, prj_info = eda_class.registered[eda].get_part_groups(in_file, distributors)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/kicost/edas/generic_csv.py", line 223, in get_part_groups
    return get_part_groups(in_file, distributors)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/kicost/edas/generic_csv.py", line 204, in get_part_groups
    refs, fields, gen_cntr = extract_fields(row, header, header_file, dialect, gen_cntr)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/kicost/edas/generic_csv.py", line 93, in extract_fields
    refs = split_refs(ref_str)
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/kicost/edas/tools.py", line 777, in split_refs
    split = list(range(int(split_nums[0]), int(split_nums[1])+1))
                       ^^^^^^^^^^^^^^^^^^
ValueError: invalid literal for int() with base 10: ''
set-soft commented 1 week ago

You are most probably using an invalid reference for a component. You must use "XXXNNN" references, i.e. "D1", not things like "I'm a testpoint". You can consult IPC standards about what a circuit is supposed to use