# HG changeset patch # User Gregory Szorc <gregory.sz...@gmail.com> # Date 1490160857 25200 # Tue Mar 21 22:34:17 2017 -0700 # Node ID 0082c745f5a97449d8a0f9e3bf00db1ebdacedde # Parent 242fec51a193b396f1783383d830d97babad9208 pycompat: define urlreq.urlparse and urlreq.unparse aliases
Currently, we export urlparse via util.urlparse then call util.urlparse.urlparse() and util.urlparse.urlunparse() in a few places. This is the only url* module exported from pycompat, making it a one-off. So let's transition to urlreq to match everything else. Yes, we double import "urlparse" now on Python 2. This will be cleaned up in a subsequent patch. Also, the Python 3 functions trade in str/unicode not bytes. So we'll likely need to write a custom implementation that speaks bytes. But moving everyone to an abstracted API is a good first step. diff --git a/mercurial/pycompat.py b/mercurial/pycompat.py --- a/mercurial/pycompat.py +++ b/mercurial/pycompat.py @@ -287,6 +287,7 @@ if not ispy3: import SimpleHTTPServer import urllib2 import urllib + import urlparse urlreq._registeraliases(urllib, ( "addclosehook", "addinfourl", @@ -317,6 +318,10 @@ if not ispy3: "Request", "urlopen", )) + urlreq._registeraliases(urlparse, ( + "urlparse", + "urlunparse", + )) urlerr._registeraliases(urllib2, ( "HTTPError", "URLError", @@ -339,6 +344,8 @@ else: "splitpasswd", "splitport", "splituser", + "urlparse", + "urlunparse", )) urlreq._registeralias(urllib.parse, "unquote_to_bytes", "unquote") import urllib.request _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel