# HG changeset patch # User Gregory Szorc # Date 1490160011 25200 # Node ID c6df6a23dfe5f9893173d640a32780be5184d84a # Parent 553ad16b274f578b2cfe0c714113973edba1129e pycompat: alias urlreq.unquote to unquote_to_bytes Previously, urlreq.unquote aliased to urllib.parse.unquote, which returned a str/unicode. We like bytes, so switch urlreq.unquote to dispatch to urllib.parse.unquote_to_bytes. This required a minor helper function to register an alias under a different name from which it points. If this turns into a common pattern, we could likely teach _registeralias to accept tuple values defining the mapping. Until then, I didn't feel like adding complexity to _registeralias. diff -r 553ad16b274f -r c6df6a23dfe5 mercurial/pycompat.py --- a/mercurial/pycompat.py Sun Mar 19 01:03:53 2017 -0400 +++ b/mercurial/pycompat.py Tue Mar 21 22:20:11 2017 -0700 @@ -268,6 +268,10 @@ (item.replace(sysstr('_'), sysstr('')).lower(), (origin, item)) for item in items) + def _registeralias(self, origin, attr, name): + """Alias ``origin``.``attr`` as ``name``""" + self._aliases[sysstr(name)] = (origin, sysstr(attr)) + def __getattr__(self, name): try: origin, item = self._aliases[name] @@ -337,8 +341,8 @@ "splitpasswd", "splitport", "splituser", - "unquote", )) + urlreq._registeralias(urllib.parse, "unquote_to_bytes", "unquote") import urllib.request urlreq._registeraliases(urllib.request, ( "AbstractHTTPHandler",