import shutil import tempfile import uuid from huggingface_hub import CommitScheduler class ZipScheduler(CommitScheduler): def push_to_hub(self): with self.lock: if not any(self.folder_path.iterdir()): return archive_file = tempfile.NamedTemporaryFile(suffix=".zip") archive_name = archive_file.name.split(".")[0] # `make_archive` automatically append `.zip` shutil.make_archive(base_name=archive_name, format='zip', root_dir=self.folder_path) shutil.rmtree(self.folder_path, ignore_errors=True) self.folder_path.mkdir(parents=True, exist_ok=True) self.api.upload_file( repo_id=self.repo_id, repo_type=self.repo_type, revision=self.revision, path_in_repo=f"{uuid.uuid4()}.zip", path_or_fileobj=archive_file.name, ) archive_file.close()