Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _parse_json(doc, exactly_one=True):
"""
Parse a location name, latitude, and longitude from an JSON response.
"""
status_code = doc.get("statusCode", 200)
if status_code != 200:
err = doc.get("errorDetails", "")
if status_code == 401:
raise GeocoderAuthenticationFailure(err)
elif status_code == 403:
raise GeocoderInsufficientPrivileges(err)
elif status_code == 429:
raise GeocoderQuotaExceeded(err)
elif status_code == 503:
raise GeocoderUnavailable(err)
else:
raise GeocoderServiceError(err)
resources = doc['resourceSets'][0]['resources']
if resources is None or not len(resources):
return None
def parse_resource(resource):
"""
Parse each return object.
'Authentication failure.'
)
elif status == 4:
raise GeocoderQuotaExceeded(
'Quota validate failure.'
)
elif status == 5:
raise GeocoderQueryError(
'AK Illegal or Not Exist.'
)
elif status == 101:
raise GeocoderAuthenticationFailure(
'No AK'
)
elif status == 102:
raise GeocoderAuthenticationFailure(
'MCODE Error'
)
elif status == 200:
raise GeocoderAuthenticationFailure(
'Invalid AK'
)
elif status == 211:
raise GeocoderAuthenticationFailure(
'Invalid SN'
)
elif 200 <= status < 300:
raise GeocoderAuthenticationFailure(
'Authentication Failure'
)
elif 300 <= status < 500:
raise GeocoderQuotaExceeded(
token_request_arguments = {
'username': self.username,
'password': self.password,
'referer': self.referer,
'expiration': self.token_lifetime,
'f': 'json'
}
url = "?".join((self.auth_api, urlencode(token_request_arguments)))
logger.debug(
"%s._refresh_authentication_token: %s",
self.__class__.__name__, url
)
self.token_expiry = int(time()) + self.token_lifetime
response = self._base_call_geocoder(url)
if 'token' not in response:
raise GeocoderAuthenticationFailure(
'Missing token in auth request.'
'Request URL: %s; response JSON: %s' %
(url, json.dumps(response))
)
self.retry = 0
self.token = response['token']
'No AK'
)
elif status == 102:
raise GeocoderAuthenticationFailure(
'MCODE Error'
)
elif status == 200:
raise GeocoderAuthenticationFailure(
'Invalid AK'
)
elif status == 211:
raise GeocoderAuthenticationFailure(
'Invalid SN'
)
elif 200 <= status < 300:
raise GeocoderAuthenticationFailure(
'Authentication Failure'
)
elif 300 <= status < 500:
raise GeocoderQuotaExceeded(
'Quota Error.'
)
else:
raise GeocoderQueryError('Unknown error. Status: %r' % status)
def _raise_for_error(self, body):
err = body.get('status')
if err:
code = err['value']
message = err['message']
# http://www.geonames.org/export/webservice-exception.html
if message.startswith("user account not enabled to use"):
raise GeocoderInsufficientPrivileges(message)
if code == 10:
raise GeocoderAuthenticationFailure(message)
if code in (18, 19, 20):
raise GeocoderQuotaExceeded(message)
raise GeocoderServiceError(message)
'AK Illegal or Not Exist.'
)
elif status == 101:
raise GeocoderAuthenticationFailure(
'No AK'
)
elif status == 102:
raise GeocoderAuthenticationFailure(
'MCODE Error'
)
elif status == 200:
raise GeocoderAuthenticationFailure(
'Invalid AK'
)
elif status == 211:
raise GeocoderAuthenticationFailure(
'Invalid SN'
)
elif 200 <= status < 300:
raise GeocoderAuthenticationFailure(
'Authentication Failure'
)
elif 300 <= status < 500:
raise GeocoderQuotaExceeded(
'Quota Error.'
)
else:
raise GeocoderQueryError('Unknown error. Status: %r' % status)
"""
Validates error statuses.
"""
if status == 0:
# When there are no results, just return.
return
if status == 1:
raise GeocoderServiceError(
'Internal server error.'
)
elif status == 2:
raise GeocoderQueryError(
'Invalid request.'
)
elif status == 3:
raise GeocoderAuthenticationFailure(
'Authentication failure.'
)
elif status == 4:
raise GeocoderQuotaExceeded(
'Quota validate failure.'
)
elif status == 5:
raise GeocoderQueryError(
'AK Illegal or Not Exist.'
)
elif status == 101:
raise GeocoderAuthenticationFailure(
'No AK'
)
elif status == 102:
raise GeocoderAuthenticationFailure(
'Invalid request.'
)
elif status == 3:
raise GeocoderAuthenticationFailure(
'Authentication failure.'
)
elif status == 4:
raise GeocoderQuotaExceeded(
'Quota validate failure.'
)
elif status == 5:
raise GeocoderQueryError(
'AK Illegal or Not Exist.'
)
elif status == 101:
raise GeocoderAuthenticationFailure(
'No AK'
)
elif status == 102:
raise GeocoderAuthenticationFailure(
'MCODE Error'
)
elif status == 200:
raise GeocoderAuthenticationFailure(
'Invalid AK'
)
elif status == 211:
raise GeocoderAuthenticationFailure(
'Invalid SN'
)
elif 200 <= status < 300:
raise GeocoderAuthenticationFailure(