class_docstr: Nominatim geocoder for OpenStreetMap data.
  
  Documentation at:
      https://nominatim.org/release-docs/develop/api/Overview/
  
  .. attention::
     Using Nominatim with the default `user_agent` is strongly discouraged,
     as it violates Nominatim's Usage Policy
     https://operations.osmfoundation.org/policies/nominatim/
     and may possibly cause 403 and 429 HTTP errors. Please make sure
     to specify a custom `user_agent` with
     ``Nominatim(user_agent="my-application")`` or by
     overriding the default `user_agent`:
     ``geopy.geocoders.options.default_user_agent = "my-application"``.
     An exception will be thrown if a custom `user_agent` is not specified.
class_docstr_tok: ["Nominatim","geocoder","for","OpenStreetMap","data",".","Documentation","at",":","https",":","\/\/nominatim.org\/release-docs\/develop\/api\/Overview\/","..","attention",":",":","Using","Nominatim","with","the","default","`","user_agent","`","is","strongly","discouraged",",","as","it","violates","Nominatim","'s","Usage","Policy","https",":","\/\/operations.osmfoundation.org\/policies\/nominatim\/","and","may","possibly","cause","403","and","429","HTTP","errors",".","Please","make","sure","to","specify","a","custom","`","user_agent","`","with","``","Nominatim","(","user_agent=","''","my-application","''",")","``","or","by","overriding","the","default","`","user_agent","`",":","``","geopy.geocoders.options.default_user_agent","=","``","my-application","''","``",".","An","exception","will","be","thrown","if","a","custom","`","user_agent","`","is","not","specified","."]
docstr: Return an address by location point.
  
  :param query: The coordinates for which you wish to obtain the
      closest human-readable addresses.
  :type query: :class:`geopy.point.Point`, list or tuple of ``(latitude,
      longitude)``, or string as ``"%(latitude)s, %(longitude)s"``.
  
  :param bool exactly_one: Return one result or a list of results, if
      available.
  
  :param int timeout: Time, in seconds, to wait for the geocoding service
      to respond before raising a :class:`geopy.exc.GeocoderTimedOut`
      exception. Set this only if you wish to override, on this call
      only, the value set during the geocoder's initialization.
  
  :param str language: Preferred language in which to return results.
      Either uses standard
      `RFC2616 <http://www.ietf.org/rfc/rfc2616.txt>`_
      accept-language string or a simple comma-separated
      list of language codes.
  
  :param bool addressdetails: Whether or not to include address details,
      such as city, county, state, etc. in *Location.raw*
  
  :param int zoom: Level of detail required for the address,
      an integer in range from 0 (country level) to 18 (building level),
      default is 18.
  
  :param bool namedetails: If you want in *Location.raw* to include
      namedetails, set it to True. This will be a list of alternative names,
      including language variants, etc.
  
      .. versionadded:: 2.3
  
  :rtype: ``None``, :class:`geopy.location.Location` or a list of them, if
      ``exactly_one=False``.
