Viewing file: _compat.py (1.65 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
import sys import array
PY2 = sys.version_info[0] == 2
_identity = lambda x: x
if not PY2: text_type = str string_types = (str,) integer_types = (int, )
text_to_native = lambda s, enc: s unichr = chr
iterkeys = lambda d: iter(d.keys()) itervalues = lambda d: iter(d.values()) iteritems = lambda d: iter(d.items())
from io import StringIO, BytesIO import pickle
izip = zip imap = map range_type = range
cmp = lambda a, b: (a > b) - (a < b)
array_tobytes = array.array.tobytes from collections import abc
else: text_type = unicode string_types = (str, unicode) integer_types = (int, long)
text_to_native = lambda s, enc: s.encode(enc) unichr = unichr
iterkeys = lambda d: d.iterkeys() itervalues = lambda d: d.itervalues() iteritems = lambda d: d.iteritems()
from cStringIO import StringIO as BytesIO from StringIO import StringIO import cPickle as pickle
from itertools import imap from itertools import izip range_type = xrange
cmp = cmp
array_tobytes = array.array.tostring import collections as abc
number_types = integer_types + (float,)
def force_text(s, encoding='utf-8', errors='strict'): if isinstance(s, text_type): return s if isinstance(s, bytes): return s.decode(encoding, errors) return text_type(s)
# # Since Python 3.3, a fast decimal implementation is already included in the # standard library. Otherwise use cdecimal when available # if sys.version_info[:2] >= (3, 3): import decimal else: try: import cdecimal as decimal except ImportError: import decimal
|