summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Stufft <donald@stufft.io>2014-01-21 12:43:01 -0500
committerDonald Stufft <donald@stufft.io>2014-01-21 14:02:34 -0500
commitcc43b8fe29629a2878820fff2db74c7ce416622f (patch)
treef6cf1ea8b39676d684ace6a6182bfb19a4d47cc1
parenta53c1ed09bc7a4866423c0eb1386217f8c7b2594 (diff)
downloadpip-cc43b8fe29629a2878820fff2db74c7ce416622f.tar.gz
Upgrade pkg_resources to setuptools 2.1
-rw-r--r--CHANGES.txt6
-rw-r--r--pip/_vendor/README.rst2
-rw-r--r--pip/_vendor/pkg_resources.py54
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',