docs: def geocode(client, address=None, components=None, bounds=None, region=None,
              language=None):
      """
      Geocoding is the process of converting addresses
      (like ``"1600 Amphitheatre Parkway, Mountain View, CA"``) into geographic
      coordinates (like latitude 37.423021 and longitude -122.083739), which you
      can use to place markers or position the map.
  
      :param address: The address to geocode.
      :type address: string
  
      :param components: A component filter for which you wish to obtain a
          geocode, for example: ``{'administrative_area': 'TX','country': 'US'}``
      :type components: dict
  
      :param bounds: The bounding box of the viewport within which to bias geocode
          results more prominently.
      :type bounds: string or dict with northeast and southwest keys.
  
      :param region: The region code, specified as a ccTLD ("top-level domain")
          two-character value.
      :type region: string
  
      :param language: The language in which to return results.
      :type language: string
  
      :rtype: list of geocoding results.
      """
  
      params = {}
  
      if address:
          params["address"] = address
  
      if components:
          params["components"] = convert.components(components)
  
      if bounds:
          params["bounds"] = convert.bounds(bounds)
  
      if region:
          params["region"] = region
  
      if language:
          params["language"] = language
  
      return client._request("/maps/api/geocode/json", params).get("results", [])