|
|
@ -114,6 +114,26 @@ except ImportError: |
|
|
|
string += pct_sequence.decode(encoding, errors) |
|
|
|
return string |
|
|
|
|
|
|
|
try: |
|
|
|
compat_str = unicode # Python 2 |
|
|
|
except NameError: |
|
|
|
compat_str = str |
|
|
|
|
|
|
|
try: |
|
|
|
compat_basestr = basestring # Python 2 |
|
|
|
except NameError: |
|
|
|
compat_basestr = str |
|
|
|
|
|
|
|
try: |
|
|
|
compat_chr = unichr # Python 2 |
|
|
|
except NameError: |
|
|
|
compat_chr = chr |
|
|
|
|
|
|
|
try: |
|
|
|
from xml.etree.ElementTree import ParseError as compat_xml_parse_error |
|
|
|
except ImportError: # Python 2.6 |
|
|
|
from xml.parsers.expat import ExpatError as compat_xml_parse_error |
|
|
|
|
|
|
|
|
|
|
|
try: |
|
|
|
from urllib.parse import parse_qs as compat_parse_qs |
|
|
@ -123,7 +143,7 @@ except ImportError: # Python 2 |
|
|
|
|
|
|
|
def _parse_qsl(qs, keep_blank_values=False, strict_parsing=False, |
|
|
|
encoding='utf-8', errors='replace'): |
|
|
|
qs, _coerce_result = qs, unicode |
|
|
|
qs, _coerce_result = qs, compat_str |
|
|
|
pairs = [s2 for s1 in qs.split('&') for s2 in s1.split(';')] |
|
|
|
r = [] |
|
|
|
for name_value in pairs: |
|
|
@ -162,21 +182,6 @@ except ImportError: # Python 2 |
|
|
|
parsed_result[name] = [value] |
|
|
|
return parsed_result |
|
|
|
|
|
|
|
try: |
|
|
|
compat_str = unicode # Python 2 |
|
|
|
except NameError: |
|
|
|
compat_str = str |
|
|
|
|
|
|
|
try: |
|
|
|
compat_chr = unichr # Python 2 |
|
|
|
except NameError: |
|
|
|
compat_chr = chr |
|
|
|
|
|
|
|
try: |
|
|
|
from xml.etree.ElementTree import ParseError as compat_xml_parse_error |
|
|
|
except ImportError: # Python 2.6 |
|
|
|
from xml.parsers.expat import ExpatError as compat_xml_parse_error |
|
|
|
|
|
|
|
try: |
|
|
|
from shlex import quote as shlex_quote |
|
|
|
except ImportError: # Python < 3.3 |
|
|
|