More concise scheduler

#2
by Wauplin HF Staff - opened
Files changed (1) hide show
  1. scheduler.py +14 -18
scheduler.py CHANGED
@@ -1,7 +1,4 @@
1
- import pathlib
2
- import shlex
3
  import shutil
4
- import subprocess
5
  import tempfile
6
  import uuid
7
 
@@ -11,21 +8,20 @@ from huggingface_hub import CommitScheduler
11
  class ZipScheduler(CommitScheduler):
12
  def push_to_hub(self):
13
  with self.lock:
14
- paths = sorted(self.folder_path.glob('*'))
15
- if not paths:
16
  return
17
- with tempfile.TemporaryDirectory() as tmpdir:
18
- archive_path = pathlib.Path(tmpdir) / f'{uuid.uuid4()}.tar.gz'
19
- subprocess.run(shlex.split(
20
- f'tar czf {archive_path} {self.folder_path.name}'),
21
- cwd=self.folder_path.parent)
22
- self.api.upload_file(
23
- repo_id=self.repo_id,
24
- repo_type=self.repo_type,
25
- revision=self.revision,
26
- path_in_repo=archive_path.name,
27
- path_or_fileobj=archive_path,
28
- token=self.token,
29
- )
30
  shutil.rmtree(self.folder_path, ignore_errors=True)
31
  self.folder_path.mkdir(parents=True, exist_ok=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import shutil
 
2
  import tempfile
3
  import uuid
4
 
 
8
  class ZipScheduler(CommitScheduler):
9
  def push_to_hub(self):
10
  with self.lock:
11
+ if not any(self.folder_path.iterdir()):
 
12
  return
13
+ archive_file = tempfile.NamedTemporaryFile(suffix=".zip")
14
+ archive_name = archive_file.name.split(".")[0] # `make_archive` automatically append `.zip`
15
+ shutil.make_archive(base_name=archive_name, format='zip', root_dir=self.folder_path)
 
 
 
 
 
 
 
 
 
 
16
  shutil.rmtree(self.folder_path, ignore_errors=True)
17
  self.folder_path.mkdir(parents=True, exist_ok=True)
18
+
19
+ self.api.upload_file(
20
+ repo_id=self.repo_id,
21
+ repo_type=self.repo_type,
22
+ revision=self.revision,
23
+ path_in_repo=f"{uuid.uuid4()}.zip",
24
+ path_or_fileobj=archive_file.name,
25
+ )
26
+
27
+ archive_file.close()