| """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] |