"""Python 3 compatibility shims """ import sys if sys.version_info[0] < 3: PY3 = False def b(s): return s def u(s): return unicode(s, 'unicode_escape') import cStringIO as StringIO StringIO = BytesIO = StringIO.StringIO text_type = unicode binary_type = str string_types = (basestring,) integer_types = (int, long) unichr = unichr reload_module = reload def fromhex(s): return s.decode('hex') else: PY3 = True if sys.version_info[:2] >= (3, 4): from importlib import reload as reload_module else: from imp import reload as reload_module import codecs def b(s): return codecs.latin_1_encode(s)[0] def u(s): return s import io StringIO = io.StringIO BytesIO = io.BytesIO text_type = str binary_type = bytes string_types = (str,) integer_types = (int,) def unichr(s): return u(chr(s)) def fromhex(s): return bytes.fromhex(s) long_type = integer_types[-1]