aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/compat.py
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2015-09-05 21:40:44 +0600
committerSergey M․ <dstftw@gmail.com>2015-09-05 21:40:44 +0600
commit51f579b6358ab56ff9d03ef72e5bfeb345632b4e (patch)
tree3c4f2abd77407c5ed8f9d9b0860cdac6727e8b03 /youtube_dl/compat.py
parent4abf617b9c662851889de4a3ceb5aa63040dc21e (diff)
[compat] Add compat shlex.split
Diffstat (limited to 'youtube_dl/compat.py')
-rw-r--r--youtube_dl/compat.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/youtube_dl/compat.py b/youtube_dl/compat.py
index ace5bd716..9b77316f9 100644
--- a/youtube_dl/compat.py
+++ b/youtube_dl/compat.py
@@ -5,6 +5,7 @@ import getpass
import optparse
import os
import re
+import shlex
import shutil
import socket
import subprocess
@@ -227,6 +228,17 @@ except ImportError: # Python < 3.3
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):
if type(c) is int:
return c
@@ -459,6 +471,7 @@ __all__ = [
'compat_ord',
'compat_parse_qs',
'compat_print',
+ 'compat_shlex_split',
'compat_socket_create_connection',
'compat_str',
'compat_subprocess_get_DEVNULL',