huggingface-hub 0.25.0rc0__tar.gz → 0.25.0rc1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of huggingface-hub might be problematic. Click here for more details.
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/PKG-INFO +1 -1
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/__init__.py +1 -1
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_upload_large_folder.py +59 -11
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/hf_api.py +28 -3
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub.egg-info/PKG-INFO +1 -1
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/LICENSE +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/MANIFEST.in +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/README.md +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/pyproject.toml +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/setup.cfg +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/setup.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_commit_api.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_commit_scheduler.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_inference_endpoints.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_local_folder.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_login.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_multi_commits.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_snapshot_download.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_space_api.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_tensorboard_logger.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_webhooks_payload.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_webhooks_server.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/__init__.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/_cli_utils.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/delete_cache.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/download.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/env.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/huggingface_cli.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/lfs.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/repo_files.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/scan_cache.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/tag.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/upload.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/upload_large_folder.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/user.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/version.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/community.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/constants.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/errors.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/fastai_utils.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/file_download.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/hf_file_system.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/hub_mixin.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/__init__.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_client.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_common.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/__init__.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/_async_client.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/__init__.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/audio_classification.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/audio_to_audio.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/automatic_speech_recognition.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/base.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/chat_completion.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/depth_estimation.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/document_question_answering.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/feature_extraction.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/fill_mask.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/image_classification.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/image_segmentation.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/image_to_image.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/image_to_text.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/object_detection.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/question_answering.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/sentence_similarity.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/summarization.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/table_question_answering.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/text2text_generation.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/text_classification.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/text_generation.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/text_to_audio.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/text_to_image.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/token_classification.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/translation.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/video_classification.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/visual_question_answering.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/zero_shot_classification.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/zero_shot_image_classification.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_generated/types/zero_shot_object_detection.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_templating.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference_api.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/keras_mixin.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/lfs.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/repocard.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/repocard_data.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/repository.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/serialization/__init__.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/serialization/_base.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/serialization/_tensorflow.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/serialization/_torch.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/templates/datasetcard_template.md +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/templates/modelcard_template.md +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/__init__.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_cache_assets.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_cache_manager.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_chunk_utils.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_datetime.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_deprecation.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_experimental.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_fixes.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_git_credential.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_headers.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_hf_folder.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_http.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_lfs.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_pagination.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_paths.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_runtime.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_safetensors.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_subprocess.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_telemetry.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_token.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_typing.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_validators.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/endpoint_helpers.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/insecure_hashlib.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/logging.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/sha.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/tqdm.py +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub.egg-info/SOURCES.txt +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub.egg-info/dependency_links.txt +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub.egg-info/entry_points.txt +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub.egg-info/requires.txt +0 -0
- {huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: huggingface_hub
|
|
3
|
-
Version: 0.25.
|
|
3
|
+
Version: 0.25.0rc1
|
|
4
4
|
Summary: Client library to download and publish models, datasets and other repos on the huggingface.co hub
|
|
5
5
|
Home-page: https://github.com/huggingface/huggingface_hub
|
|
6
6
|
Author: Hugging Face, Inc.
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_upload_large_folder.py
RENAMED
|
@@ -41,6 +41,8 @@ if TYPE_CHECKING:
|
|
|
41
41
|
logger = logging.getLogger(__name__)
|
|
42
42
|
|
|
43
43
|
WAITING_TIME_IF_NO_TASKS = 10 # seconds
|
|
44
|
+
MAX_NB_REGULAR_FILES_PER_COMMIT = 75
|
|
45
|
+
MAX_NB_LFS_FILES_PER_COMMIT = 150
|
|
44
46
|
|
|
45
47
|
|
|
46
48
|
def upload_large_folder_internal(
|
|
@@ -373,17 +375,18 @@ def _determine_next_job(status: LargeUploadStatus) -> Optional[Tuple[WorkerJob,
|
|
|
373
375
|
if (
|
|
374
376
|
status.nb_workers_commit == 0
|
|
375
377
|
and status.queue_commit.qsize() > 0
|
|
376
|
-
and
|
|
378
|
+
and status.last_commit_attempt is not None
|
|
379
|
+
and time.time() - status.last_commit_attempt > 5 * 60
|
|
377
380
|
):
|
|
378
381
|
status.nb_workers_commit += 1
|
|
379
382
|
logger.debug("Job: commit (more than 5 minutes since last commit attempt)")
|
|
380
|
-
return (WorkerJob.COMMIT,
|
|
383
|
+
return (WorkerJob.COMMIT, _get_items_to_commit(status.queue_commit))
|
|
381
384
|
|
|
382
|
-
# 2. Commit if at least
|
|
383
|
-
elif status.nb_workers_commit == 0 and status.queue_commit.qsize() >=
|
|
385
|
+
# 2. Commit if at least 100 files are ready to commit
|
|
386
|
+
elif status.nb_workers_commit == 0 and status.queue_commit.qsize() >= 150:
|
|
384
387
|
status.nb_workers_commit += 1
|
|
385
|
-
logger.debug("Job: commit (>
|
|
386
|
-
return (WorkerJob.COMMIT,
|
|
388
|
+
logger.debug("Job: commit (>100 files ready)")
|
|
389
|
+
return (WorkerJob.COMMIT, _get_items_to_commit(status.queue_commit))
|
|
387
390
|
|
|
388
391
|
# 3. Get upload mode if at least 10 files
|
|
389
392
|
elif status.queue_get_upload_mode.qsize() >= 10:
|
|
@@ -430,18 +433,39 @@ def _determine_next_job(status: LargeUploadStatus) -> Optional[Tuple[WorkerJob,
|
|
|
430
433
|
logger.debug("Job: get upload mode")
|
|
431
434
|
return (WorkerJob.GET_UPLOAD_MODE, _get_n(status.queue_get_upload_mode, 50))
|
|
432
435
|
|
|
433
|
-
# 10. Commit if at least 1 file
|
|
434
|
-
elif
|
|
436
|
+
# 10. Commit if at least 1 file and 1 min since last commit attempt
|
|
437
|
+
elif (
|
|
438
|
+
status.nb_workers_commit == 0
|
|
439
|
+
and status.queue_commit.qsize() > 0
|
|
440
|
+
and status.last_commit_attempt is not None
|
|
441
|
+
and time.time() - status.last_commit_attempt > 1 * 60
|
|
442
|
+
):
|
|
443
|
+
status.nb_workers_commit += 1
|
|
444
|
+
logger.debug("Job: commit (1 min since last commit attempt)")
|
|
445
|
+
return (WorkerJob.COMMIT, _get_items_to_commit(status.queue_commit))
|
|
446
|
+
|
|
447
|
+
# 11. Commit if at least 1 file all other queues are empty and all workers are waiting
|
|
448
|
+
# e.g. when it's the last commit
|
|
449
|
+
elif (
|
|
450
|
+
status.nb_workers_commit == 0
|
|
451
|
+
and status.queue_commit.qsize() > 0
|
|
452
|
+
and status.queue_sha256.qsize() == 0
|
|
453
|
+
and status.queue_get_upload_mode.qsize() == 0
|
|
454
|
+
and status.queue_preupload_lfs.qsize() == 0
|
|
455
|
+
and status.nb_workers_sha256 == 0
|
|
456
|
+
and status.nb_workers_get_upload_mode == 0
|
|
457
|
+
and status.nb_workers_preupload_lfs == 0
|
|
458
|
+
):
|
|
435
459
|
status.nb_workers_commit += 1
|
|
436
460
|
logger.debug("Job: commit")
|
|
437
|
-
return (WorkerJob.COMMIT,
|
|
461
|
+
return (WorkerJob.COMMIT, _get_items_to_commit(status.queue_commit))
|
|
438
462
|
|
|
439
|
-
#
|
|
463
|
+
# 12. If all queues are empty, exit
|
|
440
464
|
elif all(metadata.is_committed or metadata.should_ignore for _, metadata in status.items):
|
|
441
465
|
logger.info("All files have been processed! Exiting worker.")
|
|
442
466
|
return None
|
|
443
467
|
|
|
444
|
-
#
|
|
468
|
+
# 13. If no task is available, wait
|
|
445
469
|
else:
|
|
446
470
|
status.nb_workers_waiting += 1
|
|
447
471
|
logger.debug(f"No task available, waiting... ({WAITING_TIME_IF_NO_TASKS}s)")
|
|
@@ -547,6 +571,30 @@ def _get_n(queue: "queue.Queue[JOB_ITEM_T]", n: int) -> List[JOB_ITEM_T]:
|
|
|
547
571
|
return [queue.get() for _ in range(min(queue.qsize(), n))]
|
|
548
572
|
|
|
549
573
|
|
|
574
|
+
def _get_items_to_commit(queue: "queue.Queue[JOB_ITEM_T]") -> List[JOB_ITEM_T]:
|
|
575
|
+
"""Special case for commit job: the number of items to commit depends on the type of files."""
|
|
576
|
+
# Can take at most 50 regular files and/or 100 LFS files in a single commit
|
|
577
|
+
items: List[JOB_ITEM_T] = []
|
|
578
|
+
nb_lfs, nb_regular = 0, 0
|
|
579
|
+
while True:
|
|
580
|
+
# If empty queue => commit everything
|
|
581
|
+
if queue.qsize() == 0:
|
|
582
|
+
return items
|
|
583
|
+
|
|
584
|
+
# If we have enough items => commit them
|
|
585
|
+
if nb_lfs >= MAX_NB_LFS_FILES_PER_COMMIT or nb_regular >= MAX_NB_REGULAR_FILES_PER_COMMIT:
|
|
586
|
+
return items
|
|
587
|
+
|
|
588
|
+
# Else, get a new item and increase counter
|
|
589
|
+
item = queue.get()
|
|
590
|
+
items.append(item)
|
|
591
|
+
_, metadata = item
|
|
592
|
+
if metadata.upload_mode == "lfs":
|
|
593
|
+
nb_lfs += 1
|
|
594
|
+
else:
|
|
595
|
+
nb_regular += 1
|
|
596
|
+
|
|
597
|
+
|
|
550
598
|
def _print_overwrite(report: str) -> None:
|
|
551
599
|
"""Print a report, overwriting the previous lines.
|
|
552
600
|
|
|
@@ -136,6 +136,7 @@ from .utils import (
|
|
|
136
136
|
validate_hf_hub_args,
|
|
137
137
|
)
|
|
138
138
|
from .utils import tqdm as hf_tqdm
|
|
139
|
+
from .utils._deprecation import _deprecate_method
|
|
139
140
|
from .utils._typing import CallableT
|
|
140
141
|
from .utils.endpoint_helpers import _is_emission_within_threshold
|
|
141
142
|
|
|
@@ -1405,6 +1406,10 @@ class User:
|
|
|
1405
1406
|
Number of upvotes received by the user.
|
|
1406
1407
|
num_likes (`int`, *optional*):
|
|
1407
1408
|
Number of likes given by the user.
|
|
1409
|
+
num_following (`int`, *optional*):
|
|
1410
|
+
Number of users this user is following.
|
|
1411
|
+
num_followers (`int`, *optional*):
|
|
1412
|
+
Number of users following this user.
|
|
1408
1413
|
orgs (list of [`Organization`]):
|
|
1409
1414
|
List of organizations the user is part of.
|
|
1410
1415
|
"""
|
|
@@ -1423,6 +1428,8 @@ class User:
|
|
|
1423
1428
|
num_papers: Optional[int] = None
|
|
1424
1429
|
num_upvotes: Optional[int] = None
|
|
1425
1430
|
num_likes: Optional[int] = None
|
|
1431
|
+
num_following: Optional[int] = None
|
|
1432
|
+
num_followers: Optional[int] = None
|
|
1426
1433
|
orgs: List[Organization] = field(default_factory=list)
|
|
1427
1434
|
|
|
1428
1435
|
def __init__(self, **kwargs) -> None:
|
|
@@ -1439,6 +1446,8 @@ class User:
|
|
|
1439
1446
|
self.num_papers = kwargs.pop("numPapers", None)
|
|
1440
1447
|
self.num_upvotes = kwargs.pop("numUpvotes", None)
|
|
1441
1448
|
self.num_likes = kwargs.pop("numLikes", None)
|
|
1449
|
+
self.num_following = kwargs.pop("numFollowing", None)
|
|
1450
|
+
self.num_followers = kwargs.pop("numFollowers", None)
|
|
1442
1451
|
self.user_type = kwargs.pop("type", None)
|
|
1443
1452
|
self.orgs = [Organization(**org) for org in kwargs.pop("orgs", [])]
|
|
1444
1453
|
|
|
@@ -4010,6 +4019,9 @@ class HfApi:
|
|
|
4010
4019
|
|
|
4011
4020
|
@experimental
|
|
4012
4021
|
@validate_hf_hub_args
|
|
4022
|
+
@_deprecate_method(
|
|
4023
|
+
version="0.27", message="This is an experimental feature. Please use `upload_large_folder` instead."
|
|
4024
|
+
)
|
|
4013
4025
|
def create_commits_on_pr(
|
|
4014
4026
|
self,
|
|
4015
4027
|
*,
|
|
@@ -4848,8 +4860,10 @@ class HfApi:
|
|
|
4848
4860
|
new files. This is useful if you don't know which files have already been uploaded.
|
|
4849
4861
|
Note: to avoid discrepancies the `.gitattributes` file is not deleted even if it matches the pattern.
|
|
4850
4862
|
multi_commits (`bool`):
|
|
4863
|
+
Deprecated. For large uploads, use `upload_large_folder` instead.
|
|
4851
4864
|
If True, changes are pushed to a PR using a multi-commit process. Defaults to `False`.
|
|
4852
4865
|
multi_commits_verbose (`bool`):
|
|
4866
|
+
Deprecated. For large uploads, use `upload_large_folder` instead.
|
|
4853
4867
|
If True and `multi_commits` is used, more information will be displayed to the user.
|
|
4854
4868
|
run_as_future (`bool`, *optional*):
|
|
4855
4869
|
Whether or not to run this method in the background. Background jobs are run sequentially without
|
|
@@ -5342,7 +5356,7 @@ class HfApi:
|
|
|
5342
5356
|
|
|
5343
5357
|
Order of priority:
|
|
5344
5358
|
1. Commit if more than 5 minutes since last commit attempt (and at least 1 file).
|
|
5345
|
-
2. Commit if at least
|
|
5359
|
+
2. Commit if at least 150 files are ready to commit.
|
|
5346
5360
|
3. Get upload mode if at least 10 files have been hashed.
|
|
5347
5361
|
4. Pre-upload LFS file if at least 1 file and no worker is pre-uploading.
|
|
5348
5362
|
5. Hash file if at least 1 file and no worker is hashing.
|
|
@@ -5350,7 +5364,8 @@ class HfApi:
|
|
|
5350
5364
|
7. Pre-upload LFS file if at least 1 file (exception: if hf_transfer is enabled, only 1 worker can preupload LFS at a time).
|
|
5351
5365
|
8. Hash file if at least 1 file to hash.
|
|
5352
5366
|
9. Get upload mode if at least 1 file to get upload mode.
|
|
5353
|
-
10. Commit if at least 1 file to commit.
|
|
5367
|
+
10. Commit if at least 1 file to commit and at least 1 min since last commit attempt.
|
|
5368
|
+
11. Commit if at least 1 file to commit and all other queues are empty.
|
|
5354
5369
|
|
|
5355
5370
|
Special rules:
|
|
5356
5371
|
- If `hf_transfer` is enabled, only 1 LFS uploader at a time. Otherwise the CPU would be bloated by `hf_transfer`.
|
|
@@ -9463,14 +9478,24 @@ class HfApi:
|
|
|
9463
9478
|
repo_type=repo_type,
|
|
9464
9479
|
token=token,
|
|
9465
9480
|
)
|
|
9481
|
+
if len(filtered_repo_objects) > 30:
|
|
9482
|
+
logger.info(
|
|
9483
|
+
"It seems you are trying to upload a large folder at once. This might take some time and then fail if "
|
|
9484
|
+
"the folder is too large. For such cases, it is recommended to upload in smaller batches or to use "
|
|
9485
|
+
"`HfApi().upload_large_folder(...)`/`huggingface-cli upload-large-folder` instead. For more details, "
|
|
9486
|
+
"check out https://huggingface.co/docs/huggingface_hub/main/en/guides/upload#upload-a-large-folder."
|
|
9487
|
+
)
|
|
9466
9488
|
|
|
9467
|
-
|
|
9489
|
+
logger.info(f"Start hashing {len(filtered_repo_objects)} files.")
|
|
9490
|
+
operations = [
|
|
9468
9491
|
CommitOperationAdd(
|
|
9469
9492
|
path_or_fileobj=relpath_to_abspath[relpath], # absolute path on disk
|
|
9470
9493
|
path_in_repo=prefix + relpath, # "absolute" path in repo
|
|
9471
9494
|
)
|
|
9472
9495
|
for relpath in filtered_repo_objects
|
|
9473
9496
|
]
|
|
9497
|
+
logger.info(f"Finished hashing {len(filtered_repo_objects)} files.")
|
|
9498
|
+
return operations
|
|
9474
9499
|
|
|
9475
9500
|
def _validate_yaml(self, content: str, *, repo_type: Optional[str] = None, token: Union[bool, str, None] = None):
|
|
9476
9501
|
"""
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: huggingface-hub
|
|
3
|
-
Version: 0.25.
|
|
3
|
+
Version: 0.25.0rc1
|
|
4
4
|
Summary: Client library to download and publish models, datasets and other repos on the huggingface.co hub
|
|
5
5
|
Home-page: https://github.com/huggingface/huggingface_hub
|
|
6
6
|
Author: Hugging Face, Inc.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_commit_scheduler.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_inference_endpoints.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_local_folder.py
RENAMED
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_multi_commits.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_snapshot_download.py
RENAMED
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_tensorboard_logger.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_webhooks_payload.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/_webhooks_server.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/__init__.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/_cli_utils.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/delete_cache.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/download.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/repo_files.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/scan_cache.py
RENAMED
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/upload.py
RENAMED
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/user.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/commands/version.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/file_download.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/hf_file_system.py
RENAMED
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/__init__.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_client.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_common.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference/_templating.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/inference_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/repocard_data.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/serialization/_base.py
RENAMED
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/serialization/_torch.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/__init__.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_cache_assets.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_cache_manager.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_chunk_utils.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_datetime.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_deprecation.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_experimental.py
RENAMED
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_git_credential.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_headers.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_hf_folder.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_pagination.py
RENAMED
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_runtime.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_safetensors.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_subprocess.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_telemetry.py
RENAMED
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_typing.py
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/_validators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub/utils/logging.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub.egg-info/requires.txt
RENAMED
|
File without changes
|
{huggingface_hub-0.25.0rc0 → huggingface_hub-0.25.0rc1}/src/huggingface_hub.egg-info/top_level.txt
RENAMED
|
File without changes
|