"""Python 2/3 compatibility definitions.
|
|
|
|
These are used by the rest of Elpy to keep compatibility definitions
|
|
in one place.
|
|
|
|
"""
|
|
|
|
import sys
|
|
|
|
|
|
if sys.version_info >= (3, 0):
|
|
PYTHON3 = True
|
|
|
|
from io import StringIO
|
|
|
|
def ensure_not_unicode(obj):
|
|
return obj
|
|
else:
|
|
PYTHON3 = False
|
|
|
|
from StringIO import StringIO # noqa
|
|
|
|
def ensure_not_unicode(obj):
|
|
"""Return obj. If it's a unicode string, convert it to str first.
|
|
|
|
Pydoc functions simply don't find anything for unicode
|
|
strings. No idea why.
|
|
|
|
"""
|
|
if isinstance(obj, unicode):
|
|
return obj.encode("utf-8")
|
|
else:
|
|
return obj
|