Skip to content

Commit c6ce6e9

Browse files
committed
Merge pull request #1490 from dstufft/upgrade-pkg_resources
Upgrade pkg_resources to setuptools 2.1
2 parents a53c1ed + cc43b8f commit c6ce6e9

File tree

3 files changed

+30
-32
lines changed

3 files changed

+30
-32
lines changed

CHANGES.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
Changelog
22
=========
33

4+
1.5.2 (unreleased)
5+
------------------
6+
7+
* Upgraded the vendored ``pkg_resources`` and ``_markerlib`` to setuptools 2.1.
8+
9+
410
1.5.1 (2014-01-20)
511
------------------
612

pip/_vendor/README.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Modifications
1616
Markerlib and pkg_resources
1717
===========================
1818

19-
Markerlib and pkg_resources has been pulled in from setuptools 2.0.2
19+
Markerlib and pkg_resources has been pulled in from setuptools 2.1
2020

2121

2222
Note to Downstream Distributors

pip/_vendor/pkg_resources.py

Lines changed: 23 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
"""Package resource API
1+
"""
2+
Package resource API
23
--------------------
34
45
A resource is a logical file contained within a package, or a logical
@@ -1717,7 +1718,14 @@ def find_distributions(path_item, only=False):
17171718
finder = _find_adapter(_distribution_finders, importer)
17181719
return finder(importer, path_item, only)
17191720

1720-
def find_in_zip(importer, path_item, only=False):
1721+
def find_eggs_in_zip(importer, path_item, only=False):
1722+
"""
1723+
Find eggs in zip files; possibly multiple nested eggs.
1724+
"""
1725+
if importer.archive.endswith('.whl'):
1726+
# wheels are not supported with this finder
1727+
# they don't have PKG-INFO metadata, and won't ever contain eggs
1728+
return
17211729
metadata = EggMetadata(importer)
17221730
if metadata.has_metadata('PKG-INFO'):
17231731
yield Distribution.from_filename(path_item, metadata=metadata)
@@ -1726,10 +1734,10 @@ def find_in_zip(importer, path_item, only=False):
17261734
for subitem in metadata.resource_listdir('/'):
17271735
if subitem.endswith('.egg'):
17281736
subpath = os.path.join(path_item, subitem)
1729-
for dist in find_in_zip(zipimport.zipimporter(subpath), subpath):
1737+
for dist in find_eggs_in_zip(zipimport.zipimporter(subpath), subpath):
17301738
yield dist
17311739

1732-
register_finder(zipimport.zipimporter, find_in_zip)
1740+
register_finder(zipimport.zipimporter, find_eggs_in_zip)
17331741

17341742
def find_nothing(importer, path_item, only=False):
17351743
return ()
@@ -2032,7 +2040,7 @@ def require(self, env=None, installer=None):
20322040
list(map(working_set.add,
20332041
working_set.resolve(self.dist.requires(self.extras),env,installer)))
20342042

