python-license-check
python-license-check copied to clipboard
Improve error message in case a requirement is not installed.
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.