diff options
author | PJ Eby <distutils-sig@python.org> | 2005-11-16 18:43:05 +0000 |
---|---|---|
committer | PJ Eby <distutils-sig@python.org> | 2005-11-16 18:43:05 +0000 |
commit | 1a44c5da3c8179423740bab0dc6c3d96e56c8263 (patch) | |
tree | 388f65c8805dcf720c43d56893484750b8cbce20 /setuptools/package_index.py | |
parent | 483a7ec258edae5a8f5568bdd5c47421c48c2a22 (diff) | |
download | external_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-x | setuptools/package_index.py | 14 |
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( |