Patchwork [2,of,8,py3] util: use urlreq.unquote

mail settings
Submitter Gregory Szorc
Date March 22, 2017, 5:56 a.m.
Message ID <2a95cd875bfaaec90197.1490162199@ubuntu-vm-main>
Download mbox | patch
Permalink /patch/19551/
State Accepted
Headers show


Gregory Szorc - March 22, 2017, 5:56 a.m.
# HG changeset patch
# User Gregory Szorc <>
# Date 1490160191 25200
#      Tue Mar 21 22:23:11 2017 -0700
# Node ID 2a95cd875bfaaec90197a28d33e112ee675066e3
# Parent  285f48d5644ea070f717473af077e6728df6ea82
util: use urlreq.unquote

pycompat.urlreq.unquote and pycompat.urlunquote effectively alias the
same thing. pycompat.urlunquote is only used once in the code base.
So let's switch to urlreq.unquote.

"Effectively" in the above paragraph is because pycompat.urlreq.unquote
aliases urllib.unquote and pycompat.urlunquote aliases urlparse.unquote
on Python 2. You might think one of urllib.unquote and urlparse.unquote
is an alias to the other, but you would be incorrect. In fact, these
functions are copies of each other. There is even a comment in the
CPython source code saying to keep them in sync. You can't make this


diff --git a/mercurial/ b/mercurial/
--- a/mercurial/
+++ b/mercurial/
@@ -2637,7 +2637,7 @@  class url(object):
                   'path', 'fragment'):
             v = getattr(self, a)
             if v is not None:
-                setattr(self, a, pycompat.urlunquote(v))
+                setattr(self, a, urlreq.unquote(v))
     def __repr__(self):
         attrs = []