Warn when pypi queries fail

Currently, pipreqs silently ignores missing packages or network errors
unless --debug is supplied. requirements.txt still gets built, but is
likely to be wrong.

This prints appropriate warnings when something goes wrong querying
pypi. For nonexistent packages, it suggests a missing mapping as a
possible culprit.
This commit is contained in:
Andrew Vant 2018-11-20 16:06:21 -05:00
parent 8de55d67a1
commit 2971861bac

View File

@ -193,9 +193,15 @@ def get_imports_info(
elif response.status_code >= 300:
raise HTTPError(status_code=response.status_code,
reason=response.reason)
except HTTPError:
logging.debug(
'Package %s does not exist or network problems', item)
except HTTPError as err:
if err.errno == 404:
msg = "Package `%s` isn't on pypi, skipping"
logging.warning(msg, item)
msg = "(possible missing mapping for import name `%s`?)"
logging.warning(msg, item)
else:
msg = "HTTP error %s querying package %s, skipping"
logging.warning(msg, err.errno, item)
continue
result.append({'name': item, 'version': data.latest_release_id})
return result