summaryrefslogtreecommitdiff
path: root/pkg_resources
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2015-01-04 13:58:33 -0500
committerJason R. Coombs <jaraco@jaraco.com>2015-01-04 13:58:33 -0500
commit0529be8ca5487513336da8fd35108c52aa95e582 (patch)
tree85c2b6804b2ff55d2e8e06fae7ff1046ccb74d15 /pkg_resources
parenta7ae16215eab4487954d546f583e30869696adfc (diff)
downloadpython-setuptools-git-0529be8ca5487513336da8fd35108c52aa95e582.tar.gz
Only raise a ContextualVersionConflict when dependent requirements are present.
Diffstat (limited to 'pkg_resources')
-rw-r--r--pkg_resources/__init__.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/pkg_resources/__init__.py b/pkg_resources/__init__.py
index 522247e0..d51f301b 100644
--- a/pkg_resources/__init__.py
+++ b/pkg_resources/__init__.py
@@ -339,6 +339,16 @@ class VersionConflict(ResolutionError):
def report(self):
return self._template.format(**locals())
+ def with_context(self, required_by):
+ """
+ If required_by is non-empty, return a version of self that is a
+ ContextualVersionConflict.
+ """
+ if not required_by:
+ return self
+ args = self.args + (required_by,)
+ return ContextualVersionConflict(*args)
+
class ContextualVersionConflict(VersionConflict):
"""
@@ -797,7 +807,7 @@ class WorkingSet(object):
if dist not in req:
# Oops, the "best" so far conflicts with a dependency
dependent_req = required_by[req]
- raise ContextualVersionConflict(dist, req, dependent_req)
+ raise VersionConflict(dist, req).with_context(dependent_req)
# push the new requirements onto the stack
new_requirements = dist.requires(req.extras)[::-1]