code: def stash(self, path):
          
          if os.path.isdir(path):
              new_path = self._get_directory_stash(path)
          else:
              new_path = self._get_file_stash(path)
  
          self._moves.append((path, new_path))
          if os.path.isdir(path) and os.path.isdir(new_path):
              # If we're moving a directory, we need to
              # remove the destination first or else it will be
              # moved to inside the existing directory.
              # We just created new_path ourselves, so it will
              # be removable.
              os.rmdir(new_path)
          renames(path, new_path)
          return new_path
docs: Stashes the directory or file and returns its new location.