class_docstr: GeoNames REST Web Services
  ==========================
  GeoNames is mainly using REST webservices. Find nearby postal codes / reverse geocoding
  This service comes in two flavors.You can either pass the lat/long or a postalcode/placename.
  
  API Reference
  -------------
  http://www.geonames.org/export/web-services.html
class_docstr_tok: ["GeoNames","REST","Web","Services","==========================","GeoNames","is","mainly","using","REST","webservices",".","Find","nearby","postal","codes","\/","reverse","geocoding","This","service","comes","in","two","flavors.You","can","either","pass","the","lat\/long","or","a","postalcode\/placename",".","API","Reference","--","--","--","--","--","--","-","http",":","\/\/www.geonames.org\/export\/web-services.html"]
docstr: Will be overridden according to the targetted web service
docstr_tok: ["Will","be","overridden","according","to","the","targetted","web","service"]
code: def _build_params(self, location, provider_key, **kwargs):
      """Will be overridden according to the targetted web service"""
      base_kwargs = {
          "q": location,
          "fuzzy": kwargs.get("fuzzy", 1.0),
          "username": provider_key,
          "maxRows": kwargs.get("maxRows", 1),
      }
      # check out for bbox in kwargs
      bbox = kwargs.pop("proximity", None)
      if bbox is not None:
          bbox = BBox.factory(bbox)
          base_kwargs.update(
              {
                  "east": bbox.east,
                  "west": bbox.west,
                  "north": bbox.north,
                  "south": bbox.south,
              }
          )
  
      # look out for valid extra kwargs
      supported_kwargs = set(
          (
              "name",
              "name_equals",
              "name_startsWith",
              "startRow",
              "country",
              "countryBias",
              "continentCode",
              "adminCode1",
              "adminCode2",
              "adminCode3",
              "cities",
              "featureClass",
              "featureCode",
              "lang",
              "type",
              "style",
              "isNameRequired",
              "tag",
              "operator",
              "charset",
              "east",
              "west",
              "north",
              "south",
              "orderby",
              "inclBbox",
          )
      )
      found_kwargs = supported_kwargs & set(kwargs.keys())
      LOGGER.debug("Adding extra kwargs %s", found_kwargs)
  
      # update base kwargs with extra ones
      base_kwargs.update(
          dict([(extra, kwargs[extra]) for extra in found_kwargs])
      )
      return base_kwargs
  
imports: from __future__ import absolute_import
  import json
  import logging
  from geocoder.base import MultipleResultsQuery, OneResult
  from geocoder.keys import geonames_username
  from geocoder.location import BBox
label_desc: Use image node_id 1 for calling the GeonamesQuery obj's underlying member method code with example usage: obj._build_params(location, provider_key) and returns: base_kwargs