class_docstr: Geocoder using the ERSI ArcGIS API.
  
  Documentation at:
      https://developers.arcgis.com/rest/geocode/api-reference/overview-world-geocoding-service.htm
class_docstr_tok: ["Geocoder","using","the","ERSI","ArcGIS","API",".","Documentation","at",":","https",":","\/\/developers.arcgis.com\/rest\/geocode\/api-reference\/overview-world-geocoding-service.htm"]
docstr: Return a location point by address.
  
  :param str query: The address or query you wish to geocode.
  
  :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 out_fields: A list of output fields to be returned in the
      attributes field of the raw data. This can be either a python
      list/tuple of fields or a comma-separated string. See
      https://developers.arcgis.com/rest/geocode/api-reference/geocoding-service-output.htm
      for a list of supported output fields. If you want to return all
      supported output fields, set ``out_fields="*"``.
  :type out_fields: str or iterable
  
  :rtype: ``None``, :class:`geopy.location.Location` or a list of them, if
      ``exactly_one=False``.
docstr_tok: ["Return","a","location","point","by","address",".",":","param","str","query",":","The","address","or","query","you","wish","to","geocode",".",":","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","out_fields",":","A","list","of","output","fields","to","be","returned","in","the","attributes","field","of","the","raw","data",".","This","can","be","either","a","python","list\/tuple","of","fields","or","a","comma-separated","string",".","See","https",":","\/\/developers.arcgis.com\/rest\/geocode\/api-reference\/geocoding-service-output.htm","for","a","list","of","supported","output","fields",".","If","you","want","to","return","all","supported","output","fields",",","set","``","out_fields=","''","*","''","``",".",":","type","out_fields",":","str","or","iterable",":","rtype",":","``","None","``",",",":","class",":","`","geopy.location.Location","`","or","a","list","of","them",",","if","``","exactly_one=False","``","."]
code: def geocode(
      self,
      query,
      *,
      exactly_one=True,
      timeout=DEFAULT_SENTINEL,
      out_fields=None,
  ):
      """
      Return a location point by address.
  
      :param str query: The address or query you wish to geocode.
  
      :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 out_fields: A list of output fields to be returned in the
          attributes field of the raw data. This can be either a python
          list/tuple of fields or a comma-separated string. See
          https://developers.arcgis.com/rest/geocode/api-reference/geocoding-service-output.htm
          for a list of supported output fields. If you want to return all
          supported output fields, set ``out_fields="*"``.
      :type out_fields: str or iterable
  
      :rtype: ``None``, :class:`geopy.location.Location` or a list of them, if
          ``exactly_one=False``.
      """
      params = {"singleLine": query, "f": "json"}
      if exactly_one:
          params["maxLocations"] = 1
      if out_fields is not None:
          if isinstance(out_fields, str):
              params["outFields"] = out_fields
          else:
              params["outFields"] = ",".join(out_fields)
      url = "?".join((self.api, urlencode(params)))
      logger.debug("%s.geocode: %s", self.__class__.__name__, url)
      callback = partial(self._parse_geocode, exactly_one=exactly_one)
      return self._authenticated_call_geocoder(
          url, callback, timeout=timeout
      )
  
file_path: geopy/geopy/geocoders/arcgis.py
imports: import json
  from functools import partial
  from time import time
  from urllib.parse import urlencode
  from geopy.exc import ConfigurationError, GeocoderAuthenticationFailure, GeocoderServiceError
  from geopy.geocoders.base import DEFAULT_SENTINEL, Geocoder, _synchronized
  from geopy.location import Location
  from geopy.util import logger
label_desc: Use image node_id 2 for calling the ArcGIS obj's underlying member method code with example usage: obj.geocode(query) and returns: self