aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/package_index.py
diff options
context:
space:
mode:
authorPJ Eby <distutils-sig@python.org>2005-11-16 18:43:05 +0000
committerPJ Eby <distutils-sig@python.org>2005-11-16 18:43:05 +0000
commit1a44c5da3c8179423740bab0dc6c3d96e56c8263 (patch)
tree388f65c8805dcf720c43d56893484750b8cbce20 /setuptools/package_index.py
parent483a7ec258edae5a8f5568bdd5c47421c48c2a22 (diff)
downloadexternal_python_setuptools-1a44c5da3c8179423740bab0dc6c3d96e56c8263.tar.gz
external_python_setuptools-1a44c5da3c8179423740bab0dc6c3d96e56c8263.tar.bz2
external_python_setuptools-1a44c5da3c8179423740bab0dc6c3d96e56c8263.zip
Update for SourceForge's changed mirror page formats
--HG-- branch : setuptools extra : convert_revision : svn%3A6015fed2-1504-0410-9fe1-9d1591cc4771/sandbox/trunk/setuptools%4041458
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 1665bd37..199996e8 100755
--- a/setuptools/package_index.py
+++ b/setuptools/package_index.py
@@ -463,16 +463,14 @@ class PackageIndex(Environment):
return self._download_svn(url, filename)
# Check for a SourceForge header
elif sf_url:
- if re.search(r'^<HTML><HEAD>', line, re.I):
- continue # skip first line
- elif re.search(r'<TITLE>Select a Mirror for File:',line):
- # Sourceforge mirror page
- page = file.read()
- file.close()
+ page = ''.join(list(file))
+ if '?use_mirror=' in page:
+ file.close();
os.unlink(filename)
return self._download_sourceforge(url, page, tmpdir)
break # not an index page
file.close()
+ os.unlink(filename)
raise DistutilsError("Unexpected HTML page found at "+url)
def _download_svn(self, url, filename):
@@ -490,12 +488,14 @@ class PackageIndex(Environment):
def warn(self, msg, *args):
log.warn(msg, *args)
+
+
def _download_sourceforge(self, source_url, sf_page, tmpdir):
"""Download package from randomly-selected SourceForge mirror"""
self.debug("Processing SourceForge mirror page")
- mirror_regex = re.compile(r'HREF=(/.*?\?use_mirror=[^>]*)')
+ mirror_regex = re.compile(r'HREF="?(/.*?\?use_mirror=[^">]*)', re.I)
urls = [m.group(1) for m in mirror_regex.finditer(sf_page)]
if not urls:
raise DistutilsError(