zetuptoolz: tolerate a single string for __requires__, and improve error reporting...
authorDaira Hopwood <daira@jacaranda.org>
Tue, 28 Apr 2015 17:42:57 +0000 (18:42 +0100)
committerDaira Hopwood <daira@jacaranda.org>
Tue, 28 Apr 2015 17:42:57 +0000 (18:42 +0100)
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
setuptools-0.6c16dev5.egg/pkg_resources.py

index a94d89f8472d07ad24a25c2c39238e88fd5942f4..52ce472f8ada2e24f60188459c8c49a3907bb510 100644 (file)
@@ -529,14 +529,19 @@ class WorkingSet(object):
         # If we have a __requires__ then we can already tell if this
         # dist is unsatisfactory, in which case we won't add it.
         if __requires__ is not None:
-            for thisreqstr in __requires__:
+            if isinstance(__requires__, basestring):
+                array_of__requires__ = [__requires__]
+            else:
+                array_of__requires__ = __requires__
+
+            for thisreqstr in array_of__requires__:
                 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},))
+                    e.args = tuple(e.args + ({'thisreqstr': thisreqstr, '__requires__': __requires__},))
                     raise
 
         self.by_key[dist.key] = dist