Jason R. Coombs  committed 1e714ba Merge

Merged in qwcode/setuptools/zip_path (pull request #32)

convert "find_in_zip" into "find_eggs_in_zip" to prevent it from walking whl files. Fixes #129

  • Participants
  • Parent commits 976b839, 8d18fbc

Comments (0)

Files changed (1)


     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)
     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 ()