[docs]classError(Exception):""" Base class for all API errors """def__init__(self,message:Optional[str]=None,response:Optional[Response]=None,payload:Optional[Dict[str,Any]]=None,)->None:self.message=messageself.response=responseself.payload=payloaddef__str__(self)->str:ifself.response:ifnotself.message:ifself.response.status_code>=500:self.message="Service unavailable, please try again later"ifself.response.status_code==400:self.message="Please check your inputs and try again"returnf"Status code {self.response.status_code}. Error message: {self.message}"returnf"Error message: {self.message}"
[docs]classAuthenticationError(Error):""" Raised when an API request fails due to an authentication error """pass
[docs]classAPIError(Error):""" Raised when an API request fails due to an unknown error """pass