107 lines
3.0 KiB
Python
107 lines
3.0 KiB
Python
"""
|
|
Exceptions raised by geopy.
|
|
"""
|
|
|
|
|
|
class GeopyError(Exception):
|
|
"""
|
|
Geopy-specific exceptions are all inherited from GeopyError.
|
|
"""
|
|
|
|
|
|
class ConfigurationError(GeopyError, ValueError):
|
|
"""
|
|
When instantiating a geocoder, the arguments given were invalid. See
|
|
the documentation of each geocoder's ``__init__`` for more details.
|
|
"""
|
|
|
|
|
|
class GeocoderServiceError(GeopyError):
|
|
"""
|
|
There was an exception caused when calling the remote geocoding service,
|
|
and no more specific exception could be raised by geopy. When calling
|
|
geocoders' ``geocode`` or `reverse` methods, this is the most generic
|
|
exception that can be raised, and any non-geopy exception will be caught
|
|
and turned into this. The exception's message will be that of the
|
|
original exception.
|
|
"""
|
|
|
|
|
|
class GeocoderQueryError(GeocoderServiceError, ValueError):
|
|
"""
|
|
Either geopy detected input that would cause a request to fail,
|
|
or a request was made and the remote geocoding service responded
|
|
that the request was bad.
|
|
"""
|
|
|
|
|
|
class GeocoderQuotaExceeded(GeocoderServiceError):
|
|
"""
|
|
The remote geocoding service refused to fulfill the request
|
|
because the client has used its quota.
|
|
"""
|
|
|
|
|
|
class GeocoderRateLimited(GeocoderQuotaExceeded, IOError):
|
|
"""
|
|
The remote geocoding service has rate-limited the request.
|
|
Retrying later might help.
|
|
|
|
Exception of this type has a ``retry_after`` attribute,
|
|
which contains amount of time (in seconds) the service
|
|
has asked to wait. Might be ``None`` if there were no such
|
|
data in response.
|
|
|
|
.. versionadded:: 2.2
|
|
"""
|
|
|
|
def __init__(self, message, *, retry_after=None):
|
|
super().__init__(message)
|
|
self.retry_after = retry_after
|
|
|
|
|
|
class GeocoderAuthenticationFailure(GeocoderServiceError):
|
|
"""
|
|
The remote geocoding service rejected the API key or account
|
|
credentials this geocoder was instantiated with.
|
|
"""
|
|
|
|
|
|
class GeocoderInsufficientPrivileges(GeocoderServiceError):
|
|
"""
|
|
The remote geocoding service refused to fulfill a request using the
|
|
account credentials given.
|
|
"""
|
|
|
|
|
|
class GeocoderTimedOut(GeocoderServiceError, TimeoutError):
|
|
"""
|
|
The call to the geocoding service was aborted because no response
|
|
has been received within the ``timeout`` argument of either
|
|
the geocoding class or, if specified, the method call.
|
|
Some services are just consistently slow, and a higher timeout
|
|
may be needed to use them.
|
|
"""
|
|
|
|
|
|
class GeocoderUnavailable(GeocoderServiceError, IOError):
|
|
"""
|
|
Either it was not possible to establish a connection to the remote
|
|
geocoding service, or the service responded with a code indicating
|
|
it was unavailable.
|
|
"""
|
|
|
|
|
|
class GeocoderParseError(GeocoderServiceError):
|
|
"""
|
|
Geopy could not parse the service's response. This is probably due
|
|
to a bug in geopy.
|
|
"""
|
|
|
|
|
|
class GeocoderNotFound(GeopyError, ValueError):
|
|
"""
|
|
Caller requested the geocoder matching a string, e.g.,
|
|
``"google"`` > ``GoogleV3``, but no geocoder could be found.
|
|
"""
|