27 lines
745 B
Python
27 lines
745 B
Python
|
|
# flake8: noqa
|
||
|
|
import sys
|
||
|
|
|
||
|
|
PY2 = sys.version_info[0] == 2
|
||
|
|
|
||
|
|
if PY2:
|
||
|
|
text_type = unicode
|
||
|
|
string_types = (str, unicode)
|
||
|
|
integer_types = (int, long)
|
||
|
|
iteritems = lambda d, *args, **kwargs: d.iteritems(*args, **kwargs)
|
||
|
|
|
||
|
|
def to_native(x, charset=sys.getdefaultencoding(), errors='strict'):
|
||
|
|
if x is None or isinstance(x, str):
|
||
|
|
return x
|
||
|
|
return x.encode(charset, errors)
|
||
|
|
|
||
|
|
else:
|
||
|
|
text_type = str
|
||
|
|
string_types = (str, )
|
||
|
|
integer_types = (int, )
|
||
|
|
iteritems = lambda d, *args, **kwargs: iter(d.items(*args, **kwargs))
|
||
|
|
|
||
|
|
def to_native(x, charset=sys.getdefaultencoding(), errors='strict'):
|
||
|
|
if x is None or isinstance(x, str):
|
||
|
|
return x
|
||
|
|
return x.decode(charset, errors)
|