"""Exceptions raised by TotalConnectClient.""" class TotalConnectError(Exception): pass class AuthenticationError(TotalConnectError): pass class InvalidSessionError(AuthenticationError): pass class BadResultCodeError(TotalConnectError): pass class FeatureNotSupportedError(TotalConnectError): """The user hardware and/or account permissions do not support the requested feature. """ class RetryableTotalConnectError(TotalConnectError): """These errors are likely to resolve themselves if the action is retried. If an error requires some other action (such as reauthenticating an expired session) before being retried, it is not "retryable." """ class PartialResponseError(RetryableTotalConnectError): """Raised if the response is missing a section that it is always supposed to have. Because the TotalConnect servers are flaky, these are rather frequent. """ class UsercodeInvalid(TotalConnectError): """The provided usercode is invalid.""" class UsercodeUnavailable(TotalConnectError): """The TotalConnect usercode unavailable or invalid.""" class ServiceUnavailable(TotalConnectError): """The TotalConnect service is unavailable or unreachable.""" class FailedToBypassZone(TotalConnectError): """Failed to bypass zone because it is non-existent or it cannot be bypassed."""