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"]
code: def _refresh_authentication_token(
      self, callback_success, *, timeout, from_token
  ):
      if from_token != self.token:
          # Token has already been updated by a concurrent call.
          return callback_success()
  
      token_request_arguments = {
          "username": self.username,
          "password": self.password,
          "referer": self.referer,
          "expiration": self.token_lifetime,
          "f": "json",
      }
      url = "?".join(
          (self.auth_api, urlencode(token_request_arguments))
      )
      logger.debug(
          "%s._refresh_authentication_token: %s",
          self.__class__.__name__,
          url,
      )
  
      def cb(response):
          if "token" not in response:
              raise GeocoderAuthenticationFailure(
                  "Missing token in auth request."
                  "Request URL: %s; response JSON: %s"
                  % (url, json.dumps(response))
              )
          self.token = response["token"]
          self.token_expiry = int(time()) + self.token_lifetime
          return callback_success()
  
      return self._call_geocoder(url, cb, 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 7 for calling the ArcGIS obj's underlying member method code with example usage: obj._refresh_authentication_token(callback_success) and returns: self, callback_success, callback_success