From 2971861bacb3f2212ed5e85eba4b526051eefb03 Mon Sep 17 00:00:00 2001 From: Andrew Vant Date: Tue, 20 Nov 2018 16:06:21 -0500 Subject: [PATCH] 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. --- pipreqs/pipreqs.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pipreqs/pipreqs.py b/pipreqs/pipreqs.py index 2557c31..2759ff1 100755 --- a/pipreqs/pipreqs.py +++ b/pipreqs/pipreqs.py @@ -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