|
|
|
@ -2897,9 +2897,24 @@ except TypeError:
|
|
|
|
|
if isinstance(spec, compat_str):
|
|
|
|
|
spec = spec.encode('ascii')
|
|
|
|
|
return struct.unpack(spec, *args)
|
|
|
|
|
|
|
|
|
|
class compat_Struct(struct.Struct):
|
|
|
|
|
def __init__(self, fmt):
|
|
|
|
|
if isinstance(fmt, compat_str):
|
|
|
|
|
fmt = fmt.encode('ascii')
|
|
|
|
|
super(compat_Struct, self).__init__(fmt)
|
|
|
|
|
else:
|
|
|
|
|
compat_struct_pack = struct.pack
|
|
|
|
|
compat_struct_unpack = struct.unpack
|
|
|
|
|
if platform.python_implementation() == 'IronPython' and sys.version_info < (2, 7, 8):
|
|
|
|
|
class compat_Struct(struct.Struct):
|
|
|
|
|
def unpack(self, string):
|
|
|
|
|
if not isinstance(string, buffer):
|
|
|
|
|
string = buffer(string)
|
|
|
|
|
return super(compat_Struct, self).unpack(string)
|
|
|
|
|
else:
|
|
|
|
|
compat_Struct = struct.Struct
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
from future_builtins import zip as compat_zip
|
|
|
|
@ -2941,6 +2956,7 @@ __all__ = [
|
|
|
|
|
'compat_HTMLParseError',
|
|
|
|
|
'compat_HTMLParser',
|
|
|
|
|
'compat_HTTPError',
|
|
|
|
|
'compat_Struct',
|
|
|
|
|
'compat_b64decode',
|
|
|
|
|
'compat_basestring',
|
|
|
|
|
'compat_chr',
|
|
|
|
|