[utils,compat] Move struct_pack and struct_unpack to compat.py
This commit is contained in:
		@@ -11,6 +11,7 @@ import re
 | 
			
		||||
import shlex
 | 
			
		||||
import shutil
 | 
			
		||||
import socket
 | 
			
		||||
import struct
 | 
			
		||||
import subprocess
 | 
			
		||||
import sys
 | 
			
		||||
import itertools
 | 
			
		||||
@@ -592,6 +593,26 @@ if sys.version_info >= (3, 0):
 | 
			
		||||
else:
 | 
			
		||||
    from tokenize import generate_tokens as compat_tokenize_tokenize
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
__all__ = [
 | 
			
		||||
    'compat_HTMLParser',
 | 
			
		||||
    'compat_HTTPError',
 | 
			
		||||
@@ -634,6 +655,8 @@ __all__ = [
 | 
			
		||||
    'compat_xml_parse_error',
 | 
			
		||||
    'compat_xpath',
 | 
			
		||||
    'shlex_quote',
 | 
			
		||||
    'struct_pack',
 | 
			
		||||
    'struct_unpack',
 | 
			
		||||
    'subprocess_check_output',
 | 
			
		||||
    'workaround_optparse_bug9161',
 | 
			
		||||
]
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user