41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
import sys
|
|
|
|
# True if we are running on Python 3.
|
|
PY3 = sys.version_info[0] == 3
|
|
|
|
if PY3: # pragma: no cover
|
|
text_type = str
|
|
else:
|
|
text_type = unicode
|
|
|
|
|
|
def bytes_(s, encoding='latin-1', errors='strict'):
|
|
""" If ``s`` is an instance of ``text_type``, return
|
|
``s.encode(encoding, errors)``, otherwise return ``s``"""
|
|
if isinstance(s, text_type): # pragma: no cover
|
|
return s.encode(encoding, errors)
|
|
return s
|
|
|
|
if PY3: # pragma: no cover
|
|
def native_(s, encoding='latin-1', errors='strict'):
|
|
""" If ``s`` is an instance of ``text_type``, return
|
|
``s``, otherwise return ``str(s, encoding, errors)``"""
|
|
if isinstance(s, text_type):
|
|
return s
|
|
return str(s, encoding, errors)
|
|
else:
|
|
def native_(s, encoding='latin-1', errors='strict'): # noqa
|
|
""" If ``s`` is an instance of ``text_type``, return
|
|
``s.encode(encoding, errors)``, otherwise return ``str(s)``"""
|
|
if isinstance(s, text_type):
|
|
return s.encode(encoding, errors)
|
|
return str(s)
|
|
|
|
native_.__doc__ = """
|
|
Python 3: If ``s`` is an instance of ``text_type``, return ``s``, otherwise
|
|
return ``str(s, encoding, errors)``
|
|
|
|
Python 2: If ``s`` is an instance of ``text_type``, return
|
|
``s.encode(encoding, errors)``, otherwise return ``str(s)``
|
|
"""
|