From 6c25a62d1e94ac73189cd997f86a8aa18ee761b3 Mon Sep 17 00:00:00 2001 From: PJ Eby Date: Tue, 14 Jun 2005 15:29:41 +0000 Subject: 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 --- pkg_resources.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'pkg_resources.py') 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 -- cgit v1.2.1