def decode_page(page): """ Return unicode string of geocoder results. Nearly all services use JSON, so assume UTF8 encoding unless the response specifies otherwise. """ if hasattr(page, 'read'): # urllib if py3k: encoding = page.headers.get_param("charset") or "utf-8" else: encoding = page.headers.getparam("charset") or "utf-8" return text_type(page.read(), encoding=encoding) else: # requests? encoding = page.headers.get("charset") or "utf-8" return text_type(page.content, encoding=encoding)
def __init__( self, consumer_key, consumer_secret, timeout=DEFAULT_TIMEOUT, proxies=None, user_agent=None, ): # pylint: disable=R0913 """ :param str consumer_key: Key provided by Yahoo. :param str consumer_secret: Secret corresponding to the key provided by Yahoo. :param int timeout: Time, in seconds, to wait for the geocoding service to respond before raising a :class:`geopy.exc.GeocoderTimedOut` exception. :param dict proxies: If specified, routes this geocoder"s requests through the specified proxy. E.g., {"https": "192.0.2.0"}. For more information, see documentation on :class:`urllib2.ProxyHandler`. .. versionadded:: 0.96 :param str user_agent: Use a custom User-Agent header. .. versionadded:: 1.12.0 """ if requests_missing: raise ImportError( 'requests-oauthlib is needed for YahooPlaceFinder.' ' Install with `pip install geopy -e ".[placefinder]"`.') super(YahooPlaceFinder, self).__init__(timeout=timeout, proxies=proxies, user_agent=user_agent) self.consumer_key = text_type(consumer_key) self.consumer_secret = text_type(consumer_secret) self.auth = OAuth1( client_key=self.consumer_key, client_secret=self.consumer_secret, signature_method="HMAC-SHA1", signature_type="AUTH_HEADER", ) self.api = "https://yboss.yahooapis.com/geo/placefinder"
def join_filter(sep, seq, pred=bool): """ Join with a filter. """ return sep.join([text_type(i) for i in seq if pred(i)])
def __unicode__(self): return text_type(self._pytz_timezone)