code: def request(method, url,
      params=None,
      data=None,
      headers=None,
      cookies=None,
      files=None,
      auth=None,
      timeout=None,
      allow_redirects=False,
      proxies=None,
      hooks=None,
      return_response=True,
      prefetch=False,
      config=None):
      
  
      s = session()
      return s.request(
          method=method,
          url=url,
          params=params,
          data=data,
          headers=headers,
          cookies=cookies,
          files=files,
          auth=auth,
          timeout=timeout,
          allow_redirects=allow_redirects,
          proxies=proxies,
          hooks=hooks,
          return_response=return_response,
          config=config,
          prefetch=prefetch
      )
docs: Constructs and sends a :class:`Request <Request>`.
      Returns :class:`Response <Response>` object.
  
      :param method: method for the new :class:`Request` object.
      :param url: URL for the new :class:`Request` object.
      :param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`.
      :param data: (optional) Dictionary or bytes to send in the body of the :class:`Request`.
      :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
      :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
      :param files: (optional) Dictionary of 'filename': file-like-objects for multipart encoding upload.
      :param auth: (optional) Auth typle to enable Basic/Digest/Custom HTTP Auth.
      :param timeout: (optional) Float describing the timeout of the request.
      :param allow_redirects: (optional) Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.
      :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
      :param return_response: (optional) If False, an un-sent Request object will returned.
      :param config: (optional) A configuration dictionary.