[Jython-checkins] jython (merge default -> default): Merge urllib changes
darjus.loktevic
jython-checkins at python.org
Thu Dec 10 21:10:58 EST 2015
https://hg.python.org/jython/rev/e651cb65609b
changeset: 7829:e651cb65609b
parent: 7828:1df0ae17b03f
parent: 7825:23f2c16b9dc7
user: Darjus Loktevic <darjus at gmail.com>
date: Fri Dec 11 13:10:38 2015 +1100
summary:
Merge urllib changes
files:
Lib/urllib.py | 35 ++++++++++++++---------------------
1 files changed, 14 insertions(+), 21 deletions(-)
diff --git a/Lib/urllib.py b/Lib/urllib.py
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -1224,31 +1224,24 @@
def unquote(s):
"""unquote('abc%20def') -> 'abc def'."""
- if _is_unicode(s):
- if '%' not in s:
- return s
- bits = _asciire.split(s)
- res = [bits[0]]
- append = res.append
- for i in range(1, len(bits), 2):
- append(unquote(str(bits[i])).decode('latin1'))
- append(bits[i + 1])
- return ''.join(res)
-
- bits = s.split('%')
+ res = s.split('%')
# fastpath
- if len(bits) == 1:
+ if len(res) == 1:
return s
- res = [bits[0]]
- append = res.append
- for item in bits[1:]:
+ buf = [res[0]]
+ is_unicode = isinstance(s, unicode)
+ for item in res[1:]:
try:
- append(_hextochr[item[:2]])
- append(item[2:])
+ if is_unicode:
+ buf.append(unichr(int(item[:2], 16)))
+ buf.append(item[2:])
+ else:
+ buf.append(_hextochr[item[:2]])
+ buf.append(item[2:])
except KeyError:
- append('%')
- append(item)
- return ''.join(res)
+ buf.append('%')
+ buf.append(item)
+ return ''.join(buf)
def unquote_plus(s):
"""unquote('%7e/abc+def') -> '~/abc def'"""
--
Repository URL: https://hg.python.org/jython
More information about the Jython-checkins
mailing list