#NEWLINE# def reverse( self , query , exactly_one = False , timeout = None ) : #NEWLINE# #INDENT# '\n        Given a point, find an address.\n\n            .. versionadded:: 1.2.0\n\n        :param string query: The coordinates for which you wish to obtain the\n            closest human-readable addresses.\n        :type query: :class:`geopy.point.Point`, list or tuple of (latitude,\n            longitude), or string as "%(latitude)s, %(longitude)s"\n\n        :param boolean exactly_one: Return one result or a list of results, if\n            available.\n\n        :param int timeout: Time, in seconds, to wait for the geocoding service\n            to respond before raising a :class:`geopy.exc.GeocoderTimedOut`\n            exception.\n\n        ' #NEWLINE# try : #NEWLINE# #INDENT# ( lat , lng ) = [ x . strip ( ) for x in self . _coerce_point_to_string ( query ) . split ( ',' ) ] #NEWLINE# #UNINDENT# except ValueError : #NEWLINE# #INDENT# raise ValueError ( 'Must be a coordinate pair or Point' ) #NEWLINE# #UNINDENT# params = { #NEWLINE# #INDENT# 'lat' : lat , #NEWLINE# 'lng' : lng , #NEWLINE# 'username' : self . username , #NEWLINE# #UNINDENT# } #NEWLINE# url = '?' . join ( ( self . api_reverse , urlencode ( params ) ) ) #NEWLINE# logger . debug ( '%s.reverse: %s' , self . __class__ . __name__ , url ) #NEWLINE# return self . _parse_json ( self . _call_geocoder ( url , timeout = timeout ) , url )