From cc43b8fe29629a2878820fff2db74c7ce416622f Mon Sep 17 00:00:00 2001 From: Donald Stufft Date: Tue, 21 Jan 2014 12:43:01 -0500 Subject: Upgrade pkg_resources to setuptools 2.1 --- CHANGES.txt | 6 +++++ pip/_vendor/README.rst | 2 +- pip/_vendor/pkg_resources.py | 54 +++++++++++++++++++------------------------- 3 files changed, 30 insertions(+), 32 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 1b928d2e4..f3123e51f 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,12 @@ Changelog ========= +1.5.2 (unreleased) +------------------ + +* Upgraded the vendored ``pkg_resources`` and ``_markerlib`` to setuptools 2.1. + + 1.5.1 (2014-01-20) ------------------ diff --git a/pip/_vendor/README.rst b/pip/_vendor/README.rst index 34c7dba78..0fc983d92 100644 --- a/pip/_vendor/README.rst +++ b/pip/_vendor/README.rst @@ -16,7 +16,7 @@ Modifications Markerlib and pkg_resources =========================== -Markerlib and pkg_resources has been pulled in from setuptools 2.0.2 +Markerlib and pkg_resources has been pulled in from setuptools 2.1 Note to Downstream Distributors diff --git a/pip/_vendor/pkg_resources.py b/pip/_vendor/pkg_resources.py index 72e0b1e09..b93cd24d3 100644 --- a/pip/_vendor/pkg_resources.py +++ b/pip/_vendor/pkg_resources.py @@ -1,4 +1,5 @@ -"""Package resource API +""" +Package resource API -------------------- A resource is a logical file contained within a package, or a logical @@ -1717,7 +1718,14 @@ def find_distributions(path_item, only=False): finder = _find_adapter(_distribution_finders, importer) return finder(importer, path_item, only) -def find_in_zip(importer, path_item, only=False): +def find_eggs_in_zip(importer, path_item, only=False): + """ + Find eggs in zip files; possibly multiple nested eggs. + """ + if importer.archive.endswith('.whl'): + # wheels are not supported with this finder + # they don't have PKG-INFO metadata, and won't ever contain eggs + return metadata = EggMetadata(importer) if metadata.has_metadata('PKG-INFO'): yield Distribution.from_filename(path_item, metadata=metadata) @@ -1726,10 +1734,10 @@ def find_in_zip(importer, path_item, only=False): for subitem in metadata.resource_listdir('/'): if subitem.endswith('.egg'): subpath = os.path.join(path_item, subitem) - for dist in find_in_zip(zipimport.zipimporter(subpath), subpath): + for dist in find_eggs_in_zip(zipimport.zipimporter(subpath), subpath): yield dist -register_finder(zipimport.zipimporter, find_in_zip) +register_finder(zipimport.zipimporter, find_eggs_in_zip) def find_nothing(importer, path_item, only=False): return () @@ -2032,7 +2040,7 @@ class EntryPoint(object): list(map(working_set.add, working_set.resolve(self.dist.requires(self.extras),env,installer))) - #@classmethod + @classmethod def parse(cls, src, dist=None): """Parse a single entry point from string `src` @@ -2064,9 +2072,7 @@ class EntryPoint(object): else: return cls(name.strip(), value.strip(), attrs, extras, dist) - parse = classmethod(parse) - - #@classmethod + @classmethod def parse_group(cls, group, lines, dist=None): """Parse an entry point group""" if not MODULE(group): @@ -2079,9 +2085,7 @@ class EntryPoint(object): this[ep.name]=ep return this - parse_group = classmethod(parse_group) - - #@classmethod + @classmethod def parse_map(cls, data, dist=None): """Parse a map of entry point groups""" if isinstance(data,dict): @@ -2100,8 +2104,6 @@ class EntryPoint(object): maps[group] = cls.parse_group(group, lines, dist) return maps - parse_map = classmethod(parse_map) - def _remove_md5_fragment(location): if not location: @@ -2128,7 +2130,7 @@ class Distribution(object): self.precedence = precedence self._provider = metadata or empty_provider - #@classmethod + @classmethod def from_location(cls,location,basename,metadata=None,**kw): project_name, version, py_version, platform = [None]*4 basename, ext = os.path.splitext(basename) @@ -2144,7 +2146,6 @@ class Distribution(object): location, metadata, project_name=project_name, version=version, py_version=py_version, platform=platform, **kw ) - from_location = classmethod(from_location) hashcmp = property( lambda self: ( @@ -2177,16 +2178,15 @@ class Distribution(object): # metadata until/unless it's actually needed. (i.e., some distributions # may not know their name or version without loading PKG-INFO) - #@property + @property def key(self): try: return self._key except AttributeError: self._key = key = self.project_name.lower() return key - key = property(key) - #@property + @property def parsed_version(self): try: return self._parsed_version @@ -2194,9 +2194,7 @@ class Distribution(object): self._parsed_version = pv = parse_version(self.version) return pv - parsed_version = property(parsed_version) - - #@property + @property def version(self): try: return self._version @@ -2209,9 +2207,8 @@ class Distribution(object): raise ValueError( "Missing 'Version:' header and/or %s file" % self.PKG_INFO, self ) - version = property(version) - #@property + @property def _dep_map(self): try: return self.__dep_map @@ -2229,7 +2226,6 @@ class Distribution(object): extra = safe_extra(extra) or None dm.setdefault(extra,[]).extend(parse_requirements(reqs)) return dm - _dep_map = property(_dep_map) def requires(self,extras=()): """List of Requirements needed for this distro if `extras` are used""" @@ -2287,13 +2283,12 @@ class Distribution(object): raise AttributeError(attr) return getattr(self._provider, attr) - #@classmethod + @classmethod def from_filename(cls,filename,metadata=None, **kw): return cls.from_location( _normalize_cached(filename), os.path.basename(filename), metadata, **kw ) - from_filename = classmethod(from_filename) def as_requirement(self): """Return a ``Requirement`` that matches this distribution exactly""" @@ -2400,10 +2395,9 @@ class Distribution(object): kw.setdefault('metadata', self._provider) return self.__class__(**kw) - #@property + @property def extras(self): return [dep for dep in self._dep_map if dep] - extras = property(extras) class DistInfoDistribution(Distribution): @@ -2607,7 +2601,7 @@ class Requirement: def __repr__(self): return "Requirement.parse(%r)" % str(self) - #@staticmethod + @staticmethod def parse(s): reqs = list(parse_requirements(s)) if reqs: @@ -2616,8 +2610,6 @@ class Requirement: raise ValueError("Expected only one requirement", s) raise ValueError("No requirements found", s) - parse = staticmethod(parse) - state_machine = { # =>< '<': '--T', -- cgit v1.2.1