diff options
Diffstat (limited to 'pkg_resources.py')
| -rw-r--r-- | pkg_resources.py | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/pkg_resources.py b/pkg_resources.py index 7aba57ce..7b047c19 100644 --- a/pkg_resources.py +++ b/pkg_resources.py @@ -984,10 +984,8 @@ def StringIO(*args, **kw): def find_nothing(importer,path_item): return () - register_finder(object,find_nothing) - def find_on_path(importer,path_item): """Yield distributions accessible on a sys.path directory""" if not os.path.exists(path_item): @@ -1004,25 +1002,27 @@ def find_on_path(importer,path_item): # scan for .egg and .egg-info in directory for entry in os.listdir(path_item): fullpath = os.path.join(path_item, entry) - if entry.lower().endswith('.egg'): + lower = entry.lower() + if lower.endswith('.egg'): for dist in find_on_path(importer,fullpath): yield dist - elif entry.lower().endswith('.egg-info'): + elif lower.endswith('.egg-info'): if os.path.isdir(fullpath): # development egg metadata = PathMetadata(path_item, fullpath) dist_name = os.path.splitext(entry)[0] yield Distribution(path_item,metadata,name=dist_name) - elif path_item.lower().endswith('.egg'): - # packed egg + elif lower.endswith('.egg-link'): + for line in file(fullpath): + if not line.strip(): continue + for item in find_distributions(line.rstrip()): + yield item + elif path_item.lower().endswith('.egg'): # packed egg metadata = EggMetadata(zipimport.zipimporter(path_item)) yield Distribution.from_filename(path_item, metadata=metadata) register_finder(ImpWrapper,find_on_path) - - - _namespace_handlers = {} _namespace_packages = {} |
