# Copyright: 2013 Paul Traylor # These sources are released under the terms of the MIT license: see LICENSE """ Python2.5 and Python3.3 compatibility shim Heavily inspirted by the "six" library. https://pypi.python.org/pypi/six """ import sys PY3 = sys.version_info[0] == 3 if PY3: def b(s): if isinstance(s, bytes): return s return s.encode('utf8', 'replace') def u(s): if isinstance(s, bytes): return s.decode('utf8', 'replace') return s from io import BytesIO as StringIO from configparser import RawConfigParser else: def b(s): if isinstance(s, unicode): # noqa return s.encode('utf8', 'replace') return s def u(s): if isinstance(s, unicode): # noqa return s if isinstance(s, int): s = str(s) return unicode(s, "utf8", "replace") # noqa from StringIO import StringIO from ConfigParser import RawConfigParser b.__doc__ = "Ensure we have a byte string" u.__doc__ = "Ensure we have a unicode string"