docstr_tok: ["Return","an","address","by","location","point",".",":","param","query",":","The","coordinates","for","which","you","wish","to","obtain","the","closest","human-readable","addresses",".",":","type","query",":",":","class",":","`","geopy.point.Point","`",",","list","or","tuple","of","``","(","latitude",",","longitude",")","``",",","or","string","as","``","``","%","(","latitude",")","s",",","%","(","longitude",")","s","''","``",".",":","param","bool","exactly_one",":","Return","one","result","or","a","list","of","results",",","if","available",".",":","param","int","timeout",":","Time",",","in","seconds",",","to","wait","for","the","geocoding","service","to","respond","before","raising","a",":","class",":","`","geopy.exc.GeocoderTimedOut","`","exception",".","Set","this","only","if","you","wish","to","override",",","on","this","call","only",",","the","value","set","during","the","geocoder","'s","initialization",".",":","param","str","language",":","Preferred","language","in","which","to","return","results",".","Either","uses","standard","`","RFC2616","<","http",":","\/\/www.ietf.org\/rfc\/rfc2616.txt",">","`","_","accept-language","string","or","a","simple","comma-separated","list","of","language","codes",".",":","param","bool","addressdetails",":","Whether","or","not","to","include","address","details",",","such","as","city",",","county",",","state",",","etc",".","in","*","Location.raw","*",":","param","int","zoom",":","Level","of","detail","required","for","the","address",",","an","integer","in","range","from","0","(","country","level",")","to","18","(","building","level",")",",","default","is","18.",":","param","bool","namedetails",":","If","you","want","in","*","Location.raw","*","to","include","namedetails",",","set","it","to","True",".","This","will","be","a","list","of","alternative","names",",","including","language","variants",",","etc",".","..","versionadded",":",":","2.3",":","rtype",":","``","None","``",",",":","class",":","`","geopy.location.Location","`","or","a","list","of","them",",","if","``","exactly_one=False","``","."]
code: def reverse(
      self,
      query,
      *,
      exactly_one=True,
      timeout=DEFAULT_SENTINEL,
      language=False,
      addressdetails=True,
      zoom=None,
      namedetails=False,
  ):
      """
      Return an address by location point.
  
      :param query: The coordinates for which you wish to obtain the
          closest human-readable addresses.
      :type query: :class:`geopy.point.Point`, list or tuple of ``(latitude,
          longitude)``, or string as ``"%(latitude)s, %(longitude)s"``.
  
      :param bool exactly_one: Return one result or a list of results, if
          available.
  
      :param int timeout: Time, in seconds, to wait for the geocoding service
          to respond before raising a :class:`geopy.exc.GeocoderTimedOut`
          exception. Set this only if you wish to override, on this call
          only, the value set during the geocoder's initialization.
  
      :param str language: Preferred language in which to return results.
          Either uses standard
          `RFC2616 <http://www.ietf.org/rfc/rfc2616.txt>`_
          accept-language string or a simple comma-separated
          list of language codes.
  
      :param bool addressdetails: Whether or not to include address details,
          such as city, county, state, etc. in *Location.raw*
  
      :param int zoom: Level of detail required for the address,
          an integer in range from 0 (country level) to 18 (building level),
          default is 18.
  
      :param bool namedetails: If you want in *Location.raw* to include
          namedetails, set it to True. This will be a list of alternative names,
          including language variants, etc.
  
          .. versionadded:: 2.3
  
      :rtype: ``None``, :class:`geopy.location.Location` or a list of them, if
          ``exactly_one=False``.
  
      """
      try:
          lat, lon = self._coerce_point_to_string(query).split(",")
      except ValueError:
          raise ValueError("Must be a coordinate pair or Point")
      params = {
          "lat": lat,
          "lon": lon,
          "format": "json",
      }
      if language:
          params["accept-language"] = language
  
      params["addressdetails"] = 1 if addressdetails else 0
  
      if zoom is not None:
          params["zoom"] = zoom
  
      if namedetails:
          params["namedetails"] = 1
  
      url = self._construct_url(self.reverse_api, params)
      logger.debug("%s.reverse: %s", self.__class__.__name__, url)
      callback = partial(self._parse_json, exactly_one=exactly_one)
      return self._call_geocoder(url, callback, timeout=timeout)
  
file_path: geopy/geopy/geocoders/nominatim.py
imports: import collections.abc
  from functools import partial
  from urllib.parse import urlencode
  from geopy.exc import ConfigurationError, GeocoderQueryError
  from geopy.geocoders.base import _DEFAULT_USER_AGENT, DEFAULT_SENTINEL, Geocoder
  from geopy.location import Location
  from geopy.util import logger
label_desc: Use image node_id 4 for calling the Nominatim obj's underlying member method code with example usage: obj.reverse(query) and returns: self