code: def _wiki_request(params):
    '''
    Make a request to the Wikipedia API using the given search parameters.
    Returns a parsed dict of the JSON response.
    '''
    global RATE_LIMIT_LAST_CALL
    global USER_AGENT
  
    params['format'] = 'json'
    if not 'action' in params:
      params['action'] = 'query'
  
    headers = {
      'User-Agent': USER_AGENT
    }
  
    if RATE_LIMIT and RATE_LIMIT_LAST_CALL and \
      RATE_LIMIT_LAST_CALL + RATE_LIMIT_MIN_WAIT > datetime.now():
  
      # it hasn't been long enough since the last API call
      # so wait until we're in the clear to make the request
  
      wait_time = (RATE_LIMIT_LAST_CALL + RATE_LIMIT_MIN_WAIT) - datetime.now()
      time.sleep(int(wait_time.total_seconds()))
  
    r = requests.get(API_URL, params=params, headers=headers)
  
    if RATE_LIMIT:
      RATE_LIMIT_LAST_CALL = datetime.now()
  
    return r.json(f _wiki_request(params):
    '''
    Make a request to the Wikipedia API using the given search parameters.
    Returns a parsed dict of the JSON response.
    '''
    global RATE_LIMIT_LAST_CALL
    global USER_AGENT
  
    params['format'] = 'json'
    if not 'action' in params:
      params['action'] = 'query'
  
    headers = {
      'User-Agent': USER_AGENT
    }
  
    if RATE_LIMIT and RATE_LIMIT_LAST_CALL and \
      RATE_LIMIT_LAST_CALL + RATE_LIMIT_MIN_WAIT > datetime.now():
  
      # it hasn't been long enough since the last API call
      # so wait until we're in the clear to make the request
  
      wait_time = (RATE_LIMIT_LAST_CALL + RATE_LIMIT_MIN_WAIT) - datetime.now()
      time.sleep(int(wait_time.total_seconds()))
  
    r = requests.get(API_URL, params=params, headers=headers)
  
    if RATE_LIMIT:
      RATE_LIMIT_LAST_CALL = datetime.now()
  
    return r.json()
docs: Make a request to the Wikipedia API using the given search parameters.
    Returns a parsed dict of the JSON response.