@@ -354,16 +354,17 @@ def _worker_job(
354
354
status .nb_workers_get_upload_mode -= 1
355
355
356
356
elif job == WorkerJob .PREUPLOAD_LFS :
357
- item = items [0 ] # single item
358
357
try :
359
- _preupload_lfs (item , api = api , repo_id = repo_id , repo_type = repo_type , revision = revision )
360
- status .queue_commit .put (item )
358
+ _preupload_lfs (items , api = api , repo_id = repo_id , repo_type = repo_type , revision = revision )
359
+ for item in items :
360
+ status .queue_commit .put (item )
361
361
except KeyboardInterrupt :
362
362
raise
363
363
except Exception as e :
364
364
logger .error (f"Failed to preupload LFS: { e } " )
365
365
traceback .format_exc ()
366
- status .queue_preupload_lfs .put (item )
366
+ for item in items :
367
+ status .queue_preupload_lfs .put (item )
367
368
368
369
with status .lock :
369
370
status .nb_workers_preupload_lfs -= 1
@@ -422,7 +423,7 @@ def _determine_next_job(status: LargeUploadStatus) -> Optional[Tuple[WorkerJob,
422
423
elif status .queue_preupload_lfs .qsize () > 0 and status .nb_workers_preupload_lfs == 0 :
423
424
status .nb_workers_preupload_lfs += 1
424
425
logger .debug ("Job: preupload LFS (no other worker preuploading LFS)" )
425
- return (WorkerJob .PREUPLOAD_LFS , _get_one (status .queue_preupload_lfs ))
426
+ return (WorkerJob .PREUPLOAD_LFS , _get_n (status .queue_preupload_lfs , 100 ))
426
427
427
428
# 5. Compute sha256 if at least 1 file and no worker is computing sha256
428
429
elif status .queue_sha256 .qsize () > 0 and status .nb_workers_sha256 == 0 :
@@ -443,7 +444,7 @@ def _determine_next_job(status: LargeUploadStatus) -> Optional[Tuple[WorkerJob,
443
444
):
444
445
status .nb_workers_preupload_lfs += 1
445
446
logger .debug ("Job: preupload LFS" )
446
- return (WorkerJob .PREUPLOAD_LFS , _get_one (status .queue_preupload_lfs ))
447
+ return (WorkerJob .PREUPLOAD_LFS , _get_n (status .queue_preupload_lfs , 100 ))
447
448
448
449
# 8. Compute sha256 if at least 1 file
449
450
elif status .queue_sha256 .qsize () > 0 :
@@ -531,19 +532,20 @@ def _get_upload_mode(items: List[JOB_ITEM_T], api: "HfApi", repo_id: str, repo_t
531
532
metadata .save (paths )
532
533
533
534
534
- def _preupload_lfs (item : JOB_ITEM_T , api : "HfApi" , repo_id : str , repo_type : str , revision : str ) -> None :
535
+ def _preupload_lfs (items : List [ JOB_ITEM_T ] , api : "HfApi" , repo_id : str , repo_type : str , revision : str ) -> None :
535
536
"""Preupload LFS file and update metadata."""
536
- paths , metadata = item
537
- addition = _build_hacky_operation (item )
537
+ additions = [_build_hacky_operation (item ) for item in items ]
538
538
api .preupload_lfs_files (
539
539
repo_id = repo_id ,
540
540
repo_type = repo_type ,
541
541
revision = revision ,
542
- additions = [ addition ] ,
542
+ additions = additions ,
543
543
)
544
544
545
- metadata .is_uploaded = True
546
- metadata .save (paths )
545
+ for item in items :
546
+ paths , metadata = item
547
+ metadata .is_uploaded = True
548
+ metadata .save (paths )
547
549
548
550
549
551
def _commit (items : List [JOB_ITEM_T ], api : "HfApi" , repo_id : str , repo_type : str , revision : str ) -> None :
0 commit comments