D891: cleanup: use urllibcompat for renamed methods on urllib request objects
durin42 (Augie Fackler)
phabricator at mercurial-scm.org
Sun Oct 1 16:43:50 UTC 2017
durin42 created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D891
AFFECTED FILES
mercurial/byterange.py
mercurial/httpconnection.py
mercurial/keepalive.py
mercurial/url.py
CHANGE DETAILS
diff --git a/mercurial/url.py b/mercurial/url.py
--- a/mercurial/url.py
+++ b/mercurial/url.py
@@ -21,6 +21,7 @@
keepalive,
pycompat,
sslutil,
+ urllibcompat,
util,
)
@@ -119,7 +120,7 @@
self.ui = ui
def proxy_open(self, req, proxy, type_):
- host = req.get_host().split(':')[0]
+ host = urllibcompat.gethost(req).split(':')[0]
for e in self.no_list:
if host == e:
return None
@@ -166,10 +167,10 @@
tunnel_host = 'https://' + tunnel_host
new_tunnel = True
else:
- tunnel_host = req.get_selector()
+ tunnel_host = urllibcompat.getselector(req)
new_tunnel = False
- if new_tunnel or tunnel_host == req.get_full_url(): # has proxy
+ if new_tunnel or tunnel_host == urllibcompat.getfullurl(req): # has proxy
u = util.url(tunnel_host)
if new_tunnel or u.scheme == 'https': # only use CONNECT for HTTPS
h.realhostport = ':'.join([u.host, (u.port or '443')])
@@ -320,9 +321,9 @@
return keepalive.KeepAliveHandler._start_transaction(self, h, req)
def https_open(self, req):
- # req.get_full_url() does not contain credentials and we may
- # need them to match the certificates.
- url = req.get_full_url()
+ # urllibcompat.getfullurl() does not contain credentials
+ # and we may need them to match the certificates.
+ url = urllibcompat.getfullurl(req)
user, password = self.pwmgr.find_stored_password(url)
res = httpconnectionmod.readauthforuri(self.ui, url, user)
if res:
@@ -406,7 +407,8 @@
self, auth_header, host, req, headers)
def retry_http_basic_auth(self, host, req, realm):
- user, pw = self.passwd.find_user_password(realm, req.get_full_url())
+ user, pw = self.passwd.find_user_password(
+ realm, urllibcompat.getfullurl(req))
if pw is not None:
raw = "%s:%s" % (user, pw)
auth = 'Basic %s' % base64.b64encode(raw).strip()
diff --git a/mercurial/keepalive.py b/mercurial/keepalive.py
--- a/mercurial/keepalive.py
+++ b/mercurial/keepalive.py
@@ -93,6 +93,7 @@
from .i18n import _
from . import (
pycompat,
+ urllibcompat,
util,
)
@@ -205,7 +206,7 @@
return self.do_open(HTTPConnection, req)
def do_open(self, http_class, req):
- host = req.get_host()
+ host = urllibcompat.gethost(req)
if not host:
raise urlerr.urlerror('no host given')
@@ -316,24 +317,26 @@
if n in headers:
skipheaders['skip_' + n.replace('-', '_')] = 1
try:
- if req.has_data():
- data = req.get_data()
+ if urllibcompat.hasdata(req):
+ data = urllibcompat.getdata(req)
h.putrequest(
- req.get_method(), req.get_selector(), **skipheaders)
+ req.get_method(), urllibcompat.getselector(req),
+ **skipheaders)
if 'content-type' not in headers:
h.putheader('Content-type',
'application/x-www-form-urlencoded')
if 'content-length' not in headers:
h.putheader('Content-length', '%d' % len(data))
else:
h.putrequest(
- req.get_method(), req.get_selector(), **skipheaders)
+ req.get_method(), urllibcompat.getselector(req),
+ **skipheaders)
except socket.error as err:
raise urlerr.urlerror(err)
for k, v in headers.items():
h.putheader(k, v)
h.endheaders()
- if req.has_data():
+ if urllibcompat.hasdata(req):
h.send(data)
class HTTPHandler(KeepAliveHandler, urlreq.httphandler):
diff --git a/mercurial/httpconnection.py b/mercurial/httpconnection.py
--- a/mercurial/httpconnection.py
+++ b/mercurial/httpconnection.py
@@ -18,6 +18,7 @@
from . import (
httpclient,
sslutil,
+ urllibcompat,
util,
)
@@ -174,13 +175,14 @@
# object. On Python 2.6.5, it's stored in the _tunnel_host
# attribute which has no accessor.
tunhost = getattr(req, '_tunnel_host', None)
- host = req.get_host()
+ host = urllibcompat.gethost(req)
if tunhost:
proxyhost = host
host = tunhost
elif req.has_proxy():
- proxyhost = req.get_host()
- host = req.get_selector().split('://', 1)[1].split('/', 1)[0]
+ proxyhost = urllibcompat.gethost(req)
+ host = urllibcompat.getselector(
+ req).split('://', 1)[1].split('/', 1)[0]
else:
proxyhost = None
@@ -219,7 +221,7 @@
headers = dict(
(name.title(), val) for name, val in headers.items())
try:
- path = req.get_selector()
+ path = urllibcompat.getselector(req)
if '://' in path:
path = path.split('://', 1)[1].split('/', 1)[1]
if path[0] != '/':
@@ -233,27 +235,27 @@
# object initialized properly.
r.recv = r.read
- resp = urlreq.addinfourl(r, r.headers, req.get_full_url())
+ resp = urlreq.addinfourl(r, r.headers, urllibcompat.getfullurl(req))
resp.code = r.status
resp.msg = r.reason
return resp
# httplib always uses the given host/port as the socket connect
# target, and then allows full URIs in the request path, which it
# then observes and treats as a signal to do proxying instead.
def http_open(self, req):
- if req.get_full_url().startswith('https'):
+ if urllibcompat.getfullurl(req).startswith('https'):
return self.https_open(req)
def makehttpcon(*args, **kwargs):
k2 = dict(kwargs)
k2['use_ssl'] = False
return HTTPConnection(*args, **k2)
return self.do_open(makehttpcon, req, False)
def https_open(self, req):
- # req.get_full_url() does not contain credentials and we may
+ # urllibcompat.getfullurl(req) does not contain credentials and we may
# need them to match the certificates.
- url = req.get_full_url()
+ url = urllibcompat.getfullurl(req)
user, password = self.pwmgr.find_stored_password(url)
res = readauthforuri(self.ui, url, user)
if res:
diff --git a/mercurial/byterange.py b/mercurial/byterange.py
--- a/mercurial/byterange.py
+++ b/mercurial/byterange.py
@@ -28,6 +28,7 @@
import stat
from . import (
+ urllibcompat,
util,
)
@@ -214,8 +215,8 @@
server would.
"""
def open_local_file(self, req):
- host = req.get_host()
- file = req.get_selector()
+ host = urllibcompat.gethost(req)
+ file = urllibcompat.getselector(req)
localfile = urlreq.url2pathname(file)
stats = os.stat(localfile)
size = stats[stat.ST_SIZE]
@@ -252,7 +253,7 @@
class FTPRangeHandler(urlreq.ftphandler):
def ftp_open(self, req):
- host = req.get_host()
+ host = urllibcompat.gethost(req)
if not host:
raise IOError('ftp error', 'no host given')
host, port = splitport(host)
To: durin42, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list