File size: 925 Bytes
7252e54
 
 
 
 
 
 
 
 
 
4e223fe
7252e54
a4df400
 
 
7252e54
 
4e223fe
 
 
 
 
 
a4df400
4e223fe
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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()