[utils,compat] Move struct_pack and struct_unpack to compat.py
[youtube-dl] / youtube_dl / utils.py
index 6e45737843fbc2594227ac4699a3fce549b81e32..fa16a42ad4940bd28373713d27c0becd422ec29c 100644 (file)
@@ -26,7 +26,6 @@ import platform
 import re
 import socket
 import ssl
-import struct
 import subprocess
 import sys
 import tempfile
@@ -53,6 +52,7 @@ from .compat import (
     compat_urlparse,
     compat_xpath,
     shlex_quote,
+    struct_pack,
 )
 
 
@@ -1761,24 +1761,6 @@ def escape_url(url):
         fragment=escape_rfc3986(url_parsed.fragment)
     ).geturl()
 
-try:
-    struct.pack('!I', 0)
-except TypeError:
-    # In Python 2.6 and 2.7.x < 2.7.7, struct requires a bytes argument
-    # See https://bugs.python.org/issue19099
-    def struct_pack(spec, *args):
-        if isinstance(spec, compat_str):
-            spec = spec.encode('ascii')
-        return struct.pack(spec, *args)
-
-    def struct_unpack(spec, *args):
-        if isinstance(spec, compat_str):
-            spec = spec.encode('ascii')
-        return struct.unpack(spec, *args)
-else:
-    struct_pack = struct.pack
-    struct_unpack = struct.unpack
-
 
 def read_batch_urls(batch_fd):
     def fixup(url):