code: def request(self, path,
                  args=[], files=[], opts={}, stream=False,
                  decoder=None, headers={}, data=None):
          
          url = self.base + path
  
          params = []
          params.append(('stream-channels', 'true'))
          for opt in opts.items():
              params.append(opt)
          for arg in args:
              params.append(('arg', arg))
  
          method = 'post' if (files or data) else 'get'
  
          parser = encoding.get_encoding(decoder if decoder else "none")
  
          return self._request(method, url, params, parser, stream,
                               files, headers, data)
docs: Makes an HTTP request to the IPFS daemon.
  
          This function returns the contents of the HTTP response from the IPFS
          daemon.
  
          Raises
          ------
          ~ipfsapi.exceptions.ErrorResponse
          ~ipfsapi.exceptions.ConnectionError
          ~ipfsapi.exceptions.ProtocolError
          ~ipfsapi.exceptions.StatusError
          ~ipfsapi.exceptions.TimeoutError
  
          Parameters
          ----------
          path : str
              The REST command path to send
          args : list
              Positional parameters to be sent along with the HTTP request
          files : :class:`io.RawIOBase` | :obj:`str` | :obj:`list`
              The file object(s) or path(s) to stream to the daemon
          opts : dict
              Query string paramters to be sent along with the HTTP request
          decoder : str
              The encoder to use to parse the HTTP response
          kwargs : dict
              Additional arguments to pass to :mod:`requests`