import sys

__all__ = (
    'text_type', 'string_types', 'izip', 'iteritems', 'itervalues',
    'with_metaclass',
)

if sys.version_info[0] >= 3:
    text_type = str
    string_types = (str, )
    izip = zip

    def iteritems(o):
        return o.items()

    def itervalues(o):
        return o.values()

else:
    text_type = unicode
    string_types = (basestring, )
    from itertools import izip

    def iteritems(o):
        return o.iteritems()

    def itervalues(o):
        return o.itervalues()


def with_metaclass(meta, base=object):
    return meta("NewBase", (base,), {})