""" Python 2 + 3 compatibility functions. This is a very small subset of six. """ import sys PY3 = sys.version_info[0] == 3 if PY3: string_types = str, text_type = str raw_input = input import io StringIO = io.StringIO else: string_types = basestring, text_type = unicode raw_input = raw_input import cStringIO StringIO = cStringIO.StringIO def with_metaclass(meta, base=object): """Create a base class with a metaclass.""" return meta("NewBase", (base,), {}) def _add_doc(func, doc): """Add documentation to a function.""" func.__doc__ = doc if PY3: def iteritems(d, **kw): return iter(d.items(**kw)) else: def iteritems(d, **kw): return iter(d.iteritems(**kw)) _add_doc(iteritems, "Return an iterator over the (key, value) pairs of a dictionary.")