--- a/mercurial/urllibcompat.py Sat Oct 05 10:29:34 2019 -0400
+++ b/mercurial/urllibcompat.py Sun Oct 06 09:45:02 2019 -0400
@@ -10,6 +10,7 @@
_sysstr = pycompat.sysstr
+
class _pycompatstub(object):
def __init__(self):
self._aliases = {}
@@ -18,8 +19,8 @@
"""Add items that will be populated at the first access"""
items = map(_sysstr, items)
self._aliases.update(
- (item.replace(r'_', r'').lower(), (origin, item))
- for item in items)
+ (item.replace(r'_', r'').lower(), (origin, item)) for item in items
+ )
def _registeralias(self, origin, attr, name):
"""Alias ``origin``.``attr`` as ``name``"""
@@ -33,60 +34,69 @@
self.__dict__[name] = obj = getattr(origin, item)
return obj
+
httpserver = _pycompatstub()
urlreq = _pycompatstub()
urlerr = _pycompatstub()
if pycompat.ispy3:
import urllib.parse
- urlreq._registeraliases(urllib.parse, (
- "splitattr",
- "splitpasswd",
- "splitport",
- "splituser",
- "urlparse",
- "urlunparse",
- ))
+
+ urlreq._registeraliases(
+ urllib.parse,
+ (
+ "splitattr",
+ "splitpasswd",
+ "splitport",
+ "splituser",
+ "urlparse",
+ "urlunparse",
+ ),
+ )
urlreq._registeralias(urllib.parse, "parse_qs", "parseqs")
urlreq._registeralias(urllib.parse, "parse_qsl", "parseqsl")
urlreq._registeralias(urllib.parse, "unquote_to_bytes", "unquote")
import urllib.request
- urlreq._registeraliases(urllib.request, (
- "AbstractHTTPHandler",
- "BaseHandler",
- "build_opener",
- "FileHandler",
- "FTPHandler",
- "ftpwrapper",
- "HTTPHandler",
- "HTTPSHandler",
- "install_opener",
- "pathname2url",
- "HTTPBasicAuthHandler",
- "HTTPDigestAuthHandler",
- "HTTPPasswordMgrWithDefaultRealm",
- "ProxyHandler",
- "Request",
- "url2pathname",
- "urlopen",
- ))
+
+ urlreq._registeraliases(
+ urllib.request,
+ (
+ "AbstractHTTPHandler",
+ "BaseHandler",
+ "build_opener",
+ "FileHandler",
+ "FTPHandler",
+ "ftpwrapper",
+ "HTTPHandler",
+ "HTTPSHandler",
+ "install_opener",
+ "pathname2url",
+ "HTTPBasicAuthHandler",
+ "HTTPDigestAuthHandler",
+ "HTTPPasswordMgrWithDefaultRealm",
+ "ProxyHandler",
+ "Request",
+ "url2pathname",
+ "urlopen",
+ ),
+ )
import urllib.response
- urlreq._registeraliases(urllib.response, (
- "addclosehook",
- "addinfourl",
- ))
+
+ urlreq._registeraliases(urllib.response, ("addclosehook", "addinfourl",))
import urllib.error
- urlerr._registeraliases(urllib.error, (
- "HTTPError",
- "URLError",
- ))
+
+ urlerr._registeraliases(urllib.error, ("HTTPError", "URLError",))
import http.server
- httpserver._registeraliases(http.server, (
- "HTTPServer",
- "BaseHTTPRequestHandler",
- "SimpleHTTPRequestHandler",
- "CGIHTTPRequestHandler",
- ))
+
+ httpserver._registeraliases(
+ http.server,
+ (
+ "HTTPServer",
+ "BaseHTTPRequestHandler",
+ "SimpleHTTPRequestHandler",
+ "CGIHTTPRequestHandler",
+ ),
+ )
# urllib.parse.quote() accepts both str and bytes, decodes bytes
# (if necessary), and returns str. This is wonky. We provide a custom
@@ -102,8 +112,8 @@
# urllib.parse.urlencode() returns str. We use this function to make
# sure we return bytes.
def urlencode(query, doseq=False):
- s = urllib.parse.urlencode(query, doseq=doseq)
- return s.encode('ascii')
+ s = urllib.parse.urlencode(query, doseq=doseq)
+ return s.encode('ascii')
urlreq.quote = quote
urlreq.urlencode = urlencode
@@ -122,6 +132,8 @@
def hasdata(req):
return req.data is not None
+
+
else:
import BaseHTTPServer
import CGIHTTPServer
@@ -129,56 +141,52 @@
import urllib2
import urllib
import urlparse
- urlreq._registeraliases(urllib, (
- "addclosehook",
- "addinfourl",
- "ftpwrapper",
- "pathname2url",
- "quote",
- "splitattr",
- "splitpasswd",
- "splitport",
- "splituser",
- "unquote",
- "url2pathname",
- "urlencode",
- ))
- urlreq._registeraliases(urllib2, (
- "AbstractHTTPHandler",
- "BaseHandler",
- "build_opener",
- "FileHandler",
- "FTPHandler",
- "HTTPBasicAuthHandler",
- "HTTPDigestAuthHandler",
- "HTTPHandler",
- "HTTPPasswordMgrWithDefaultRealm",
- "HTTPSHandler",
- "install_opener",
- "ProxyHandler",
- "Request",
- "urlopen",
- ))
- urlreq._registeraliases(urlparse, (
- "urlparse",
- "urlunparse",
- ))
+
+ urlreq._registeraliases(
+ urllib,
+ (
+ "addclosehook",
+ "addinfourl",
+ "ftpwrapper",
+ "pathname2url",
+ "quote",
+ "splitattr",
+ "splitpasswd",
+ "splitport",
+ "splituser",
+ "unquote",
+ "url2pathname",
+ "urlencode",
+ ),
+ )
+ urlreq._registeraliases(
+ urllib2,
+ (
+ "AbstractHTTPHandler",
+ "BaseHandler",
+ "build_opener",
+ "FileHandler",
+ "FTPHandler",
+ "HTTPBasicAuthHandler",
+ "HTTPDigestAuthHandler",
+ "HTTPHandler",
+ "HTTPPasswordMgrWithDefaultRealm",
+ "HTTPSHandler",
+ "install_opener",
+ "ProxyHandler",
+ "Request",
+ "urlopen",
+ ),
+ )
+ urlreq._registeraliases(urlparse, ("urlparse", "urlunparse",))
urlreq._registeralias(urlparse, "parse_qs", "parseqs")
urlreq._registeralias(urlparse, "parse_qsl", "parseqsl")
- urlerr._registeraliases(urllib2, (
- "HTTPError",
- "URLError",
- ))
- httpserver._registeraliases(BaseHTTPServer, (
- "HTTPServer",
- "BaseHTTPRequestHandler",
- ))
- httpserver._registeraliases(SimpleHTTPServer, (
- "SimpleHTTPRequestHandler",
- ))
- httpserver._registeraliases(CGIHTTPServer, (
- "CGIHTTPRequestHandler",
- ))
+ urlerr._registeraliases(urllib2, ("HTTPError", "URLError",))
+ httpserver._registeraliases(
+ BaseHTTPServer, ("HTTPServer", "BaseHTTPRequestHandler",)
+ )
+ httpserver._registeraliases(SimpleHTTPServer, ("SimpleHTTPRequestHandler",))
+ httpserver._registeraliases(CGIHTTPServer, ("CGIHTTPRequestHandler",))
def gethost(req):
return req.get_host()