Spaces:
Running
Running
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 | |