2035-
#@classmethod
2043+
@classmethod
20362044
def parse(cls, src, dist=None):
20372045
"""Parse a single entry point from string `src`
20382046
@@ -2064,9 +2072,7 @@ def parse(cls, src, dist=None):
20642072
else:
20652073
return cls(name.strip(), value.strip(), attrs, extras, dist)
20662074

2067-
parse = classmethod(parse)
2068-
2069-
#@classmethod
2075+
@classmethod
20702076
def parse_group(cls, group, lines, dist=None):
20712077
"""Parse an entry point group"""
20722078
if not MODULE(group):
@@ -2079,9 +2085,7 @@ def parse_group(cls, group, lines, dist=None):
20792085
this[ep.name]=ep
20802086
return this
20812087

2082-
parse_group = classmethod(parse_group)
2083-
2084-
#@classmethod
2088+
@classmethod
20852089
def parse_map(cls, data, dist=None):
20862090
"""Parse a map of entry point groups"""
20872091
if isinstance(data,dict):
@@ -2100,8 +2104,6 @@ def parse_map(cls, data, dist=None):
21002104
maps[group] = cls.parse_group(group, lines, dist)
21012105
return maps
21022106

2103-
parse_map = classmethod(parse_map)
2104-
21052107

21062108
def _remove_md5_fragment(location):
21072109
if not location:
@@ -2128,7 +2130,7 @@ def __init__(self, location=None, metadata=None, project_name=None,
21282130
self.precedence = precedence
21292131
self._provider = metadata or empty_provider
21302132

2131-
#@classmethod
2133+
@classmethod
21322134
def from_location(cls,location,basename,metadata=None,**kw):
21332135
project_name, version, py_version, platform = [None]*4
21342136
basename, ext = os.path.splitext(basename)
@@ -2144,7 +2146,6 @@ def from_location(cls,location,basename,metadata=None,**kw):
21442146
location, metadata, project_name=project_name, version=version,
21452147
py_version=py_version, platform=platform, **kw
21462148
)
2147-
from_location = classmethod(from_location)
21482149

21492150
hashcmp = property(
21502151
lambda self: (
@@ -2177,26 +2178,23 @@ def __ne__(self, other):
21772178
# metadata until/unless it's actually needed. (i.e., some distributions
21782179
# may not know their name or version without loading PKG-INFO)
21792180

2180-
#@property
2181+
@property
21812182
def key(self):
21822183
try:
21832184
return self._key
21842185
except AttributeError:
21852186
self._key = key = self.project_name.lower()
21862187
return key
2187-
key = property(key)
21882188

2189-
#@property
2189+
@property
21902190
def parsed_version(self):
21912191
try:
21922192
return self._parsed_version
21932193
except AttributeError:
21942194
self._parsed_version = pv = parse_version(self.version)
21952195
return pv
21962196

2197-
parsed_version = property(parsed_version)
2198-
2199-
#@property
2197+
@property
22002198
def version(self):
22012199
try:
22022200
return self._version
@@ -2209,9 +2207,8 @@ def version(self):
22092207
raise ValueError(
22102208
"Missing 'Version:' header and/or %s file" % self.PKG_INFO, self
22112209
)
2212-
version = property(version)
22132210

2214-
#@property
2211+
@property
22152212
def _dep_map(self):
22162213
try:
22172214
return self.__dep_map
@@ -2229,7 +2226,6 @@ def _dep_map(self):
22292226
extra = safe_extra(extra) or None
22302227
dm.setdefault(extra,[]).extend(parse_requirements(reqs))
22312228
return dm
2232-
_dep_map = property(_dep_map)
22332229

22342230
def requires(self,extras=()):
22352231
"""List of Requirements needed for this distro if `extras` are used"""
@@ -2287,13 +2283,12 @@ def __getattr__(self,attr):
22872283
raise AttributeError(attr)
22882284
return getattr(self._provider, attr)
22892285

2290-
#@classmethod
2286+
@classmethod
22912287
def from_filename(cls,filename,metadata=None, **kw):
22922288
return cls.from_location(
22932289
_normalize_cached(filename), os.path.basename(filename), metadata,
22942290
**kw
22952291
)
2296-
from_filename = classmethod(from_filename)
22972292

22982293
def as_requirement(self):
22992294
"""Return a ``Requirement`` that matches this distribution exactly"""
@@ -2400,10 +2395,9 @@ def clone(self,**kw):
24002395
kw.setdefault('metadata', self._provider)
24012396
return self.__class__(**kw)
24022397

2403-
#@property
2398+
@property
24042399
def extras(self):
24052400
return [dep for dep in self._dep_map if dep]
2406-
extras = property(extras)
24072401

24082402

24092403
class DistInfoDistribution(Distribution):
@@ -2607,7 +2601,7 @@ def __hash__(self):
26072601

26082602
def __repr__(self): return "Requirement.parse(%r)" % str(self)
26092603

2610-
#@staticmethod
2604+
@staticmethod
26112605
def parse(s):
26122606
reqs = list(parse_requirements(s))
26132607
if reqs:
@@ -2616,8 +2610,6 @@ def parse(s):
26162610
raise ValueError("Expected only one requirement", s)
26172611
raise ValueError("No requirements found", s)
26182612

2619-
parse = staticmethod(parse)
2620-
26212613
state_machine = {
26222614
# =><
26232615
'<': '--T',

0 commit comments

Comments
 (0)