docs: def rewind(self, stop):
          """
          Used if you need to rewind stack to a particular frame.
  
          :param predicate: Callable used to stop unwind, e.g.:
  
              .. code::
  
                  def stop(frame):
                      return True
  
          :return: A context object used to restore the stack.
          """
          for i, frame in enumerate(reversed(self.stack)):
              if stop(frame):
                  frames = self.stack[-i:]
                  break
          else:
              raise RewindDidNotStop()
          del self.stack[-i:]
          if self.src_path is not None:
              for frame in frames:
                  if 'src_path' in frame:
                      break
                  if 'src' in frame:
                      self.src_path.pop()
          return Close(functools.partial(self.restore, frames))