[Python-modules-commits] [python-pip] 03/17: Warn and skip broken requirements.
Barry Warsaw
barry at moszumanska.debian.org
Fri Jun 17 08:18:40 UTC 2016
This is an automated email from the git hooks/post-receive script.
barry pushed a commit to branch master
in repository python-pip.
commit 0ebc20dd1c0e5f2c7c1f28b0859a63f8b024365c
Author: Barry Warsaw <barry at python.org>
Date: Thu Jun 16 15:29:12 2016 +0300
Warn and skip broken requirements.
Description: Warn and skip broken requirements.
Origin: https://github.com/pypa/pip/pull/3704
Bug: https://github.com/pypa/pip/issues/3681
Forwarded: not-needed
Patch-Name: skip-bad-requirements.patch
---
pip/__main__.py | 9 +++++++++
pip/operations/freeze.py | 16 ++++++++++++----
2 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/pip/__main__.py b/pip/__main__.py
index 5556539..7e30310 100644
--- a/pip/__main__.py
+++ b/pip/__main__.py
@@ -15,5 +15,14 @@ if __package__ == '':
import pip # noqa
+# 2016-06-17 barry at debian.org: urllib3 recently added optional socks support,
+# but it issues a homegrown DependencyWarning if socks can't be imported. For
+# now I don't want to add socks as a dependency for pip, but allowing the
+# warning to be printed to stderr breaks the DEP-8 tests and is just plain
+# annoying for normal users. For now, suppress the warning.
+from urllib3.exceptions import DependencyWarning
+import warnings
+warnings.simplefilter('ignore', category=DependencyWarning)
+
if __name__ == '__main__':
sys.exit(pip.main())
diff --git a/pip/operations/freeze.py b/pip/operations/freeze.py
index 086922e..7493ced 100644
--- a/pip/operations/freeze.py
+++ b/pip/operations/freeze.py
@@ -8,6 +8,7 @@ from pip.req import InstallRequirement
from pip.utils import get_installed_distributions
from pip._vendor import pkg_resources
from pip._vendor.packaging.utils import canonicalize_name
+from pip._vendor.pkg_resources import RequirementParseError
logger = logging.getLogger(__name__)
@@ -42,10 +43,17 @@ def freeze(
for dist in get_installed_distributions(local_only=local_only,
skip=(),
user_only=user_only):
- req = pip.FrozenRequirement.from_dist(
- dist,
- dependency_links
- )
+ try:
+ req = pip.FrozenRequirement.from_dist(
+ dist,
+ dependency_links
+ )
+ except RequirementParseError:
+ logger.warning(
+ "Could not parse requirement: %s",
+ dist.project_name
+ )
+ continue
installations[req.name] = req
if requirement:
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-pip.git
More information about the Python-modules-commits
mailing list