# Path: auxlib/_vendor/five.py
# class WhateverIO(StringIO):
# 
#     def __init__(self, v=None, *a, **kw):
#         _SIO_init(self, v.decode() if isinstance(v, bytes) else v, *a, **kw)
# 
#     def write(self, data):
#         _SIO_write(self, data.decode() if isinstance(data, bytes) else data)
# 
# def with_metaclass(Type, skip_attrs=set(('__dict__', '__weakref__'))):
#     """Class decorator to set metaclass.
# 
#     Works with both Python 2 and Python 3 and it does not add
#     an extra class in the lookup order like ``six.with_metaclass`` does
#     (that is -- it copies the original class instead of using inheritance).
# 
#     """
# 
#     def _clone_with_metaclass(Class):
#         attrs = dict((key, value) for key, value in items(vars(Class))
#                      if key not in skip_attrs)
#         return Type(Class.__name__, Class.__bases__, attrs)
# 
#     return _clone_with_metaclass


import collections
from itertools import chain
from ._vendor.five import WhateverIO as StringIO, with_metaclass
from ._vendor.six import (PY2, PY3, integer_types, iteritems, iterkeys, itervalues, string_types,
                          text_type, wraps)
    from collections import OrderedDict as odict  # NOQA
    from ordereddict import OrderedDict as odict  # NOQA
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function


StringIO, with_metaclass = StringIO, with_metaclass
PY2, PY3, integer_types, iteritems, iterkeys, itervalues, string_types = PY2, PY3, integer_types, iteritems, iterkeys, itervalues, string_types  # NOQA
text_type, wraps = text_type, wraps

try:
except ImportError:


NoneType = type(None)

# Path: auxlib/_vendor/five.py
# class WhateverIO(StringIO):
# 
#     def __init__(self, v=None, *a, **kw):
#         _SIO_init(self, v.decode() if isinstance(v, bytes) else v, *a, **kw)
# 
#     def write(self, data):
#         _SIO_write(self, data.decode() if isinstance(data, bytes) else data)
# 
# def with_metaclass(Type, skip_attrs=set(('__dict__', '__weakref__'))):
#     """Class decorator to set metaclass.
# 
#     Works with both Python 2 and Python 3 and it does not add
#     an extra class in the lookup order like ``six.with_metaclass`` does
#     (that is -- it copies the original class instead of using inheritance).
# 
#     """
# 
#     def _clone_with_metaclass(Class):
#         attrs = dict((key, value) for key, value in items(vars(Class))
#                      if key not in skip_attrs)
#         return Type(Class.__name__, Class.__bases__, attrs)
# 
#     return _clone_with_metaclass


# Path: auxlib/compat.py
import collections
from itertools import chain
from ._vendor.five import WhateverIO as StringIO, with_metaclass
from ._vendor.six import (PY2, PY3, integer_types, iteritems, iterkeys, itervalues, string_types,
                          text_type, wraps)
    from collections import OrderedDict as odict  # NOQA
    from ordereddict import OrderedDict as odict  # NOQA

# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function


StringIO, with_metaclass = StringIO, with_metaclass
PY2, PY3, integer_types, iteritems, iterkeys, itervalues, string_types = PY2, PY3, integer_types, iteritems, iterkeys, itervalues, string_types  # NOQA
text_type, wraps = text_type, wraps

try:
except ImportError:


NoneType = type(None)

primitive_types = tuple(chain(string_types, integer_types, (float, complex, bool, NoneType)))