Source code for sentinelsat.exceptions

[docs]class SentinelAPIError(Exception): """Invalid response from DataHub. Base class for more specific exceptions. Attributes ---------- msg: str The error message. response: requests.Response The response from the server as a `requests.Response` object. """ def __init__(self, msg="", response=None): self.msg = msg self.response = response def __str__(self): if self.response is None: return self.msg if self.response.reason: reason = " " + self.response.reason else: reason = "" return "HTTP status {}{}: {}".format( self.response.status_code, reason, ("\n" if "\n" in self.msg else "") + self.msg, )
[docs]class LTAError(SentinelAPIError): """Error raised when retrieving a product from the Long Term Archive""" pass
[docs]class LTATriggered(SentinelAPIError): """Download failed due to product being in the Long Term Archive and retrieval from LTA was triggered""" def __init__(self, uuid): self.uuid = uuid super().__init__( f"Product {uuid} is not online. Triggered retrieval from the Long Term Archive." )
[docs]class ServerError(SentinelAPIError): """Error raised when the server responded in an unexpected manner, typically due to undergoing maintenance""" pass
[docs]class UnauthorizedError(SentinelAPIError): """Error raised when attempting to retrieve a product with incorrect credentials""" def __str__(self): return self.msg
[docs]class QuerySyntaxError(SentinelAPIError, SyntaxError): """Error raised when the query string could not be parsed on the server side""" def __init__(self, msg, response): SentinelAPIError.__init__(self, msg, response) SyntaxError.__init__(self, msg) def __str__(self): return self.msg
[docs]class QueryLengthError(SentinelAPIError): """Error raised when the query string length was excessively long""" def __str__(self): return self.msg
[docs]class InvalidKeyError(SentinelAPIError, KeyError): """Error raised when product with given key was not found on the server""" def __init__(self, msg, response): SentinelAPIError.__init__(self, msg, response) KeyError.__init__(self, msg) def __str__(self): return self.msg
[docs]class InvalidChecksumError(Exception): """MD5 checksum of a local file does not match the one from the server.""" pass