Commit 2dd7ed9c authored by PJ Eby's avatar PJ Eby

EasyInstall no longer aborts the installation process if a URL it wants to

retrieve can't be downloaded, unless the URL is an actual package download.
Instead, it issues a warning and tries to keep going.
(backport from trunk)

--HG--
branch : setuptools-0.6
extra : convert_revision : svn%3A6015fed2-1504-0410-9fe1-9d1591cc4771/sandbox/branches/setuptools-0.6%4053542
parent ba006a1c
...@@ -1194,6 +1194,11 @@ displayed MD5 info (broken onto two lines for readability):: ...@@ -1194,6 +1194,11 @@ displayed MD5 info (broken onto two lines for readability)::
Release Notes/Change History Release Notes/Change History
============================ ============================
0.6c6
* EasyInstall no longer aborts the installation process if a URL it wants to
retrieve can't be downloaded, unless the URL is an actual package download.
Instead, it issues a warning and tries to keep going.
0.6c5 0.6c5
* Fixed ``.dll`` files on Cygwin not having executable permisions when an egg * Fixed ``.dll`` files on Cygwin not having executable permisions when an egg
is installed unzipped. is installed unzipped.
......
...@@ -166,7 +166,6 @@ class PackageIndex(Environment): ...@@ -166,7 +166,6 @@ class PackageIndex(Environment):
"""Evaluate a URL as a possible download, and maybe retrieve it""" """Evaluate a URL as a possible download, and maybe retrieve it"""
if url in self.scanned_urls and not retrieve: if url in self.scanned_urls and not retrieve:
return return
self.scanned_urls[url] = True self.scanned_urls[url] = True
if not URL_SCHEME(url): if not URL_SCHEME(url):
self.process_filename(url) self.process_filename(url)
...@@ -187,7 +186,8 @@ class PackageIndex(Environment): ...@@ -187,7 +186,8 @@ class PackageIndex(Environment):
return return
self.info("Reading %s", url) 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 self.fetched_urls[url] = self.fetched_urls[f.url] = True
if 'html' not in f.headers.get('content-type', '').lower(): if 'html' not in f.headers.get('content-type', '').lower():
...@@ -572,7 +572,7 @@ class PackageIndex(Environment): ...@@ -572,7 +572,7 @@ class PackageIndex(Environment):
pass # no-op pass # no-op
def open_url(self, url): def open_url(self, url, warning=None):
if url.startswith('file:'): if url.startswith('file:'):
return local_open(url) return local_open(url)
try: try:
...@@ -580,7 +580,8 @@ class PackageIndex(Environment): ...@@ -580,7 +580,8 @@ class PackageIndex(Environment):
except urllib2.HTTPError, v: except urllib2.HTTPError, v:
return v return v
except urllib2.URLError, 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): def _download_url(self, scheme, url, tmpdir):
# Determine download filename # Determine download filename
...@@ -612,7 +613,6 @@ class PackageIndex(Environment): ...@@ -612,7 +613,6 @@ class PackageIndex(Environment):
self.process_url(url, True) self.process_url(url, True)
def _attempt_download(self, url, filename): def _attempt_download(self, url, filename):
headers = self._download_to(url, filename) headers = self._download_to(url, filename)
if 'html' in headers['content-type'].lower(): if 'html' in headers['content-type'].lower():
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment