Mercurial > public > mercurial-scm > hg-stable
diff mercurial/keepalive.py @ 28883:032c4c2f802a
pycompat: switch to util.urlreq/util.urlerr for py3 compat
author | timeless <timeless@mozdev.org> |
---|---|
date | Wed, 06 Apr 2016 23:22:12 +0000 |
parents | b1b22185c764 |
children | 0d83ad967bf8 |
line wrap: on
line diff
--- a/mercurial/keepalive.py Thu Apr 07 00:05:48 2016 +0000 +++ b/mercurial/keepalive.py Wed Apr 06 23:22:12 2016 +0000 @@ -28,10 +28,10 @@ >>> import urllib2 >>> from keepalive import HTTPHandler >>> keepalive_handler = HTTPHandler() ->>> opener = urllib2.build_opener(keepalive_handler) ->>> urllib2.install_opener(opener) +>>> opener = urlreq.buildopener(keepalive_handler) +>>> urlreq.installopener(opener) >>> ->>> fo = urllib2.urlopen('http://www.python.org') +>>> fo = urlreq.urlopen('http://www.python.org') If a connection to a given host is requested, and all of the existing connections are still in use, another connection will be opened. If @@ -114,7 +114,13 @@ import socket import sys import thread -import urllib2 + +from . import ( + util, +) + +urlerr = util.urlerr +urlreq = util.urlreq DEBUG = None @@ -227,7 +233,7 @@ def do_open(self, http_class, req): host = req.get_host() if not host: - raise urllib2.URLError('no host given') + raise urlerr.urlerror('no host given') try: h = self._cm.get_ready_conn(host) @@ -254,7 +260,7 @@ self._start_transaction(h, req) r = h.getresponse() except (socket.error, httplib.HTTPException) as err: - raise urllib2.URLError(err) + raise urlerr.urlerror(err) # if not a persistent connection, don't try to reuse it if r.will_close: @@ -346,14 +352,14 @@ else: h.putrequest('GET', req.get_selector(), **skipheaders) except socket.error as err: - raise urllib2.URLError(err) + raise urlerr.urlerror(err) for k, v in headers.items(): h.putheader(k, v) h.endheaders() if req.has_data(): h.send(data) -class HTTPHandler(KeepAliveHandler, urllib2.HTTPHandler): +class HTTPHandler(KeepAliveHandler, urlreq.httphandler): pass class HTTPResponse(httplib.HTTPResponse): @@ -593,14 +599,14 @@ global HANDLE_ERRORS orig = HANDLE_ERRORS keepalive_handler = HTTPHandler() - opener = urllib2.build_opener(keepalive_handler) - urllib2.install_opener(opener) + opener = urlreq.buildopener(keepalive_handler) + urlreq.installopener(opener) pos = {0: 'off', 1: 'on'} for i in (0, 1): print(" fancy error handling %s (HANDLE_ERRORS = %i)" % (pos[i], i)) HANDLE_ERRORS = i try: - fo = urllib2.urlopen(url) + fo = urlreq.urlopen(url) fo.read() fo.close() try: @@ -623,25 +629,25 @@ format = '%25s: %s' # first fetch the file with the normal http handler - opener = urllib2.build_opener() - urllib2.install_opener(opener) - fo = urllib2.urlopen(url) + opener = urlreq.buildopener() + urlreq.installopener(opener) + fo = urlreq.urlopen(url) foo = fo.read() fo.close() m = md5(foo) print(format % ('normal urllib', m.hexdigest())) # now install the keepalive handler and try again - opener = urllib2.build_opener(HTTPHandler()) - urllib2.install_opener(opener) + opener = urlreq.buildopener(HTTPHandler()) + urlreq.installopener(opener) - fo = urllib2.urlopen(url) + fo = urlreq.urlopen(url) foo = fo.read() fo.close() m = md5(foo) print(format % ('keepalive read', m.hexdigest())) - fo = urllib2.urlopen(url) + fo = urlreq.urlopen(url) foo = '' while True: f = fo.readline() @@ -657,15 +663,15 @@ sys.stdout.write(' first using the normal urllib handlers') # first use normal opener - opener = urllib2.build_opener() - urllib2.install_opener(opener) + opener = urlreq.buildopener() + urlreq.installopener(opener) t1 = fetch(N, url) print(' TIME: %.3f s' % t1) sys.stdout.write(' now using the keepalive handler ') # now install the keepalive handler and try again - opener = urllib2.build_opener(HTTPHandler()) - urllib2.install_opener(opener) + opener = urlreq.buildopener(HTTPHandler()) + urlreq.installopener(opener) t2 = fetch(N, url) print(' TIME: %.3f s' % t2) print(' improvement factor: %.2f' % (t1 / t2)) @@ -677,7 +683,7 @@ for i in range(N): if delay and i > 0: time.sleep(delay) - fo = urllib2.urlopen(url) + fo = urlreq.urlopen(url) foo = fo.read() fo.close() lens.append(len(foo)) @@ -700,7 +706,7 @@ info = warning = error = debug DEBUG = FakeLogger() print(" fetching the file to establish a connection") - fo = urllib2.urlopen(url) + fo = urlreq.urlopen(url) data1 = fo.read() fo.close() @@ -714,7 +720,7 @@ sys.stderr.write('\r') print(" fetching the file a second time") - fo = urllib2.urlopen(url) + fo = urlreq.urlopen(url) data2 = fo.read() fo.close()