Browse Source

[compat] Add compat_b64decode

Sergey M․ 7 years ago
parent
commit
f206126df0
1 changed files with 12 additions and 0 deletions
  1. 12 0
      youtube_dl/compat.py

+ 12 - 0
youtube_dl/compat.py

@@ -1,6 +1,7 @@
 # coding: utf-8
 # coding: utf-8
 from __future__ import unicode_literals
 from __future__ import unicode_literals
 
 
+import base64
 import binascii
 import binascii
 import collections
 import collections
 import ctypes
 import ctypes
@@ -2908,6 +2909,16 @@ except ImportError:  # not 2.6+ or is 3.x
     except ImportError:
     except ImportError:
         compat_zip = zip
         compat_zip = zip
 
 
+
+if sys.version_info < (3, 3):
+    def compat_b64decode(s, *args, **kwargs):
+        if isinstance(s, compat_str):
+            s = s.encode('ascii')
+        return base64.b64decode(s, *args, **kwargs)
+else:
+    compat_b64decode = base64.b64decode
+
+
 if platform.python_implementation() == 'PyPy' and sys.pypy_version_info < (5, 4, 0):
 if platform.python_implementation() == 'PyPy' and sys.pypy_version_info < (5, 4, 0):
     # PyPy2 prior to version 5.4.0 expects byte strings as Windows function
     # PyPy2 prior to version 5.4.0 expects byte strings as Windows function
     # names, see the original PyPy issue [1] and the youtube-dl one [2].
     # names, see the original PyPy issue [1] and the youtube-dl one [2].
@@ -2930,6 +2941,7 @@ __all__ = [
     'compat_HTMLParseError',
     'compat_HTMLParseError',
     'compat_HTMLParser',
     'compat_HTMLParser',
     'compat_HTTPError',
     'compat_HTTPError',
+    'compat_b64decode',
     'compat_basestring',
     'compat_basestring',
     'compat_chr',
     'compat_chr',
     'compat_cookiejar',
     'compat_cookiejar',