|
@ -80,6 +80,11 @@ try: |
|
|
except ImportError: |
|
|
except ImportError: |
|
|
import BaseHTTPServer as compat_http_server |
|
|
import BaseHTTPServer as compat_http_server |
|
|
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
|
compat_str = unicode # Python 2 |
|
|
|
|
|
except NameError: |
|
|
|
|
|
compat_str = str |
|
|
|
|
|
|
|
|
try: |
|
|
try: |
|
|
from urllib.parse import unquote_to_bytes as compat_urllib_parse_unquote_to_bytes |
|
|
from urllib.parse import unquote_to_bytes as compat_urllib_parse_unquote_to_bytes |
|
|
from urllib.parse import unquote as compat_urllib_parse_unquote |
|
|
from urllib.parse import unquote as compat_urllib_parse_unquote |
|
@ -100,7 +105,7 @@ except ImportError: # Python 2 |
|
|
# Is it a string-like object? |
|
|
# Is it a string-like object? |
|
|
string.split |
|
|
string.split |
|
|
return b'' |
|
|
return b'' |
|
|
if isinstance(string, unicode): |
|
|
|
|
|
|
|
|
if isinstance(string, compat_str): |
|
|
string = string.encode('utf-8') |
|
|
string = string.encode('utf-8') |
|
|
bits = string.split(b'%') |
|
|
bits = string.split(b'%') |
|
|
if len(bits) == 1: |
|
|
if len(bits) == 1: |
|
@ -150,11 +155,6 @@ except ImportError: # Python 2 |
|
|
string = string.replace('+', ' ') |
|
|
string = string.replace('+', ' ') |
|
|
return compat_urllib_parse_unquote(string, encoding, errors) |
|
|
return compat_urllib_parse_unquote(string, encoding, errors) |
|
|
|
|
|
|
|
|
try: |
|
|
|
|
|
compat_str = unicode # Python 2 |
|
|
|
|
|
except NameError: |
|
|
|
|
|
compat_str = str |
|
|
|
|
|
|
|
|
|
|
|
try: |
|
|
try: |
|
|
compat_basestring = basestring # Python 2 |
|
|
compat_basestring = basestring # Python 2 |
|
|
except NameError: |
|
|
except NameError: |
|
@ -234,7 +234,7 @@ else: |
|
|
# Working around shlex issue with unicode strings on some python 2 |
|
|
# Working around shlex issue with unicode strings on some python 2 |
|
|
# versions (see http://bugs.python.org/issue1548891) |
|
|
# versions (see http://bugs.python.org/issue1548891) |
|
|
def compat_shlex_split(s, comments=False, posix=True): |
|
|
def compat_shlex_split(s, comments=False, posix=True): |
|
|
if isinstance(s, unicode): |
|
|
|
|
|
|
|
|
if isinstance(s, compat_str): |
|
|
s = s.encode('utf-8') |
|
|
s = s.encode('utf-8') |
|
|
return shlex.split(s, comments, posix) |
|
|
return shlex.split(s, comments, posix) |
|
|
|
|
|
|
|
|