Slightly faster (un)quoting.
diff --git a/Lib/urllib.py b/Lib/urllib.py
index 63e4182..f1756e2 100644
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -642,26 +642,26 @@
def unquote(s):
i = 0
n = len(s)
- res = ''
+ res = []
while 0 <= i < n:
j = _quoteprog.search(s, i)
if j < 0:
- res = res + s[i:]
+ res.append(s[i:])
break
- res = res + (s[i:j] + chr(string.atoi(s[j+1:j+3], 16)))
+ res.append(s[i:j] + chr(string.atoi(s[j+1:j+3], 16)))
i = j+3
- return res
+ return string.joinfields(res, '')
always_safe = string.letters + string.digits + '_,.-'
def quote(s, safe = '/'):
safe = always_safe + safe
- res = ''
+ res = []
for c in s:
if c in safe:
- res = res + c
+ res.append(c)
else:
- res = res + '%%%02x' % ord(c)
- return res
+ res.append('%%%02x' % ord(c))
+ return string.joinfields(res, '')
# Proxy handling