python-license-check icon indicating copy to clipboard operation
python-license-check copied to clipboard

Improve error message in case a requirement is not installed.

Open danschef opened this issue 2 years ago • 0 comments

In case a requirement found in the requirements.txt is not installed in the current environment, liccheck fails with an AttributeError like this:

(myenv) me@geoms:~$ liccheck --no-deps
gathering licenses...
Traceback (most recent call last):
  File "/home/me/mambaforge/envs/myenv/bin/liccheck", line 8, in <module>
    sys.exit(main())
  File "/home/me/mambaforge/envs/myenv/lib/python3.10/site-packages/liccheck/command_line.py", line 399, in main
    sys.exit(run(args))
  File "/home/me/mambaforge/envs/myenv/lib/python3.10/site-packages/liccheck/command_line.py", line 388, in run
    return process(args['requirement_txt_file'], strategy, args['level'], args['reporting_txt_file'],
  File "/home/me/mambaforge/envs/myenv/lib/python3.10/site-packages/liccheck/command_line.py", line 250, in process
    pkg_info = get_packages_info(requirement_file, no_deps)
  File "/home/me/mambaforge/envs/myenv/lib/python3.10/site-packages/liccheck/command_line.py", line 166, in get_packages_info
    packages = [transform(dist) for dist in resolve_func(requirements)]
  File "/home/me/mambaforge/envs/myenv/lib/python3.10/site-packages/liccheck/command_line.py", line 166, in <listcomp>
    packages = [transform(dist) for dist in resolve_func(requirements)]
  File "/home/me/mambaforge/envs/myenv/lib/python3.10/site-packages/liccheck/command_line.py", line 120, in transform
    licenses = get_licenses_from_classifiers(dist) or get_license(dist) or []
  File "/home/me/mambaforge/envs/myenv/lib/python3.10/site-packages/liccheck/command_line.py", line 146, in get_licenses_from_classifiers
    if dist.has_metadata(dist.PKG_INFO):
AttributeError: 'NoneType' object has no attribute 'has_metadata'

It would be nice to have a more useful error message.

danschef avatar Sep 06 '22 16:09 danschef