code: def simple_request(self, request, *args, **kwargs):
          
          # TODO (NM 2016-11-03) This method should really live on the lower level
          # katcp_client in client.py, is generally useful IMHO
          use_mid = kwargs.get('use_mid')
          timeout = kwargs.get('timeout')
          mid = kwargs.get('mid')
          msg = katcp.Message.request(request, *args, mid=mid)
          return self.katcp_client.future_request(msg, timeout, use_mid)
docs: Create and send a request to the server.
  
          This method implements a very small subset of the options
          possible to send an request. It is provided as a shortcut to
          sending a simple request.
  
          Parameters
          ----------
          request : str
              The request to call.
          *args : list of objects
              Arguments to pass on to the request.
  
          Keyword Arguments
          -----------------
          timeout : float or None, optional
              Timeout after this amount of seconds (keyword argument).
          mid : None or int, optional
              Message identifier to use for the request message. If None, use either
              auto-incrementing value or no mid depending on the KATCP protocol version
              (mid's were only introduced with KATCP v5) and the value of the `use_mid`
              argument. Defaults to None
          use_mid : bool
              Use a mid for the request if True. Defaults to True if the server supports
              them.
  
          Returns
          -------
          future object.
  
          Example
          -------
  
          ::
  
          reply, informs = yield ic.simple_request('help', 'sensor-list')