# Path: tabun_api/compat.py
# PY2 = sys.version_info.major == 2


import warnings
from .compat import PY2, text

    def __str__(self):
        return self.message.encode("utf-8") if PY2 else self.message

    def __unicode__(self):
        return self.message

    def __repr__(self):
        result = 'TabunError({})'.format(self._reprfields())
        return result.encode('utf-8') if PY2 else result

    def _reprfields(self):
        f = []
        if self.message is not None and self.message != text(self.code):
            f.append('message=' + repr(self.message))
        if self.code != 0:
            f.append('code=' + repr(self.code))
        if self.data is not None:
            f.append('data=' + repr(self.data))
        return ', '.join(f)


class TabunResultError(TabunError):
    """Исключение, содержащее текст ошибки, который вернул сервер.
    Как правило, это текст соответствующих всплывашек на сайте.
    Потомок ``TabunError``.
    """

    def __repr__(self):
        result = 'TabunResultError({})'.format(self._reprfields())

# Path: tabun_api/compat.py
# PY2 = sys.version_info.major == 2


# Path: tabun_api/errors.py
import warnings
from .compat import PY2, text


    def __str__(self):
        return self.message.encode("utf-8") if PY2 else self.message

    def __unicode__(self):
        return self.message

    def __repr__(self):
        result = 'TabunError({})'.format(self._reprfields())
        return result.encode('utf-8') if PY2 else result

    def _reprfields(self):
        f = []
        if self.message is not None and self.message != text(self.code):
            f.append('message=' + repr(self.message))
        if self.code != 0:
            f.append('code=' + repr(self.code))
        if self.data is not None:
            f.append('data=' + repr(self.data))
        return ', '.join(f)


class TabunResultError(TabunError):
    """Исключение, содержащее текст ошибки, который вернул сервер.
    Как правило, это текст соответствующих всплывашек на сайте.
    Потомок ``TabunError``.
    """

    def __repr__(self):
        result = 'TabunResultError({})'.format(self._reprfields())

        return result.encode('utf-8') if PY2 else result