docs: def get_reply(session, url, post=False, data=None, headers=None, quiet=False):
      """
      Download an HTML page using the requests session. Low-level function
      that allows for flexible request configuration.
  
      @param session: Requests session.
      @type session: requests.Session
  
      @param url: URL pattern with optional keywords to format.
      @type url: str
  
      @param post: Flag that indicates whether POST request should be sent.
      @type post: bool
  
      @param data: Payload data that is sent with request (in request body).
      @type data: object
  
      @param headers: Additional headers to send with request.
      @type headers: dict
  
      @param quiet: Flag that tells whether to print error message when status
          code != 200.
      @type quiet: bool
  
      @return: Requests response.
      @rtype: requests.Response
      """
  
      request_headers = {} if headers is None else headers
  
      request = requests.Request('POST' if post else 'GET',
                                 url,
                                 data=data,
                                 headers=request_headers)
      prepared_request = session.prepare_request(request)
  
      reply = session.send(prepared_request)
  
      try:
          reply.raise_for_status()
      except requests.exceptions.HTTPError as e:
          if not quiet:
              logging.error("Error %s getting page %s", e, url)
              logging.error("The server replied: %s", reply.text)
          raise
  
      return reply