From 06a8b1ea84fd67c019ef91c28c18ddcc9ea2ecb8 Mon Sep 17 00:00:00 2001 From: Zooko O'Whielacronx Date: Thu, 22 Nov 2012 09:27:28 -0700 Subject: [PATCH] pkg_resources: better error message on bad spec Include the text of the offending distribution spec when it is ill-formed. I got an error message from pkg_resources.py saying that a distribution spec was ill-formed, because it ended with an '=' and nothing came after the '='. However, the error message and stack trace didn't tell which distribution spec it was. With this patch, it includes the distribution spec itself in the error message. There is no unit test of this patch, but I did test it manually by inserting a "raise ValueError('WHATEVER')" into the code and re-running it and observing that the new output correctly included the distribution --- setuptools-0.6c16dev3.egg/pkg_resources.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/setuptools-0.6c16dev3.egg/pkg_resources.py b/setuptools-0.6c16dev3.egg/pkg_resources.py index 00d97225..3dbdec14 100644 --- a/setuptools-0.6c16dev3.egg/pkg_resources.py +++ b/setuptools-0.6c16dev3.egg/pkg_resources.py @@ -528,11 +528,14 @@ class WorkingSet(object): # dist is unsatisfactory, in which case we won't add it. if __requires__ is not None: for thisreqstr in __requires__: - for thisreq in parse_requirements(thisreqstr): - if thisreq.key == dist.key: - if dist not in thisreq: - return - + try: + for thisreq in parse_requirements(thisreqstr): + if thisreq.key == dist.key: + if dist not in thisreq: + return + except ValueError, e: + e.args = tuple(e.args + ({'thisreqstr': thisreqstr},)) + raise self.by_key[dist.key] = dist if dist.key not in keys: -- 2.37.2