"""
HELP: I do not know how to design exception classes,
as a result, these interfaces can be changed frequently.
"""
from requests.exceptions import RequestException
[docs]class FuoException(Exception):
pass
[docs]class LibraryException(FuoException):
pass
[docs]class ProviderIOError(LibraryException, RequestException):
"""Read/write data from/to provider failed
currently, all providers use requests to send http request,
and many Requestexception are not catched, so ProviderIOError
inherit RequestException.
"""
def __init__(self, message='', provider=None):
super().__init__(message)
self.message = message
self.provider = provider
def __str__(self):
if self.provider is None:
return self.message
return '[{}] {}'.format(self.provider, self.message)
[docs]class CreateReaderFailed(ProviderIOError):
"""(DEPRECATED) use ProviderIOError instead"""
[docs]class ReaderException(ProviderIOError):
"""(DEPRECATED) use ProviderIOError instead"""
[docs]class ReadFailed(ProviderIOError):
"""(DEPRECATED) use ProviderIOError instead"""
[docs]class ResourceNotFound(LibraryException):
pass
[docs]class ProviderAlreadyRegistered(LibraryException):
pass
[docs]class ProviderNotFound(ResourceNotFound):
pass
[docs]class ModelNotFound(ResourceNotFound):
"""Model is not found
For example, a model identifier is invalid.
.. versionadded:: 3.7.7
"""
[docs]class NotSupported(LibraryException):
"""Provider does not support the operation
"""
[docs]class NoUserLoggedIn(LibraryException):
"""(DEPRECATED) return None when there is no user logged in"""