aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/package_index.py
diff options
context:
space:
mode:
authorPJ Eby <distutils-sig@python.org>2006-05-12 22:17:31 +0000
committerPJ Eby <distutils-sig@python.org>2006-05-12 22:17:31 +0000
commit27874986d6539405fc971e9cf70563a096ee5b83 (patch)
tree6f845c7a166159c3541898a937851ba51b2b5605 /setuptools/package_index.py
parentdcd12bd1088713adb87cfc1344ca30b10869ae36 (diff)
downloadexternal_python_setuptools-27874986d6539405fc971e9cf70563a096ee5b83.tar.gz
external_python_setuptools-27874986d6539405fc971e9cf70563a096ee5b83.tar.bz2
external_python_setuptools-27874986d6539405fc971e9cf70563a096ee5b83.zip
Better ambiguity management: accept #egg name/version even if processing
what appears to be a correctly-named distutils file, and ignore .egg files with no '-', since valid Python .egg files always have a version number (but Scheme eggs often don't). --HG-- branch : setuptools-0.6 extra : convert_revision : svn%3A6015fed2-1504-0410-9fe1-9d1591cc4771/sandbox/branches/setuptools-0.6%4045984
Diffstat (limited to 'setuptools/package_index.py')
-rwxr-xr-xsetuptools/package_index.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/setuptools/package_index.py b/setuptools/package_index.py
index e0db7273..2760dc8d 100755
--- a/setuptools/package_index.py
+++ b/setuptools/package_index.py
@@ -48,20 +48,21 @@ def egg_info_for_url(url):
def distros_for_url(url, metadata=None):
"""Yield egg or source distribution objects that might be found at a URL"""
base, fragment = egg_info_for_url(url)
- dists = distros_for_location(url, base, metadata)
- if fragment and not dists:
+ for dist in distros_for_location(url, base, metadata): yield dist
+ if fragment:
match = EGG_FRAGMENT.match(fragment)
if match:
- return interpret_distro_name(
+ for dist in interpret_distro_name(
url, match.group(1), metadata, precedence = CHECKOUT_DIST
- )
- return dists
+ ):
+ yield dist
def distros_for_location(location, basename, metadata=None):
"""Yield egg or source distribution objects based on basename"""
if basename.endswith('.egg.zip'):
basename = basename[:-4] # strip the .zip
- if basename.endswith('.egg'): # only one, unambiguous interpretation
+ if basename.endswith('.egg') and '-' in basename:
+ # only one, unambiguous interpretation
return [Distribution.from_location(location, basename, metadata)]
if basename.endswith('.exe'):
@@ -79,7 +80,6 @@ def distros_for_location(location, basename, metadata=None):
return interpret_distro_name(location, basename, metadata)
return [] # no extension matched
-
def distros_for_filename(filename, metadata=None):
"""Yield possible egg or source distribution objects based on a filename"""
return distros_for_location(