[PATCH 4 of 8 py3] pycompat: define urlreq.urlparse and urlreq.unparse aliases
Gregory Szorc
gregory.szorc at gmail.com
Wed Mar 22 01:56:41 EDT 2017
# HG changeset patch
# User Gregory Szorc <gregory.szorc at 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
More information about the Mercurial-devel
mailing list