Commit 7e173ffb authored by Jason R. Coombs's avatar Jason R. Coombs

Extract distributions_from_metadata

parent f24868e7
...@@ -2050,17 +2050,9 @@ def find_on_path(importer, path_item, only=False): ...@@ -2050,17 +2050,9 @@ def find_on_path(importer, path_item, only=False):
lower = entry.lower() lower = entry.lower()
fullpath = os.path.join(path_item, entry) fullpath = os.path.join(path_item, entry)
if lower.endswith('.egg-info') or lower.endswith('.dist-info'): if lower.endswith('.egg-info') or lower.endswith('.dist-info'):
if os.path.isdir(fullpath): dists = distributions_from_metadata(fullpath)
# egg-info directory, allow getting metadata for dist in dists:
if len(os.listdir(fullpath)) == 0: yield dist
# Empty egg directory, skip.
continue
metadata = PathMetadata(path_item, fullpath)
else:
metadata = FileMetadata(fullpath)
yield Distribution.from_location(
path_item, entry, metadata, precedence=DEVELOP_DIST
)
elif not only and _is_egg_path(entry): elif not only and _is_egg_path(entry):
dists = find_distributions(fullpath) dists = find_distributions(fullpath)
for dist in dists: for dist in dists:
...@@ -2071,6 +2063,21 @@ def find_on_path(importer, path_item, only=False): ...@@ -2071,6 +2063,21 @@ def find_on_path(importer, path_item, only=False):
yield dist yield dist
def distributions_from_metadata(path):
root = os.path.dirname(path)
if os.path.isdir(path):
if len(os.listdir(path)) == 0:
# empty metadata dir; skip
return
metadata = PathMetadata(root, path)
else:
metadata = FileMetadata(path)
entry = os.path.basename(path)
yield Distribution.from_location(
root, entry, metadata, precedence=DEVELOP_DIST,
)
def non_empty_lines(path): def non_empty_lines(path):
""" """
Yield non-empty lines from file at path Yield non-empty lines from file at path
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment