[compat] Add compat shlex.split
authorSergey M․ <dstftw@gmail.com>
Sat, 5 Sep 2015 15:40:44 +0000 (21:40 +0600)
committerSergey M․ <dstftw@gmail.com>
Sat, 5 Sep 2015 15:40:44 +0000 (21:40 +0600)
youtube_dl/compat.py

index ace5bd716aac0161b356625260f1138687568314..9b77316f9e3268eab2816f965b03858d98f69b6a 100644 (file)
@@ -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',