code: def wraps(self, f):
          
          @_utils.wraps(f)
          def wrapped_f(*args, **kw):
              return self.call(f, *args, **kw)
  
          def retry_with(*args, **kwargs):
              return self.copy(*args, **kwargs).wraps(f)
  
          wrapped_f.retry = self
          wrapped_f.retry_with = retry_with
  
          return wrapped_f
docs: Wrap a function for retrying.
  
          :param f: A function to wraps for retrying.