aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPJ Eby <distutils-sig@python.org>2005-06-14 15:29:41 +0000
committerPJ Eby <distutils-sig@python.org>2005-06-14 15:29:41 +0000
commit6c25a62d1e94ac73189cd997f86a8aa18ee761b3 (patch)
tree0ccb8bb5ef5773acede8d68c71bd3fa79d455f12
parenta085f6619ea0c1d19db412fd10741bae3f13ecfb (diff)
downloadexternal_python_setuptools-6c25a62d1e94ac73189cd997f86a8aa18ee761b3.tar.gz
external_python_setuptools-6c25a62d1e94ac73189cd997f86a8aa18ee761b3.tar.bz2
external_python_setuptools-6c25a62d1e94ac73189cd997f86a8aa18ee761b3.zip
Fix more zipped-egg directory resource bugs reported by Ryan Tomayko.
--HG-- branch : setuptools extra : convert_revision : svn%3A6015fed2-1504-0410-9fe1-9d1591cc4771/sandbox/trunk/setuptools%4041063
-rw-r--r--pkg_resources.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/pkg_resources.py b/pkg_resources.py
index 53e42b0a..30c430c9 100644
--- a/pkg_resources.py
+++ b/pkg_resources.py
@@ -738,7 +738,7 @@ class ZipProvider(DefaultProvider):
def _extract_resource(self, manager, resource_name):
if self.resource_isdir(resource_name):
- return self._extract_directory(resource_name)
+ return self._extract_directory(manager, resource_name)
parts = resource_name.split('/')
zip_path = os.path.join(self.module_path, *parts)
@@ -801,23 +801,23 @@ class ZipProvider(DefaultProvider):
return self._short_name(path) in self.zipinfo or self._isdir(path)
def _isdir(self,path):
- path = self._short_name(path).replace(os.sep, '/')
- if path.endswith('/'): path = path[:-1]
- return path in self._index()
+ return self._dir_name(path) in self._index()
def _listdir(self,path):
- path = self._short_name(path).replace(os.sep, '/')
+ return list(self._index().get(self._dir_name(path), ()))
+
+ def _dir_name(self,path):
+ if path.startswith(self.module_path+os.sep):
+ path = path[len(self.module_path+os.sep):]
+ path = path.replace(os.sep,'/')
if path.endswith('/'): path = path[:-1]
- return list(self._index().get(path, ()))
+ return path
_get = NullProvider._get
-
register_loader_type(zipimport.zipimporter, ZipProvider)
-
-
class PathMetadata(DefaultProvider):
"""Metadata provider for egg directories