code: def _get_request_timeout_hints(self, name=None, timeout=None):
          
          timeout_hints = {}
          req_msg_args = ['request-timeout-hint']
          if name:
              req_msg_args.append(name)
          req_msg = katcp.Message.request(*req_msg_args)
          reply, informs = yield self.katcp_client.future_request(
              req_msg, timeout=timeout)
          if not reply.reply_ok():
              raise SyncError('Error retrieving request timeout hints: "{}"\n'
                              'in reply to request {}, continuing with sync'
                              .format(reply, req_msg))
          for inform in informs:
              request_name = inform.arguments[0]
              timeout_hint = float(inform.arguments[1])
              if timeout_hint > 0:
                  timeout_hints[request_name] = timeout_hint
          raise Return(timeout_hints)
docs: Get request timeout hints from device
  
          Parameters
          =========
          name : str or None, optional
              Name of the request or None to get all request timeout hints.
          timeout : float seconds
              Timeout for ?request-timeout-hint
  
          Returns
          -------
          Tornado future that resolves with:
  
          timeout_hints : dict request_name -> timeout_hint
  
          where
  
          request_name : str
              Name of the request
          timeout_hint : float
              Suggested request timeout hint from device ?request-timeout_hint
  
          Note, if there is no request hint, there will be no entry in the
          dict. If you request the hint for a named request that has no hint, an
          empty dict will be returned.