[PATCH 4 of 4] py3: add a bytes version of urllib.parse.urlencode() to pycompat.py
Pulkit Goyal
7895pulkit at gmail.com
Fri Apr 7 06:59:40 EDT 2017
# HG changeset patch
# User Pulkit Goyal <7895pulkit at gmail.com>
# Date 1491561044 -19800
# Fri Apr 07 16:00:44 2017 +0530
# Node ID c3e934121b61d54184e914bda587281b4184eabf
# Parent beedb62e62a78a2f45ef8bd0b72c51f14619ee7f
py3: add a bytes version of urllib.parse.urlencode() to pycompat.py
urllib.parse.urlencode() returns unicodes on Python 3. This commit adds a
method which will take its output and encode it to bytes so that we can use
bytes consistently.
diff -r beedb62e62a7 -r c3e934121b61 mercurial/pycompat.py
--- a/mercurial/pycompat.py Fri Apr 07 15:58:04 2017 +0530
+++ b/mercurial/pycompat.py Fri Apr 07 16:00:44 2017 +0530
@@ -399,4 +399,12 @@
s = urllib.parse.quote_from_bytes(s, safe=safe)
return s.encode('ascii', 'strict')
+ # urllib.parse.urlencode() returns str. We use this function to make
+ # sure we return bytes.
+ def urlencode(query, doseq=False, safe='', encoding=None, errors=None):
+ s = urllib.parse.urlencode(query, doseq=doseq, safe=safe,
+ encoding=encoding, errors=errors)
+ return s.encode('ascii')
+
urlreq.quote = quote
+ urlreq.urlencode = urlencode
More information about the Mercurial-devel
mailing list