|
|
@ -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', |
|
|
|
] |