class_docstr: Geocoder using the Google Maps v3 API.
  
  Documentation at:
      https://developers.google.com/maps/documentation/geocoding/
  
  Pricing details:
      https://developers.google.com/maps/documentation/geocoding/usage-and-billing
docstr: Find the timezone a point in `query` was in for a specified `at_time`.
  
  `None` will be returned for points without an assigned
  Olson timezone id (e.g. for Antarctica).
  
  :param query: The coordinates for which you want a timezone.
  :type query: :class:`geopy.point.Point`, list or tuple of (latitude,
      longitude), or string as "%(latitude)s, %(longitude)s"
  
  :param at_time: The time at which you want the timezone of this
      location. This is optional, and defaults to the time that the
      function is called in UTC. Timezone-aware datetimes are correctly
      handled and naive datetimes are silently treated as UTC.
  :type at_time: :class:`datetime.datetime` or None
  
  :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`` or :class:`geopy.timezone.Timezone`.
docstr_tok: ["Find","the","timezone","a","point","in","`","query","`","was","in","for","a","specified","`","at_time","`",".","`","None","`","will","be","returned","for","points","without","an","assigned","Olson","timezone","id","(","e.g",".","for","Antarctica",")",".",":","param","query",":","The","coordinates","for","which","you","want","a","timezone",".",":","type","query",":",":","class",":","`","geopy.point.Point","`",",","list","or","tuple","of","(","latitude",",","longitude",")",",","or","string","as","``","%","(","latitude",")","s",",","%","(","longitude",")","s","''",":","param","at_time",":","The","time","at","which","you","want","the","timezone","of","this","location",".","This","is","optional",",","and","defaults","to","the","time","that","the","function","is","called","in","UTC",".","Timezone-aware","datetimes","are","correctly","handled","and","naive","datetimes","are","silently","treated","as","UTC",".",":","type","at_time",":",":","class",":","`","datetime.datetime","`","or","None",":","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","``","or",":","class",":","`","geopy.timezone.Timezone","`","."]
code: def reverse_timezone(
      self, query, *, at_time=None, timeout=DEFAULT_SENTINEL
  ):
      """
      Find the timezone a point in `query` was in for a specified `at_time`.
  
      `None` will be returned for points without an assigned
      Olson timezone id (e.g. for Antarctica).
  
      :param query: The coordinates for which you want a timezone.
      :type query: :class:`geopy.point.Point`, list or tuple of (latitude,
          longitude), or string as "%(latitude)s, %(longitude)s"
  
      :param at_time: The time at which you want the timezone of this
          location. This is optional, and defaults to the time that the
          function is called in UTC. Timezone-aware datetimes are correctly
          handled and naive datetimes are silently treated as UTC.
      :type at_time: :class:`datetime.datetime` or None
  
      :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`` or :class:`geopy.timezone.Timezone`.
      """
      ensure_pytz_is_installed()
  
      location = self._coerce_point_to_string(query)
  
      timestamp = self._normalize_timezone_at_time(at_time)
  
      params = {
          "location": location,
          "timestamp": timestamp,
      }
      if self.api_key:
          params["key"] = self.api_key
      url = "?".join((self.tz_api, urlencode(params)))
  
      logger.debug(
          "%s.reverse_timezone: %s", self.__class__.__name__, url
      )
      return self._call_geocoder(
          url, self._parse_json_timezone, timeout=timeout
      )
  
imports: import base64
  import collections.abc
  import hashlib
  import hmac
  from calendar import timegm
  from datetime import datetime
  from functools import partial
  from urllib.parse import urlencode
  from geopy.exc import ConfigurationError, GeocoderQueryError, GeocoderQuotaExceeded, GeocoderServiceError, GeocoderUnavailable
  from geopy.geocoders.base import DEFAULT_SENTINEL, Geocoder
  from geopy.location import Location
  from geopy.timezone import ensure_pytz_is_installed, from_timezone_name
  from geopy.util import logger
label_desc: Use image node_id 6 for calling the GoogleV3 obj's underlying member method code with example usage: obj.reverse_timezone(query) and returns: self