[compat] Add compat shlex.split

This commit is contained in:
Sergey M․ 2015-09-05 21:40:44 +06:00
parent 4abf617b9c
commit 51f579b635

View File

@ -5,6 +5,7 @@ import getpass
import optparse import optparse
import os import os
import re import re
import shlex
import shutil import shutil
import socket import socket
import subprocess import subprocess
@ -227,6 +228,17 @@ except ImportError: # Python < 3.3
return "'" + s.replace("'", "'\"'\"'") + "'" return "'" + s.replace("'", "'\"'\"'") + "'"
if sys.version_info > (2, 7, 2):
compat_shlex_split = shlex.split
else:
# Working around shlex issue with unicode strings on some python 2
# versions (see http://bugs.python.org/issue1548891)
def compat_shlex_split(s, comments=False, posix=True):
if isinstance(s, unicode):
s = s.encode('utf-8')
return shlex.split(s, comments, posix)
def compat_ord(c): def compat_ord(c):
if type(c) is int: if type(c) is int:
return c return c
@ -459,6 +471,7 @@ __all__ = [
'compat_ord', 'compat_ord',
'compat_parse_qs', 'compat_parse_qs',
'compat_print', 'compat_print',
'compat_shlex_split',
'compat_socket_create_connection', 'compat_socket_create_connection',
'compat_str', 'compat_str',
'compat_subprocess_get_DEVNULL', 'compat_subprocess_get_DEVNULL',