class_docstr: GeoNames geocoder.
  
  Documentation at:
      http://www.geonames.org/export/geonames-search.html
  
  Reverse geocoding documentation at:
      http://www.geonames.org/export/web-services.html#findNearbyPlaceName
class_docstr_tok: ["GeoNames","geocoder",".","Documentation","at",":","http",":","\/\/www.geonames.org\/export\/geonames-search.html","Reverse","geocoding","documentation","at",":","http",":","\/\/www.geonames.org\/export\/web-services.html","#","findNearbyPlaceName"]
code: def _raise_for_error(self, body):
      err = body.get("status")
      if err:
          code = err["value"]
          message = err["message"]
          # http://www.geonames.org/export/webservice-exception.html
          if message.startswith("user account not enabled to use"):
              raise GeocoderInsufficientPrivileges(message)
          if code == 10:
              raise GeocoderAuthenticationFailure(message)
          if code in (18, 19, 20):
              raise GeocoderQuotaExceeded(message)
          raise GeocoderServiceError(message)
  
file_path: geopy/geopy/geocoders/geonames.py
imports: from functools import partial
  from urllib.parse import urlencode
  from geopy.exc import GeocoderAuthenticationFailure, GeocoderInsufficientPrivileges, GeocoderQueryError, GeocoderQuotaExceeded, GeocoderServiceError
  from geopy.geocoders.base import DEFAULT_SENTINEL, Geocoder
  from geopy.location import Location
  from geopy.timezone import ensure_pytz_is_installed, from_fixed_gmt_offset, from_timezone_name
  from geopy.util import logger
label_desc: Use image node_id 7 for calling the GeoNames obj's underlying member method code with example usage: obj._raise_for_error(body) without return types