Source code for notifiers.exceptions

[docs]class NotifierException(Exception): """Base notifier exception. Catch this to catch all of :mod:`notifiers` errors""" def __init__(self, *args, **kwargs): """ Looks for ``provider``, ``message`` and ``data`` in kwargs :param args: Exception arguments :param kwargs: Exception kwargs """ self.provider = kwargs.get("provider") self.message = kwargs.get("message") self.data = kwargs.get("data") self.response = kwargs.get("response") super().__init__(self.message) def __repr__(self): return f"<NotificationError: {self.message}>"
[docs]class BadArguments(NotifierException): """ Raised on schema data validation issues :param validation_error: The validation error message :param args: Exception arguments :param kwargs: Exception kwargs """ def __init__(self, validation_error: str, *args, **kwargs): kwargs["message"] = f"Error with sent data: {validation_error}" super().__init__(*args, **kwargs) def __repr__(self): return f"<BadArguments: {self.message}>"
[docs]class SchemaError(NotifierException): """ Raised on schema issues, relevant probably when creating or changing a provider schema :param schema_error: The schema error that was raised :param args: Exception arguments :param kwargs: Exception kwargs """ def __init__(self, schema_error: str, *args, **kwargs): kwargs["message"] = f"Schema error: {schema_error}" super().__init__(*args, **kwargs) def __repr__(self): return f"<SchemaError: {self.message}>"
[docs]class NotificationError(NotifierException): """ A notification error. Raised after an issue with the sent notification. Looks for ``errors`` key word in kwargs. :param args: Exception arguments :param kwargs: Exception kwargs """ def __init__(self, *args, **kwargs): self.errors = kwargs.pop("errors", None) kwargs["message"] = f'Notification errors: {",".join(self.errors)}' super().__init__(*args, **kwargs) def __repr__(self): return f"<NotificationError: {self.message}>"
class ResourceError(NotifierException): """ A notifier resource request error, occurs when an error happened in a :meth:`notifiers.core.ProviderResource._get_resource` call """ def __init__(self, *args, **kwargs): self.errors = kwargs.pop("errors", None) self.resource = kwargs.pop("resource", None) kwargs["message"] = f'Notifier resource errors: {",".join(self.errors)}' super().__init__(*args, **kwargs) def __repr__(self): return f"<ResourceError: {self.message}>"
[docs]class NoSuchNotifierError(NotifierException): """ An unknown notifier was requests, one that was not registered """ def __init__(self, name: str, *args, **kwargs): self.name = name kwargs["message"] = f"No such notifier with name {name}" super().__init__(*args, **kwargs) def __repr__(self): return f"<NoSuchNotifierError: {self.name}>"