code: def geocode(
              self,
              query,
              limit=None,
              exactly_one=True,
              timeout=DEFAULT_SENTINEL,
      ):
          
  
          params = {
              'q': self.format_string % query,
          }
  
          if limit is not None:
              params['limit'] = limit
  
          url = "?".join((self.geocode_api, urlencode(params)))
  
          logger.debug("%s.geocode: %s", self.__class__.__name__, url)
          return self._parse_json(
              self._call_geocoder(url, timeout=timeout), exactly_one
          )
docs: Return a location point by address.
  
          :param str query: The address or query you wish to geocode.
  
          :param int limit: Defines the maximum number of items in the
              response structure. If not provided and there are multiple
              results the BAN API will return 5 results by default.
              This will be reset to one if ``exactly_one`` is True.
  
          :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 bool exactly_one: Return one result or a list of results, if
              available.
  
          :rtype: ``None``, :class:`geopy.location.Location` or a list of them, if
              ``exactly_one=False``.