Source code for j_chess_lib.client.Exceptions

from abc import ABC
from typing import Tuple

from ..communication import JchessMessage, ErrorType, JchessMessageType


[docs]class ClientError(Exception, ABC): pass
[docs]class UnhandledMessageError(ClientError): def __init__(self, message: JchessMessage): super(UnhandledMessageError, self).__init__(f"Message of hype {message.message_type} was unhandled") self._message = message
[docs]class LoginFailedError(ClientError): def __init__(self): super(LoginFailedError, self).__init__("Login Failed")
[docs]class WrongMessageType(ClientError): def __init__(self, message: JchessMessage, expected_type: Tuple[JchessMessageType, ...]): super(WrongMessageType, self).__init__( f"Expected message one of type {', '.join(str(x) for x in expected_type)} but got {message.message_type}" ) self._message = message
[docs]class InterruptClient(Exception): def __init__(self, error: ErrorType): super(InterruptClient, self).__init__(f"Interruption called from error {error}") self._error = error @property def error(self) -> ErrorType: return self._error