Esempio n. 1
0
File: base.py Progetto: GeoRab/geopy
 def _call_geocoder(self, url, timeout=None, raw=False):
     """
     For a generated query URL, get the results.
     """
     try:
         page = self.urlopen(url, timeout=timeout or self.timeout)
     except Exception as error: # pylint: disable=W0703
         message = str(error) if not py3k else \
                     (str(error.args[0] if len(error.args) else str(error)))
         if hasattr(self, '_geocoder_exception_handler'):
             self._geocoder_exception_handler(error, message) # pylint: disable=E1101
         if isinstance(error, HTTPError):
             code = error.getcode()
             error_code_map = {
                 400: GeocoderQueryError,
                 401: GeocoderAuthenticationFailure,
                 402: GeocoderQuotaExceeded,
                 403: GeocoderInsufficientPrivileges,
                 407: GeocoderAuthenticationFailure,
                 412: GeocoderQueryError,
                 413: GeocoderQueryError,
                 414: GeocoderQueryError,
                 502: GeocoderServiceError,
                 503: GeocoderTimedOut,
                 504: GeocoderTimedOut
             }
             try:
                 raise error_code_map[code](message)
             except KeyError:
                 raise GeocoderServiceError(message)
         elif isinstance(error, URLError):
             if "timed out" in message:
                 raise GeocoderTimedOut('Service timed out')
         elif isinstance(error, SocketTimeout):
             raise GeocoderTimedOut('Service timed out')
         elif isinstance(error, SSLError):
             if "timed out in message":
                 raise GeocoderTimedOut('Service timed out')
         if not py3k:
             err = GeocoderServiceError(message)
             err.__traceback__ = error
             raise err
         else:
             raise GeocoderServiceError(message)
     if raw:
         return page
     return json.loads(decode_page(page))
Esempio n. 2
0
 def _call_geocoder(self, url, timeout=None, raw=False):
     """
     For a generated query URL, get the results.
     """
     try:
         page = self.urlopen(url, timeout=timeout or self.timeout)
     except Exception as error: # pylint: disable=W0703
         message = (
             str(error) if not py3k
             else (
                 str(error.args[0])
                 if len(error.args)
                 else str(error)
             )
         )
         if hasattr(self, '_geocoder_exception_handler'):
             self._geocoder_exception_handler(error, message) # pylint: disable=E1101
         if isinstance(error, HTTPError):
             code = error.getcode()
             try:
                 raise ERROR_CODE_MAP[code](message)
             except KeyError:
                 raise GeocoderServiceError(message)
         elif isinstance(error, URLError):
             if "timed out" in message:
                 raise GeocoderTimedOut('Service timed out')
         elif isinstance(error, SocketTimeout):
             raise GeocoderTimedOut('Service timed out')
         elif isinstance(error, SSLError):
             if "timed out in message":
                 raise GeocoderTimedOut('Service timed out')
         if not py3k:
             err = GeocoderServiceError(message)
             err.__traceback__ = error
             raise err
         else:
             raise GeocoderServiceError(message)
     if raw:
         return page
     return json.loads(decode_page(page))