From: david-sarah Date: Wed, 3 Nov 2010 02:47:40 +0000 (-0800) Subject: bundled zetuptools: prefer platform-specific dists to platform-independent ones.... X-Git-Tag: allmydata-tahoe-1.8.1~23 X-Git-Url: https://git.rkrishnan.org/listings/readonly?a=commitdiff_plain;h=a1cef915fd689308a7d4135310679115f860201d;p=tahoe-lafs%2Ftahoe-lafs.git bundled zetuptools: prefer platform-specific dists to platform-independent ones. refs #1233 --- diff --git a/setuptools-0.6c16dev2.egg/pkg_resources.py b/setuptools-0.6c16dev2.egg/pkg_resources.py index 9828d897..00d97225 100644 --- a/setuptools-0.6c16dev2.egg/pkg_resources.py +++ b/setuptools-0.6c16dev2.egg/pkg_resources.py @@ -793,19 +793,33 @@ class Environment(object): This calls the ``find(req)`` method of the `working_set` to see if a suitable distribution is already active. (This may raise ``VersionConflict`` if an unsuitable version of the project is already - active in the specified `working_set`.) If a suitable distribution - isn't active, this method returns the newest distribution in the - environment that meets the ``Requirement`` in `req`. If no suitable - distribution is found, and `installer` is supplied, then the result of - calling the environment's ``obtain(req, installer)`` method will be - returned. + active in the specified `working_set`.) + + If a suitable distribution isn't active, this method returns the + newest platform-dependent distribution in the environment that meets + the ``Requirement`` in `req`. If no suitable platform-dependent + distribution is found, then the newest platform-independent + distribution that meets the requirement is returned. (A platform- + dependent distribution will typically have code compiled or + specialized for that platform.) + + Otherwise, if `installer` is supplied, then the result of calling the + environment's ``obtain(req, installer)`` method will be returned. """ dist = working_set.find(req) if dist is not None: return dist + + # first try to find a platform-dependent dist + for dist in self[req.key]: + if dist in req and dist.platform is not None: + return dist + + # then try any other dist for dist in self[req.key]: if dist in req: return dist + return self.obtain(req, installer) # try and download/install def obtain(self, requirement, installer=None):