code: def wait_func_accept_retry_state(wait_func):
      
      if not six.callable(wait_func):
          return wait_func
  
      if func_takes_retry_state(wait_func):
          return wait_func
  
      if func_takes_last_result(wait_func):
          @_utils.wraps(wait_func)
          def wrapped_wait_func(retry_state):
              warn_about_non_retry_state_deprecation(
                  'wait', wait_func, stacklevel=4)
              return wait_func(
                  retry_state.attempt_number,
                  retry_state.seconds_since_start,
                  last_result=retry_state.outcome,
              )
      else:
          @_utils.wraps(wait_func)
          def wrapped_wait_func(retry_state):
              warn_about_non_retry_state_deprecation(
                  'wait', wait_func, stacklevel=4)
              return wait_func(
                  retry_state.attempt_number,
                  retry_state.seconds_since_start,
              )
      return wrapped_wait_func
docs: Wrap wait function to accept "retry_state" parameter.