class_docstr: Geocoder using the IGN France GeoCoder OpenLS API.
  
  Documentation at:
      https://geoservices.ign.fr/services-web-essentiels
class_docstr_tok: ["Geocoder","using","the","IGN","France","GeoCoder","OpenLS","API",".","Documentation","at",":","https",":","\/\/geoservices.ign.fr\/services-web-essentiels"]
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 list reverse_geocode_preference: Enable to set expected results
      type. It can be `StreetAddress` or `PositionOfInterest`.
      Default is set to `StreetAddress`.
  
  :param int maximum_responses: The maximum number of responses
      to ask to the API in the query body.
  
  :param str filtering: Provide string that help setting geocoder
      filter. It contains an XML string. See examples in documentation
      and ignfrance.py file in directory tests.
  
  :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.
  
  :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","list","reverse_geocode_preference",":","Enable","to","set","expected","results","type",".","It","can","be","`","StreetAddress","`","or","`","PositionOfInterest","`",".","Default","is","set","to","`","StreetAddress","`",".",":","param","int","maximum_responses",":","The","maximum","number","of","responses","to","ask","to","the","API","in","the","query","body",".",":","param","str","filtering",":","Provide","string","that","help","setting","geocoder","filter",".","It","contains","an","XML","string",".","See","examples","in","documentation","and","ignfrance.py","file","in","directory","tests",".",":","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",".",":","rtype",":","``","None","``",",",":","class",":","`","geopy.location.Location","`","or","a","list","of","them",",","if","``","exactly_one=False","``","."]
code: def reverse(
      self,
      query,
      *,
      reverse_geocode_preference=("StreetAddress",),
      maximum_responses=25,
      filtering="",
      exactly_one=True,
      timeout=DEFAULT_SENTINEL,
  ):
      """
      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 list reverse_geocode_preference: Enable to set expected results
          type. It can be `StreetAddress` or `PositionOfInterest`.
          Default is set to `StreetAddress`.
  
      :param int maximum_responses: The maximum number of responses
          to ask to the API in the query body.
  
      :param str filtering: Provide string that help setting geocoder
          filter. It contains an XML string. See examples in documentation
          and ignfrance.py file in directory tests.
  
      :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.
  
      :rtype: ``None``, :class:`geopy.location.Location` or a list of them, if
          ``exactly_one=False``.
  
      """
  
      sub_request = """
              <ReverseGeocodeRequest>
                  {reverse_geocode_preference}
                  <Position>
                    <gml:Point>
                      <gml:pos>{query}</gml:pos>
                    </gml:Point>
                    {filtering}
                  </Position>
              </ReverseGeocodeRequest>
          """
  
      xml_request = self.xml_request.format(
          method_name="ReverseGeocodeRequest",
          sub_request=sub_request,
          maximum_responses=maximum_responses,
      )
  
      for pref in reverse_geocode_preference:
          if pref not in ("StreetAddress", "PositionOfInterest"):
              raise GeocoderQueryError(
                  "`reverse_geocode_preference` must contain "
                  "one or more of: StreetAddress, PositionOfInterest"
              )
  
      point = self._coerce_point_to_string(query, "%(lat)s %(lon)s")
      reverse_geocode_preference = "\n".join(
          "<ReverseGeocodePreference>%s</ReverseGeocodePreference>"
          % pref
          for pref in reverse_geocode_preference
      )
  
      request_string = xml_request.format(
          maximum_responses=maximum_responses,
          query=point,
          reverse_geocode_preference=reverse_geocode_preference,
          filtering=filtering,
      )
  
      url = "?".join((self.api, urlencode({"xls": request_string})))
  
      logger.debug("%s.reverse: %s", self.__class__.__name__, url)
      callback = partial(
          self._parse_xml,
          exactly_one=exactly_one,
          is_reverse=True,
          is_freeform="false",
      )
      return self._request_raw_content(url, callback, timeout=timeout)
  
file_path: geopy/geopy/geocoders/ignfrance.py
imports: import warnings
  import xml.etree.ElementTree
  from functools import partial
  from urllib.parse import urlencode
  from geopy.exc import GeocoderQueryError
  from geopy.geocoders.base import DEFAULT_SENTINEL, Geocoder
  from geopy.location import Location
  from geopy.util import logger
label_desc: Use image node_id 3 for calling the IGNFrance obj's underlying member method code with example usage: obj.reverse(query) and returns: self