view elpa/elpy-1.18.0/elpy/compat.py @ 175:56ea66d76309

elpy: version 1.18
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Wed, 14 Feb 2018 15:14:23 -0500
parents elpa/elpy-1.14.1/elpy/compat.py@c745e2cc79ee
children
line wrap: on
line source

"""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