<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _get_request_timeout_hints(self, name=None, timeout=None):
 """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. """

        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)