# HG changeset patch # User Gregory Szorc # Date 1489432457 25200 # 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 -r d785fed7c115 -r 1ed169c5e235 mercurial/pycompat.py --- a/mercurial/pycompat.py Mon Mar 13 13:08:11 2017 -0700 +++ b/mercurial/pycompat.py Mon Mar 13 12:14:17 2017 -0700 @@ -267,11 +267,18 @@ )) 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 @@ "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",