Skip to content

Commit

Permalink
Merge pull request #2490 from thatch/main
Browse files Browse the repository at this point in the history
Fix .egg-info metadata support for zipimport
  • Loading branch information
jaraco committed Jan 16, 2021
2 parents aef3393 + b31105b commit 886dd34
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 1 deletion.
2 changes: 2 additions & 0 deletions changelog.d/2489.change.rst
@@ -0,0 +1,2 @@
``pkg_resources`` behavior for zipimport now matches the regular behavior, and finds
``.egg-info`` (previoulsy would only find ``.dist-info``) -- by :user:`thatch`
3 changes: 2 additions & 1 deletion pkg_resources/__init__.py
Expand Up @@ -1981,12 +1981,13 @@ def find_eggs_in_zip(importer, path_item, only=False):
# don't yield nested distros
return
for subitem in metadata.resource_listdir(''):
lower = subitem.lower()
if _is_egg_path(subitem):
subpath = os.path.join(path_item, subitem)
dists = find_eggs_in_zip(zipimport.zipimporter(subpath), subpath)
for dist in dists:
yield dist
elif subitem.lower().endswith('.dist-info'):
elif subitem.lower().endswith(('.dist-info', '.egg-info')):
subpath = os.path.join(path_item, subitem)
submeta = EggMetadata(zipimport.zipimporter(subpath))
submeta.egg_info = subpath
Expand Down
Binary file not shown.
9 changes: 9 additions & 0 deletions pkg_resources/tests/test_find_distributions.py
Expand Up @@ -32,3 +32,12 @@ def test_zipped_egg(self, target_dir):
assert [dist.project_name for dist in dists] == ['my-test-package']
dists = pkg_resources.find_distributions(str(target_dir), only=True)
assert not list(dists)

def test_zipped_sdist_one_level_removed(self, target_dir):
(TESTS_DATA_DIR / 'my-test-package-zip').copy(target_dir)
dists = pkg_resources.find_distributions(
str(target_dir / "my-test-package.zip"))
assert [dist.project_name for dist in dists] == ['my-test-package']
dists = pkg_resources.find_distributions(
str(target_dir / "my-test-package.zip"), only=True)
assert not list(dists)

0 comments on commit 886dd34

Please sign in to comment.