human
Here's a good function header given the following:
I wrote the below code

    def retry_assertion_decorator(func):
        'Decorator'
        @functools.wraps(func)
        def retry_assertion_wrap(*args, **kwargs):
            'The    wrapper'
            num_attempts = 0
            start_time = time.time()
            while True:
                num_attempts += 1
                try:
                    result = func(*args, **kwargs)
                except AssertionError:
                    now = time.time()
                    if (now < start_time):
                        start_time = now
                    if ((now - start_time) > timeout_sec):
                        logging.exception("Exceeded    retry    timeout    of    %s    sec    in    %s    attempts    with    func    %r.    Caller's    stack:\n%s", timeout_sec, num_attempts, func, ''.join(traceback.format_stack()))
                        raise
                    logging.debug('Attempt    %s    failed.
   retrying    %r    in    %s    sec.', num_attempts, func, retry_interval_sec)
                    time.sleep(retry_interval_sec)
                else:
                    logging.debug('%r    succeeded    at    attempt    %s', func, num_attempts)
                    return result
        return retry_assertion_wrap
    return retry_assertion_decorator

What's a good function header?
assistant
#Here's a good function header.

def retry_assertion(timeout_sec, retry_interval_sec=0.1):