# HG changeset patch # User Gregory Szorc # Date 2017-03-13 19:14:17 # Node ID 1ed169c5e235b66aaa7dba8cbb5e3df5c2ca808f # Parent d785fed7c115d11be9357d3bb00ed36b1dbf74ac pycompat: alias urllib symbols directly urllib.request imports a bunch of symbols from other urllib modules. We should map to the original symbols not the re-exported ones because this is more correct. Also, it will prevent an import of urllib.request if only one of the lower-level symbols/modules is needed. diff --git a/mercurial/pycompat.py b/mercurial/pycompat.py --- a/mercurial/pycompat.py +++ b/mercurial/pycompat.py @@ -267,11 +267,18 @@ if not ispy3: )) else: + import urllib.parse + urlreq._registeraliases(urllib.parse, ( + "quote", + "splitattr", + "splitpasswd", + "splitport", + "splituser", + "unquote", + )) import urllib.request urlreq._registeraliases(urllib.request, ( "AbstractHTTPHandler", - "addclosehook", - "addinfourl", "BaseHandler", "build_opener", "FileHandler", @@ -285,16 +292,15 @@ else: "HTTPDigestAuthHandler", "HTTPPasswordMgrWithDefaultRealm", "ProxyHandler", - "quote", "Request", - "splitattr", - "splitpasswd", - "splitport", - "splituser", - "unquote", "url2pathname", "urlopen", )) + import urllib.response + urlreq._registeraliases(urllib.response, ( + "addclosehook", + "addinfourl", + )) import urllib.error urlerr._registeraliases(urllib.error, ( "HTTPError",