Commit 230feba5 authored by Jeremy Hylton's avatar Jeremy Hylton

urlencode:

Remove dead code branch created by automated conversion from 2.x.
Clean up a few comments.
parent f819886a
...@@ -521,18 +521,17 @@ def urlencode(query, doseq=0): ...@@ -521,18 +521,17 @@ def urlencode(query, doseq=0):
""" """
if hasattr(query, "items"): if hasattr(query, "items"):
# mapping objects
query = query.items() query = query.items()
else: else:
# it's a bother at times that strings and string-like objects are # It's a bother at times that strings and string-like objects are
# sequences... # sequences.
try: try:
# non-sequence items should not work with len() # non-sequence items should not work with len()
# non-empty strings will fail this # non-empty strings will fail this
if len(query) and not isinstance(query[0], tuple): if len(query) and not isinstance(query[0], tuple):
raise TypeError raise TypeError
# zero-length sequences of all types will get here and succeed, # Zero-length sequences of all types will get here and succeed,
# but that's a minor nit - since the original implementation # but that's a minor nit. Since the original implementation
# allowed empty dicts that type of behavior probably should be # allowed empty dicts that type of behavior probably should be
# preserved for consistency # preserved for consistency
except TypeError: except TypeError:
...@@ -542,7 +541,6 @@ def urlencode(query, doseq=0): ...@@ -542,7 +541,6 @@ def urlencode(query, doseq=0):
l = [] l = []
if not doseq: if not doseq:
# preserve old behavior
for k, v in query: for k, v in query:
k = quote_plus(str(k)) k = quote_plus(str(k))
v = quote_plus(str(v)) v = quote_plus(str(v))
...@@ -553,15 +551,9 @@ def urlencode(query, doseq=0): ...@@ -553,15 +551,9 @@ def urlencode(query, doseq=0):
if isinstance(v, str): if isinstance(v, str):
v = quote_plus(v) v = quote_plus(v)
l.append(k + '=' + v) l.append(k + '=' + v)
elif isinstance(v, str):
# is there a reasonable way to convert to ASCII?
# encode generates a string, but "replace" or "ignore"
# lose information and "strict" can raise UnicodeError
v = quote_plus(v.encode("ASCII", "replace"))
l.append(k + '=' + v)
else: else:
try: try:
# is this a sufficient test for sequence-ness? # Is this a sufficient test for sequence-ness?
x = len(v) x = len(v)
except TypeError: except TypeError:
# not a sequence # not a sequence
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment