[Python-checkins] r53541 - sandbox/trunk/setuptools/setuptools/package_index.py

phillip.eby python-checkins at python.org
Wed Jan 24 16:39:06 CET 2007


Author: phillip.eby
Date: Wed Jan 24 16:39:00 2007
New Revision: 53541

Modified:
   sandbox/trunk/setuptools/setuptools/package_index.py
Log:
If a page can't be spidered, warn and ignore rather than aborting.


Modified: sandbox/trunk/setuptools/setuptools/package_index.py
==============================================================================
--- sandbox/trunk/setuptools/setuptools/package_index.py	(original)
+++ sandbox/trunk/setuptools/setuptools/package_index.py	Wed Jan 24 16:39:00 2007
@@ -166,7 +166,6 @@
         """Evaluate a URL as a possible download, and maybe retrieve it"""
         if url in self.scanned_urls and not retrieve:
             return
-
         self.scanned_urls[url] = True
         if not URL_SCHEME(url):
             self.process_filename(url)
@@ -187,7 +186,8 @@
             return
 
         self.info("Reading %s", url)
-        f = self.open_url(url)
+        f = self.open_url(url, "Download error: %s -- Some packages may not be found!")
+        if f is None: return
         self.fetched_urls[url] = self.fetched_urls[f.url] = True
 
         if 'html' not in f.headers.get('content-type', '').lower():
@@ -572,7 +572,7 @@
         pass    # no-op
 
 
-    def open_url(self, url):
+    def open_url(self, url, warning=None):
         if url.startswith('file:'):
             return local_open(url)
         try:
@@ -580,7 +580,8 @@
         except urllib2.HTTPError, v:
             return v
         except urllib2.URLError, v:
-            raise DistutilsError("Download error: %s" % v.reason)
+            if warning: self.warn(warning, v.reason)
+            else: raise DistutilsError("Download error: %s" % v.reason)
 
     def _download_url(self, scheme, url, tmpdir):
         # Determine download filename
@@ -612,7 +613,6 @@
         self.process_url(url, True)
 
 
-
     def _attempt_download(self, url, filename):
         headers = self._download_to(url, filename)
         if 'html' in headers['content-type'].lower():


More information about the Python-checkins mailing list