From 1a44c5da3c8179423740bab0dc6c3d96e56c8263 Mon Sep 17 00:00:00 2001 From: PJ Eby Date: Wed, 16 Nov 2005 18:43:05 +0000 Subject: Update for SourceForge's changed mirror page formats --HG-- branch : setuptools extra : convert_revision : svn%3A6015fed2-1504-0410-9fe1-9d1591cc4771/sandbox/trunk/setuptools%4041458 --- setuptools/package_index.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'setuptools/package_index.py') 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'^', line, re.I): - continue # skip first line - elif re.search(r'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( -- cgit v1.2.1