Commit 20d302f2 authored by Julien Muchembled's avatar Julien Muchembled

download: stop using deprecated urlretrieve

parent c9e9b267
Pipeline #19077 passed with stage
in 0 seconds
......@@ -20,7 +20,7 @@ except ImportError:
try:
# Python 3
from urllib.request import urlretrieve
from urllib.request import build_opener, Request
from urllib.parse import urlparse
except ImportError:
# Python 2
......@@ -28,8 +28,9 @@ except ImportError:
from urlparse import urlparse
from urlparse import urlunparse
import urllib2
from urllib2 import build_opener
def urlretrieve(url, tmp_path):
def Request(url):
"""Work around Python issue 24599 includig basic auth support
"""
scheme, netloc, path, params, query, frag = urlparse(url)
......@@ -42,10 +43,7 @@ except ImportError:
req.add_header("Authorization", basic)
else:
req = urllib2.Request(url)
url_obj = urllib2.urlopen(req)
with open(tmp_path, 'wb') as fp:
fp.write(url_obj.read())
return tmp_path, url_obj.info()
return req
from zc.buildout.easy_install import realpath
......@@ -57,6 +55,16 @@ import shutil
import tempfile
import zc.buildout
_opener = None
def urlretrieve(url, tmp_path):
global _opener
if _opener is None:
_opener = build_opener()
url_obj = _opener.open(Request(url))
with open(tmp_path, 'wb') as fp:
shutil.copyfileobj(url_obj, fp)
return tmp_path, url_obj.info()
class ChecksumError(zc.buildout.UserError):
pass
......
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