huggingface-hub 1.0.0rc2__py3-none-any.whl → 1.0.0rc3__py3-none-any.whl
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/__init__.py +4 -7
- huggingface_hub/_login.py +2 -2
- huggingface_hub/_snapshot_download.py +119 -21
- huggingface_hub/_upload_large_folder.py +1 -2
- huggingface_hub/cli/_cli_utils.py +12 -6
- huggingface_hub/cli/download.py +32 -7
- huggingface_hub/dataclasses.py +132 -3
- huggingface_hub/errors.py +4 -0
- huggingface_hub/file_download.py +216 -17
- huggingface_hub/hf_api.py +127 -14
- huggingface_hub/hf_file_system.py +38 -21
- huggingface_hub/inference/_client.py +3 -2
- huggingface_hub/inference/_generated/_async_client.py +3 -2
- huggingface_hub/inference/_generated/types/image_to_image.py +6 -2
- huggingface_hub/inference/_mcp/mcp_client.py +4 -3
- huggingface_hub/inference/_providers/__init__.py +5 -0
- huggingface_hub/inference/_providers/_common.py +1 -0
- huggingface_hub/inference/_providers/fal_ai.py +2 -0
- huggingface_hub/inference/_providers/zai_org.py +17 -0
- huggingface_hub/utils/__init__.py +1 -2
- huggingface_hub/utils/_cache_manager.py +1 -1
- huggingface_hub/utils/_http.py +10 -38
- huggingface_hub/utils/_validators.py +2 -2
- {huggingface_hub-1.0.0rc2.dist-info → huggingface_hub-1.0.0rc3.dist-info}/METADATA +1 -1
- {huggingface_hub-1.0.0rc2.dist-info → huggingface_hub-1.0.0rc3.dist-info}/RECORD +29 -43
- {huggingface_hub-1.0.0rc2.dist-info → huggingface_hub-1.0.0rc3.dist-info}/entry_points.txt +0 -1
- huggingface_hub/commands/__init__.py +0 -27
- huggingface_hub/commands/_cli_utils.py +0 -74
- huggingface_hub/commands/delete_cache.py +0 -476
- huggingface_hub/commands/download.py +0 -195
- huggingface_hub/commands/env.py +0 -39
- huggingface_hub/commands/huggingface_cli.py +0 -65
- huggingface_hub/commands/lfs.py +0 -200
- huggingface_hub/commands/repo.py +0 -151
- huggingface_hub/commands/repo_files.py +0 -132
- huggingface_hub/commands/scan_cache.py +0 -183
- huggingface_hub/commands/tag.py +0 -159
- huggingface_hub/commands/upload.py +0 -318
- huggingface_hub/commands/upload_large_folder.py +0 -131
- huggingface_hub/commands/user.py +0 -207
- huggingface_hub/commands/version.py +0 -40
- {huggingface_hub-1.0.0rc2.dist-info → huggingface_hub-1.0.0rc3.dist-info}/LICENSE +0 -0
- {huggingface_hub-1.0.0rc2.dist-info → huggingface_hub-1.0.0rc3.dist-info}/WHEEL +0 -0
- {huggingface_hub-1.0.0rc2.dist-info → huggingface_hub-1.0.0rc3.dist-info}/top_level.txt +0 -0
|
@@ -378,6 +378,7 @@ class HfFileSystem(fsspec.AbstractFileSystem):
|
|
|
378
378
|
refresh: bool = False,
|
|
379
379
|
revision: Optional[str] = None,
|
|
380
380
|
expand_info: bool = False,
|
|
381
|
+
maxdepth: Optional[int] = None,
|
|
381
382
|
):
|
|
382
383
|
resolved_path = self.resolve_path(path, revision=revision)
|
|
383
384
|
path = resolved_path.unresolve()
|
|
@@ -397,19 +398,25 @@ class HfFileSystem(fsspec.AbstractFileSystem):
|
|
|
397
398
|
if recursive:
|
|
398
399
|
# Use BFS to traverse the cache and build the "recursive "output
|
|
399
400
|
# (The Hub uses a so-called "tree first" strategy for the tree endpoint but we sort the output to follow the spec so the result is (eventually) the same)
|
|
401
|
+
depth = 2
|
|
400
402
|
dirs_to_visit = deque(
|
|
401
|
-
[path_info for path_info in cached_path_infos if path_info["type"] == "directory"]
|
|
403
|
+
[(depth, path_info) for path_info in cached_path_infos if path_info["type"] == "directory"]
|
|
402
404
|
)
|
|
403
405
|
while dirs_to_visit:
|
|
404
|
-
dir_info = dirs_to_visit.popleft()
|
|
405
|
-
if
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
406
|
+
depth, dir_info = dirs_to_visit.popleft()
|
|
407
|
+
if maxdepth is None or depth <= maxdepth:
|
|
408
|
+
if dir_info["name"] not in self.dircache:
|
|
409
|
+
dirs_not_in_dircache.append(dir_info["name"])
|
|
410
|
+
else:
|
|
411
|
+
cached_path_infos = self.dircache[dir_info["name"]]
|
|
412
|
+
out.extend(cached_path_infos)
|
|
413
|
+
dirs_to_visit.extend(
|
|
414
|
+
[
|
|
415
|
+
(depth + 1, path_info)
|
|
416
|
+
for path_info in cached_path_infos
|
|
417
|
+
if path_info["type"] == "directory"
|
|
418
|
+
]
|
|
419
|
+
)
|
|
413
420
|
|
|
414
421
|
dirs_not_expanded = []
|
|
415
422
|
if expand_info:
|
|
@@ -428,6 +435,9 @@ class HfFileSystem(fsspec.AbstractFileSystem):
|
|
|
428
435
|
or common_prefix in chain(dirs_not_in_dircache, dirs_not_expanded)
|
|
429
436
|
else self._parent(common_prefix)
|
|
430
437
|
)
|
|
438
|
+
if maxdepth is not None:
|
|
439
|
+
common_path_depth = common_path[len(path) :].count("/")
|
|
440
|
+
maxdepth -= common_path_depth
|
|
431
441
|
out = [o for o in out if not o["name"].startswith(common_path + "/")]
|
|
432
442
|
for cached_path in self.dircache:
|
|
433
443
|
if cached_path.startswith(common_path + "/"):
|
|
@@ -440,6 +450,7 @@ class HfFileSystem(fsspec.AbstractFileSystem):
|
|
|
440
450
|
refresh=True,
|
|
441
451
|
revision=revision,
|
|
442
452
|
expand_info=expand_info,
|
|
453
|
+
maxdepth=maxdepth,
|
|
443
454
|
)
|
|
444
455
|
)
|
|
445
456
|
else:
|
|
@@ -452,9 +463,10 @@ class HfFileSystem(fsspec.AbstractFileSystem):
|
|
|
452
463
|
repo_type=resolved_path.repo_type,
|
|
453
464
|
)
|
|
454
465
|
for path_info in tree:
|
|
466
|
+
cache_path = root_path + "/" + path_info.path
|
|
455
467
|
if isinstance(path_info, RepoFile):
|
|
456
468
|
cache_path_info = {
|
|
457
|
-
"name":
|
|
469
|
+
"name": cache_path,
|
|
458
470
|
"size": path_info.size,
|
|
459
471
|
"type": "file",
|
|
460
472
|
"blob_id": path_info.blob_id,
|
|
@@ -464,7 +476,7 @@ class HfFileSystem(fsspec.AbstractFileSystem):
|
|
|
464
476
|
}
|
|
465
477
|
else:
|
|
466
478
|
cache_path_info = {
|
|
467
|
-
"name":
|
|
479
|
+
"name": cache_path,
|
|
468
480
|
"size": 0,
|
|
469
481
|
"type": "directory",
|
|
470
482
|
"tree_id": path_info.tree_id,
|
|
@@ -472,7 +484,9 @@ class HfFileSystem(fsspec.AbstractFileSystem):
|
|
|
472
484
|
}
|
|
473
485
|
parent_path = self._parent(cache_path_info["name"])
|
|
474
486
|
self.dircache.setdefault(parent_path, []).append(cache_path_info)
|
|
475
|
-
|
|
487
|
+
depth = cache_path[len(path) :].count("/")
|
|
488
|
+
if maxdepth is None or depth <= maxdepth:
|
|
489
|
+
out.append(cache_path_info)
|
|
476
490
|
return out
|
|
477
491
|
|
|
478
492
|
def walk(self, path: str, *args, **kwargs) -> Iterator[tuple[str, list[str], list[str]]]:
|
|
@@ -539,19 +553,22 @@ class HfFileSystem(fsspec.AbstractFileSystem):
|
|
|
539
553
|
Returns:
|
|
540
554
|
`Union[list[str], dict[str, dict[str, Any]]]`: List of paths or dict of file information.
|
|
541
555
|
"""
|
|
542
|
-
if maxdepth:
|
|
543
|
-
|
|
544
|
-
path, maxdepth=maxdepth, withdirs=withdirs, detail=detail, refresh=refresh, revision=revision, **kwargs
|
|
545
|
-
)
|
|
556
|
+
if maxdepth is not None and maxdepth < 1:
|
|
557
|
+
raise ValueError("maxdepth must be at least 1")
|
|
546
558
|
resolved_path = self.resolve_path(path, revision=revision)
|
|
547
559
|
path = resolved_path.unresolve()
|
|
548
560
|
try:
|
|
549
|
-
out = self._ls_tree(
|
|
561
|
+
out = self._ls_tree(
|
|
562
|
+
path, recursive=True, refresh=refresh, revision=resolved_path.revision, maxdepth=maxdepth, **kwargs
|
|
563
|
+
)
|
|
550
564
|
except EntryNotFoundError:
|
|
551
565
|
# Path could be a file
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
566
|
+
try:
|
|
567
|
+
if self.info(path, revision=revision, **kwargs)["type"] == "file":
|
|
568
|
+
out = {path: {}}
|
|
569
|
+
else:
|
|
570
|
+
out = {}
|
|
571
|
+
except FileNotFoundError:
|
|
555
572
|
out = {}
|
|
556
573
|
else:
|
|
557
574
|
if not withdirs:
|
|
@@ -135,7 +135,7 @@ class InferenceClient:
|
|
|
135
135
|
Note: for better compatibility with OpenAI's client, `model` has been aliased as `base_url`. Those 2
|
|
136
136
|
arguments are mutually exclusive. If a URL is passed as `model` or `base_url` for chat completion, the `(/v1)/chat/completions` suffix path will be appended to the URL.
|
|
137
137
|
provider (`str`, *optional*):
|
|
138
|
-
Name of the provider to use for inference. Can be `"black-forest-labs"`, `"cerebras"`, `"cohere"`, `"fal-ai"`, `"featherless-ai"`, `"fireworks-ai"`, `"groq"`, `"hf-inference"`, `"hyperbolic"`, `"nebius"`, `"novita"`, `"nscale"`, `"openai"`, `publicai`, `"replicate"`, `"sambanova"`, `"scaleway"` or `"
|
|
138
|
+
Name of the provider to use for inference. Can be `"black-forest-labs"`, `"cerebras"`, `"cohere"`, `"fal-ai"`, `"featherless-ai"`, `"fireworks-ai"`, `"groq"`, `"hf-inference"`, `"hyperbolic"`, `"nebius"`, `"novita"`, `"nscale"`, `"openai"`, `publicai`, `"replicate"`, `"sambanova"`, `"scaleway"`, `"together"` or `"zai-org"`.
|
|
139
139
|
Defaults to "auto" i.e. the first of the providers available for the model, sorted by the user's order in https://hf.co/settings/inference-providers.
|
|
140
140
|
If model is a URL or `base_url` is passed, then `provider` is not used.
|
|
141
141
|
token (`str`, *optional*):
|
|
@@ -1302,7 +1302,8 @@ class InferenceClient:
|
|
|
1302
1302
|
The model to use for inference. Can be a model ID hosted on the Hugging Face Hub or a URL to a deployed
|
|
1303
1303
|
Inference Endpoint. This parameter overrides the model defined at the instance level. Defaults to None.
|
|
1304
1304
|
target_size (`ImageToImageTargetSize`, *optional*):
|
|
1305
|
-
The size in
|
|
1305
|
+
The size in pixels of the output image. This parameter is only supported by some providers and for
|
|
1306
|
+
specific models. It will be ignored when unsupported.
|
|
1306
1307
|
|
|
1307
1308
|
Returns:
|
|
1308
1309
|
`Image`: The translated image.
|
|
@@ -126,7 +126,7 @@ class AsyncInferenceClient:
|
|
|
126
126
|
Note: for better compatibility with OpenAI's client, `model` has been aliased as `base_url`. Those 2
|
|
127
127
|
arguments are mutually exclusive. If a URL is passed as `model` or `base_url` for chat completion, the `(/v1)/chat/completions` suffix path will be appended to the URL.
|
|
128
128
|
provider (`str`, *optional*):
|
|
129
|
-
Name of the provider to use for inference. Can be `"black-forest-labs"`, `"cerebras"`, `"cohere"`, `"fal-ai"`, `"featherless-ai"`, `"fireworks-ai"`, `"groq"`, `"hf-inference"`, `"hyperbolic"`, `"nebius"`, `"novita"`, `"nscale"`, `"openai"`, `publicai`, `"replicate"`, `"sambanova"`, `"scaleway"` or `"
|
|
129
|
+
Name of the provider to use for inference. Can be `"black-forest-labs"`, `"cerebras"`, `"cohere"`, `"fal-ai"`, `"featherless-ai"`, `"fireworks-ai"`, `"groq"`, `"hf-inference"`, `"hyperbolic"`, `"nebius"`, `"novita"`, `"nscale"`, `"openai"`, `publicai`, `"replicate"`, `"sambanova"`, `"scaleway"`, `"together"` or `"zai-org"`.
|
|
130
130
|
Defaults to "auto" i.e. the first of the providers available for the model, sorted by the user's order in https://hf.co/settings/inference-providers.
|
|
131
131
|
If model is a URL or `base_url` is passed, then `provider` is not used.
|
|
132
132
|
token (`str`, *optional*):
|
|
@@ -1333,7 +1333,8 @@ class AsyncInferenceClient:
|
|
|
1333
1333
|
The model to use for inference. Can be a model ID hosted on the Hugging Face Hub or a URL to a deployed
|
|
1334
1334
|
Inference Endpoint. This parameter overrides the model defined at the instance level. Defaults to None.
|
|
1335
1335
|
target_size (`ImageToImageTargetSize`, *optional*):
|
|
1336
|
-
The size in
|
|
1336
|
+
The size in pixels of the output image. This parameter is only supported by some providers and for
|
|
1337
|
+
specific models. It will be ignored when unsupported.
|
|
1337
1338
|
|
|
1338
1339
|
Returns:
|
|
1339
1340
|
`Image`: The translated image.
|
|
@@ -10,7 +10,9 @@ from .base import BaseInferenceType, dataclass_with_extra
|
|
|
10
10
|
|
|
11
11
|
@dataclass_with_extra
|
|
12
12
|
class ImageToImageTargetSize(BaseInferenceType):
|
|
13
|
-
"""The size in
|
|
13
|
+
"""The size in pixels of the output image. This parameter is only supported by some
|
|
14
|
+
providers and for specific models. It will be ignored when unsupported.
|
|
15
|
+
"""
|
|
14
16
|
|
|
15
17
|
height: int
|
|
16
18
|
width: int
|
|
@@ -33,7 +35,9 @@ class ImageToImageParameters(BaseInferenceType):
|
|
|
33
35
|
prompt: Optional[str] = None
|
|
34
36
|
"""The text prompt to guide the image generation."""
|
|
35
37
|
target_size: Optional[ImageToImageTargetSize] = None
|
|
36
|
-
"""The size in
|
|
38
|
+
"""The size in pixels of the output image. This parameter is only supported by some
|
|
39
|
+
providers and for specific models. It will be ignored when unsupported.
|
|
40
|
+
"""
|
|
37
41
|
|
|
38
42
|
|
|
39
43
|
@dataclass_with_extra
|
|
@@ -155,7 +155,7 @@ class MCPClient:
|
|
|
155
155
|
from mcp import types as mcp_types
|
|
156
156
|
|
|
157
157
|
# Extract allowed_tools configuration if provided
|
|
158
|
-
allowed_tools = params.pop("allowed_tools",
|
|
158
|
+
allowed_tools = params.pop("allowed_tools", None)
|
|
159
159
|
|
|
160
160
|
# Determine server type and create appropriate parameters
|
|
161
161
|
if type == "stdio":
|
|
@@ -215,9 +215,10 @@ class MCPClient:
|
|
|
215
215
|
logger.debug("Connected to server with tools:", [tool.name for tool in response.tools])
|
|
216
216
|
|
|
217
217
|
# Filter tools based on allowed_tools configuration
|
|
218
|
-
filtered_tools =
|
|
218
|
+
filtered_tools = response.tools
|
|
219
219
|
|
|
220
|
-
if allowed_tools:
|
|
220
|
+
if allowed_tools is not None:
|
|
221
|
+
filtered_tools = [tool for tool in response.tools if tool.name in allowed_tools]
|
|
221
222
|
logger.debug(
|
|
222
223
|
f"Tool filtering applied. Using {len(filtered_tools)} of {len(response.tools)} available tools: {[tool.name for tool in filtered_tools]}"
|
|
223
224
|
)
|
|
@@ -41,6 +41,7 @@ from .replicate import ReplicateImageToImageTask, ReplicateTask, ReplicateTextTo
|
|
|
41
41
|
from .sambanova import SambanovaConversationalTask, SambanovaFeatureExtractionTask
|
|
42
42
|
from .scaleway import ScalewayConversationalTask, ScalewayFeatureExtractionTask
|
|
43
43
|
from .together import TogetherConversationalTask, TogetherTextGenerationTask, TogetherTextToImageTask
|
|
44
|
+
from .zai_org import ZaiConversationalTask
|
|
44
45
|
|
|
45
46
|
|
|
46
47
|
logger = logging.get_logger(__name__)
|
|
@@ -65,6 +66,7 @@ PROVIDER_T = Literal[
|
|
|
65
66
|
"sambanova",
|
|
66
67
|
"scaleway",
|
|
67
68
|
"together",
|
|
69
|
+
"zai-org",
|
|
68
70
|
]
|
|
69
71
|
|
|
70
72
|
PROVIDER_OR_POLICY_T = Union[PROVIDER_T, Literal["auto"]]
|
|
@@ -170,6 +172,9 @@ PROVIDERS: dict[PROVIDER_T, dict[str, TaskProviderHelper]] = {
|
|
|
170
172
|
"conversational": TogetherConversationalTask(),
|
|
171
173
|
"text-generation": TogetherTextGenerationTask(),
|
|
172
174
|
},
|
|
175
|
+
"zai-org": {
|
|
176
|
+
"conversational": ZaiConversationalTask(),
|
|
177
|
+
},
|
|
173
178
|
}
|
|
174
179
|
|
|
175
180
|
|
|
@@ -191,6 +191,8 @@ class FalAIImageToImageTask(FalAIQueueTask):
|
|
|
191
191
|
self, inputs: Any, parameters: dict, provider_mapping_info: InferenceProviderMapping
|
|
192
192
|
) -> Optional[dict]:
|
|
193
193
|
image_url = _as_url(inputs, default_mime_type="image/jpeg")
|
|
194
|
+
if "target_size" in parameters:
|
|
195
|
+
parameters["image_size"] = parameters.pop("target_size")
|
|
194
196
|
payload: dict[str, Any] = {
|
|
195
197
|
"image_url": image_url,
|
|
196
198
|
**filter_none(parameters),
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
|
|
3
|
+
from huggingface_hub.inference._providers._common import BaseConversationalTask
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ZaiConversationalTask(BaseConversationalTask):
|
|
7
|
+
def __init__(self):
|
|
8
|
+
super().__init__(provider="zai-org", base_url="https://api.z.ai")
|
|
9
|
+
|
|
10
|
+
def _prepare_headers(self, headers: Dict, api_key: str) -> Dict[str, Any]:
|
|
11
|
+
headers = super()._prepare_headers(headers, api_key)
|
|
12
|
+
headers["Accept-Language"] = "en-US,en"
|
|
13
|
+
headers["x-source-channel"] = "hugging_face"
|
|
14
|
+
return headers
|
|
15
|
+
|
|
16
|
+
def _prepare_route(self, mapped_model: str, api_key: str) -> str:
|
|
17
|
+
return "/api/paas/v4/chat/completions"
|
|
@@ -42,6 +42,7 @@ from ._cache_manager import (
|
|
|
42
42
|
CachedRevisionInfo,
|
|
43
43
|
DeleteCacheStrategy,
|
|
44
44
|
HFCacheInfo,
|
|
45
|
+
_format_size,
|
|
45
46
|
scan_cache_dir,
|
|
46
47
|
)
|
|
47
48
|
from ._chunk_utils import chunk_iterable
|
|
@@ -53,8 +54,6 @@ from ._headers import build_hf_headers, get_token_to_send
|
|
|
53
54
|
from ._http import (
|
|
54
55
|
ASYNC_CLIENT_FACTORY_T,
|
|
55
56
|
CLIENT_FACTORY_T,
|
|
56
|
-
HfHubAsyncTransport,
|
|
57
|
-
HfHubTransport,
|
|
58
57
|
close_session,
|
|
59
58
|
fix_hf_endpoint_in_url,
|
|
60
59
|
get_async_session,
|
|
@@ -24,7 +24,7 @@ from typing import Literal, Optional, Union
|
|
|
24
24
|
|
|
25
25
|
from huggingface_hub.errors import CacheNotFound, CorruptedCacheException
|
|
26
26
|
|
|
27
|
-
from ..
|
|
27
|
+
from ..cli._cli_utils import tabulate
|
|
28
28
|
from ..constants import HF_HUB_CACHE
|
|
29
29
|
from . import logging
|
|
30
30
|
|
huggingface_hub/utils/_http.py
CHANGED
|
@@ -69,49 +69,21 @@ REPO_API_REGEX = re.compile(
|
|
|
69
69
|
)
|
|
70
70
|
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
def hf_request_event_hook(request: httpx.Request) -> None:
|
|
73
73
|
"""
|
|
74
|
-
|
|
74
|
+
Event hook that will be used to make HTTP requests to the Hugging Face Hub.
|
|
75
75
|
|
|
76
76
|
What it does:
|
|
77
77
|
- Block requests if offline mode is enabled
|
|
78
78
|
- Add a request ID to the request headers
|
|
79
79
|
- Log the request if debug mode is enabled
|
|
80
80
|
"""
|
|
81
|
+
if constants.HF_HUB_OFFLINE:
|
|
82
|
+
raise OfflineModeIsEnabled(
|
|
83
|
+
f"Cannot reach {request.url}: offline mode is enabled. To disable it, please unset the `HF_HUB_OFFLINE` environment variable."
|
|
84
|
+
)
|
|
81
85
|
|
|
82
|
-
|
|
83
|
-
if constants.HF_HUB_OFFLINE:
|
|
84
|
-
raise OfflineModeIsEnabled(
|
|
85
|
-
f"Cannot reach {request.url}: offline mode is enabled. To disable it, please unset the `HF_HUB_OFFLINE` environment variable."
|
|
86
|
-
)
|
|
87
|
-
request_id = _add_request_id(request)
|
|
88
|
-
try:
|
|
89
|
-
return super().handle_request(request)
|
|
90
|
-
except httpx.RequestError as e:
|
|
91
|
-
if request_id is not None:
|
|
92
|
-
# Taken from https://stackoverflow.com/a/58270258
|
|
93
|
-
e.args = (*e.args, f"(Request ID: {request_id})")
|
|
94
|
-
raise
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
class HfHubAsyncTransport(httpx.AsyncHTTPTransport):
|
|
98
|
-
async def handle_async_request(self, request: httpx.Request) -> httpx.Response:
|
|
99
|
-
if constants.HF_HUB_OFFLINE:
|
|
100
|
-
raise OfflineModeIsEnabled(
|
|
101
|
-
f"Cannot reach {request.url}: offline mode is enabled. To disable it, please unset the `HF_HUB_OFFLINE` environment variable."
|
|
102
|
-
)
|
|
103
|
-
request_id = _add_request_id(request)
|
|
104
|
-
try:
|
|
105
|
-
return await super().handle_async_request(request)
|
|
106
|
-
except httpx.RequestError as e:
|
|
107
|
-
if request_id is not None:
|
|
108
|
-
# Taken from https://stackoverflow.com/a/58270258
|
|
109
|
-
e.args = (*e.args, f"(Request ID: {request_id})")
|
|
110
|
-
raise
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
def _add_request_id(request: httpx.Request) -> Optional[str]:
|
|
114
|
-
# Add random request ID => easier for server-side debug
|
|
86
|
+
# Add random request ID => easier for server-side debugging
|
|
115
87
|
if X_AMZN_TRACE_ID not in request.headers:
|
|
116
88
|
request.headers[X_AMZN_TRACE_ID] = request.headers.get(X_REQUEST_ID) or str(uuid.uuid4())
|
|
117
89
|
request_id = request.headers.get(X_AMZN_TRACE_ID)
|
|
@@ -135,7 +107,7 @@ def default_client_factory() -> httpx.Client:
|
|
|
135
107
|
Factory function to create a `httpx.Client` with the default transport.
|
|
136
108
|
"""
|
|
137
109
|
return httpx.Client(
|
|
138
|
-
|
|
110
|
+
event_hooks={"request": [hf_request_event_hook]},
|
|
139
111
|
follow_redirects=True,
|
|
140
112
|
timeout=httpx.Timeout(constants.DEFAULT_REQUEST_TIMEOUT, write=60.0),
|
|
141
113
|
)
|
|
@@ -146,7 +118,7 @@ def default_async_client_factory() -> httpx.AsyncClient:
|
|
|
146
118
|
Factory function to create a `httpx.AsyncClient` with the default transport.
|
|
147
119
|
"""
|
|
148
120
|
return httpx.AsyncClient(
|
|
149
|
-
|
|
121
|
+
event_hooks={"request": [hf_request_event_hook]},
|
|
150
122
|
follow_redirects=True,
|
|
151
123
|
timeout=httpx.Timeout(constants.DEFAULT_REQUEST_TIMEOUT, write=60.0),
|
|
152
124
|
)
|
|
@@ -232,7 +204,7 @@ def close_session() -> None:
|
|
|
232
204
|
"""
|
|
233
205
|
Close the global `httpx.Client` used by `huggingface_hub`.
|
|
234
206
|
|
|
235
|
-
If a Client is closed, it will be recreated on the next call to [`
|
|
207
|
+
If a Client is closed, it will be recreated on the next call to [`get_session`].
|
|
236
208
|
|
|
237
209
|
Can be useful if e.g. an SSL certificate has been updated.
|
|
238
210
|
"""
|
|
@@ -133,8 +133,8 @@ def validate_repo_id(repo_id: str) -> None:
|
|
|
133
133
|
|
|
134
134
|
if not REPO_ID_REGEX.match(repo_id):
|
|
135
135
|
raise HFValidationError(
|
|
136
|
-
"Repo id must use alphanumeric chars
|
|
137
|
-
"
|
|
136
|
+
"Repo id must use alphanumeric chars, '-', '_' or '.'."
|
|
137
|
+
" The name cannot start or end with '-' or '.' and the maximum length is 96:"
|
|
138
138
|
f" '{repo_id}'."
|
|
139
139
|
)
|
|
140
140
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: huggingface-hub
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.0rc3
|
|
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.
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
huggingface_hub/__init__.py,sha256=
|
|
1
|
+
huggingface_hub/__init__.py,sha256=Rak0LVI-VYBlTfmrHMGdWqup8V2Ywc8Verayp2ANw1s,51906
|
|
2
2
|
huggingface_hub/_commit_api.py,sha256=4iFe5TQpS8jTRW7sDWut6HUU1eOkw80G5nJooaDKiOM,40890
|
|
3
3
|
huggingface_hub/_commit_scheduler.py,sha256=tqcdWVGJRIxGQtkFHs_AgBdN9ztUjOQSuAhfMAr1ieM,14751
|
|
4
4
|
huggingface_hub/_inference_endpoints.py,sha256=cGiZg244nIOi2OLTqm4V8-ZUY3O0Rr7NlOmoLeHUIbY,17592
|
|
5
5
|
huggingface_hub/_jobs_api.py,sha256=SqybFSxQygyp8Ywem2a4WIL0kcq_hB1Dv5xV8kJFmv8,10791
|
|
6
6
|
huggingface_hub/_local_folder.py,sha256=2iHXNgIT3UdSt2PvCovd0NzgVxTRypKb-rvAFLK-gZU,17305
|
|
7
|
-
huggingface_hub/_login.py,sha256=
|
|
7
|
+
huggingface_hub/_login.py,sha256=VShZnS22Al1Uh26KJgojKE-PW2AMHsoLj6TlEr3segM,19051
|
|
8
8
|
huggingface_hub/_oauth.py,sha256=91zR_H235vxi-fg2YXzDgmA09j4BR3dim9VVzf6srps,18695
|
|
9
|
-
huggingface_hub/_snapshot_download.py,sha256=
|
|
9
|
+
huggingface_hub/_snapshot_download.py,sha256=mT2fyCAstt2ZifuY-12FUuXs0x1TVD7_IQUe_NnQkxo,19375
|
|
10
10
|
huggingface_hub/_space_api.py,sha256=aOowzC3LUytfgFrZprn9vKTQHXLpDWJKjl9X4qq_ZxQ,5464
|
|
11
11
|
huggingface_hub/_tensorboard_logger.py,sha256=3TocVxxSIioqxOkI6p1N4plnWfAizfdU456V0-K10Bs,8414
|
|
12
|
-
huggingface_hub/_upload_large_folder.py,sha256=
|
|
12
|
+
huggingface_hub/_upload_large_folder.py,sha256=pDWpXcG5EgOEb0qS96NgtUiJjMMDEdLgAZMauFRWIIw,30014
|
|
13
13
|
huggingface_hub/_webhooks_payload.py,sha256=qCZjBa5dhssg_O0yzgzxPyMpwAxLG96I4qen_HIk0Qc,3611
|
|
14
14
|
huggingface_hub/_webhooks_server.py,sha256=CSfQpgs5mJJjQEbJ9WPATdn4it2-Ii0eXVdqx9JeBCg,15685
|
|
15
15
|
huggingface_hub/community.py,sha256=RbW37Fh8IPsTOiE6ukTdG9mjkjECdKsvcWg6wBV55mg,12192
|
|
16
16
|
huggingface_hub/constants.py,sha256=0wPK02ixE1drhlsEbpwi1RIQauezevkQnDB_JW3Y75c,9316
|
|
17
|
-
huggingface_hub/dataclasses.py,sha256=
|
|
18
|
-
huggingface_hub/errors.py,sha256=
|
|
17
|
+
huggingface_hub/dataclasses.py,sha256=YPk9ktQ011qXfaSarFBS0oGTpvoUjL8bYUgbKt6z_DE,21976
|
|
18
|
+
huggingface_hub/errors.py,sha256=lnXNYKsoJwm_G3377u7aDJGnGwKqCyaiZ1DfjtlzMR8,11411
|
|
19
19
|
huggingface_hub/fastai_utils.py,sha256=0joRPBUccjFALLCfhQLyD_K8qxGvQiLThKJClwej_JQ,16657
|
|
20
|
-
huggingface_hub/file_download.py,sha256=
|
|
21
|
-
huggingface_hub/hf_api.py,sha256=
|
|
22
|
-
huggingface_hub/hf_file_system.py,sha256=
|
|
20
|
+
huggingface_hub/file_download.py,sha256=V1FNjTCCd-EqIwvU1wN0Hx0UlAVBYRzEGB3fih6bAW4,81181
|
|
21
|
+
huggingface_hub/hf_api.py,sha256=1evbQF8YgTYTPmUF_oThM3w-oPMa6tU8isG4LAn3exo,473727
|
|
22
|
+
huggingface_hub/hf_file_system.py,sha256=T_wSpiKR4rQ7nJb9ebhkNxhQhsyXCI0oXaCExoWE9Tk,48367
|
|
23
23
|
huggingface_hub/hub_mixin.py,sha256=xQDBbxjEHVMdb333hCmjsjYsaxU7IICdgZFf8tq0toU,37063
|
|
24
24
|
huggingface_hub/lfs.py,sha256=HzveT9mfMC-N8u4pjZjy7-NcvkRoRqV63PbVo6-JQ4U,16354
|
|
25
25
|
huggingface_hub/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
26
|
huggingface_hub/repocard.py,sha256=-wss1XDYjr88OjwK4Gzi8c-gQwPIHM8qRgxXYgeilUM,34978
|
|
27
27
|
huggingface_hub/repocard_data.py,sha256=DLdOKlnQCHOOpU-e_skx0YaHxoqN9ZKIOmmMjHUqb1w,34063
|
|
28
28
|
huggingface_hub/cli/__init__.py,sha256=A4zmzuHD2OHjQ5zmdfcnsj0JeCzHVPtpzh-wCjInugA,606
|
|
29
|
-
huggingface_hub/cli/_cli_utils.py,sha256=
|
|
29
|
+
huggingface_hub/cli/_cli_utils.py,sha256=TEw_H1ZlZExHWBnrpQZ14I_MeEjz3uO2uAqUetL4GtA,3958
|
|
30
30
|
huggingface_hub/cli/auth.py,sha256=8UXf03A2gggkISLaDXIkLCYuURc2A3rHyFqY-gWajCA,5177
|
|
31
31
|
huggingface_hub/cli/cache.py,sha256=78DjbPHqfo8kAlhZRpayEv3nhuC1Ckl3dICdljkZSII,13999
|
|
32
|
-
huggingface_hub/cli/download.py,sha256=
|
|
32
|
+
huggingface_hub/cli/download.py,sha256=eOjFJHej7SlihdxQ-nsv4lzQ0Xk_FkPOJoLPJJUI8Gc,6506
|
|
33
33
|
huggingface_hub/cli/hf.py,sha256=Bs4cB117ijea8KsJ9CjGWFQjgkWUGAgltmahTHCE6YA,2315
|
|
34
34
|
huggingface_hub/cli/jobs.py,sha256=HgxxxDRaCHH62eBpihzf1SakevM3OWewPiIzWjFkYLw,23871
|
|
35
35
|
huggingface_hub/cli/lfs.py,sha256=UJI5nBbrt_a-lm5uU88gxD6hVu8xyQav-zBxLTv3Wzo,5895
|
|
@@ -38,26 +38,11 @@ huggingface_hub/cli/repo_files.py,sha256=6d5GsLsCjqSKTSbJqCHnrRxB9kXj-yLRAtcVbQk
|
|
|
38
38
|
huggingface_hub/cli/system.py,sha256=U6j_MFDnlzBLRi2LZjXMxzRcp50UMdAZ7z5tWuPVJYk,1012
|
|
39
39
|
huggingface_hub/cli/upload.py,sha256=4OiGfKW12gPQJBSOqcoeWyTrBUSKeVrJ43cOQ2wgtrA,11823
|
|
40
40
|
huggingface_hub/cli/upload_large_folder.py,sha256=8n2icgejjDPNCr4iODYokLDCJ4BF9EVIoUQW41d4ddU,4470
|
|
41
|
-
huggingface_hub/commands/__init__.py,sha256=AkbM2a-iGh0Vq_xAWhK3mu3uZ44km8-X5uWjKcvcrUQ,928
|
|
42
|
-
huggingface_hub/commands/_cli_utils.py,sha256=5ee2T6YBBCshtZlUEqVHERY9JOHxxPnVEsQJCpze7Yw,2323
|
|
43
|
-
huggingface_hub/commands/delete_cache.py,sha256=ePmnQG3HTmHTEuJ_iHxSVNFDgXIWdE3Ce-4S29ZgK7E,17732
|
|
44
|
-
huggingface_hub/commands/download.py,sha256=hQg4iKhU8RVMqzvLWyAoO4VDfuG75JOSPQyN_9UPFfg,7881
|
|
45
|
-
huggingface_hub/commands/env.py,sha256=qv4SmjuzUz9exo4RDMY2HqabLCKE1oRb55cBA6LN9R4,1342
|
|
46
|
-
huggingface_hub/commands/huggingface_cli.py,sha256=gDi7JueyiLD0bGclTEYfHPQWpAY_WBdPfHT7vkqa5v0,2654
|
|
47
|
-
huggingface_hub/commands/lfs.py,sha256=DY5OsbRqYvTxLXO9jr9PeWucXEQ3PEZeEKY9QwS4HlM,7330
|
|
48
|
-
huggingface_hub/commands/repo.py,sha256=WcRDFqUYKB0Kz0zFopegiG614ot6VOYTAf6jht0BMss,6042
|
|
49
|
-
huggingface_hub/commands/repo_files.py,sha256=-BQ0kcmh3cQjiF1w1weidospl4L0YAT0QeLCicBdlAg,5048
|
|
50
|
-
huggingface_hub/commands/scan_cache.py,sha256=gQlhBZgWkUzH4wrIYnvgV7CA4C7rvV2SuY0x2JCB7g0,8675
|
|
51
|
-
huggingface_hub/commands/tag.py,sha256=f76qx6wCUWLvSYACAnf_qBB5v9ZnrO_-QqMAZ8TdB0s,6344
|
|
52
|
-
huggingface_hub/commands/upload.py,sha256=KOOxiVA7I18vcw4BirWvZ1v1WCYsRLv6blA-6O2dp8w,14570
|
|
53
|
-
huggingface_hub/commands/upload_large_folder.py,sha256=RUrZ9BMyUxh1Q2reI5Xplw8qy1kO01UO6fEojYO2RmU,6248
|
|
54
|
-
huggingface_hub/commands/user.py,sha256=yuG7VpyKfih4qRLf5N-Dg4JcsLpIKpchsvtHZMLws5w,7522
|
|
55
|
-
huggingface_hub/commands/version.py,sha256=rGpCbvxImY9eQqXrshYt609Iws27R75WARmKQrIo6Ok,1390
|
|
56
41
|
huggingface_hub/inference/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
|
-
huggingface_hub/inference/_client.py,sha256=
|
|
42
|
+
huggingface_hub/inference/_client.py,sha256=Tx4rfJ24GCKF7umxNqSpaKMse8w1LZm7c5b0Y2SH8Yw,157946
|
|
58
43
|
huggingface_hub/inference/_common.py,sha256=qS3i2R8Dz_VCb6sWt1ZqnmOt8jxPU6uSxlyq-0_9ytg,15350
|
|
59
44
|
huggingface_hub/inference/_generated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
60
|
-
huggingface_hub/inference/_generated/_async_client.py,sha256=
|
|
45
|
+
huggingface_hub/inference/_generated/_async_client.py,sha256=8vxQLK3uMhydw4v0mFI9f2W5RlWPqTSRhseim_HO-Gc,161156
|
|
61
46
|
huggingface_hub/inference/_generated/types/__init__.py,sha256=9WvrGQ8aThtKSNzZF06j-CIE2ZuItne8FFnea1p1u38,6557
|
|
62
47
|
huggingface_hub/inference/_generated/types/audio_classification.py,sha256=Jg3mzfGhCSH6CfvVvgJSiFpkz6v4nNA0G4LJXacEgNc,1573
|
|
63
48
|
huggingface_hub/inference/_generated/types/audio_to_audio.py,sha256=2Ep4WkePL7oJwcp5nRJqApwviumGHbft9HhXE9XLHj4,891
|
|
@@ -70,7 +55,7 @@ huggingface_hub/inference/_generated/types/feature_extraction.py,sha256=A8nj27aQ
|
|
|
70
55
|
huggingface_hub/inference/_generated/types/fill_mask.py,sha256=E-dU2bmHlso1cei_ju_LQtYVvDZEqAM1-walZkMPa74,1702
|
|
71
56
|
huggingface_hub/inference/_generated/types/image_classification.py,sha256=A-Y024o8723_n8mGVos4TwdAkVL62McGeL1iIo4VzNs,1585
|
|
72
57
|
huggingface_hub/inference/_generated/types/image_segmentation.py,sha256=vrkI4SuP1Iq_iLXc-2pQhYY3SHN4gzvFBoZqbUHxU7o,1950
|
|
73
|
-
huggingface_hub/inference/_generated/types/image_to_image.py,sha256=
|
|
58
|
+
huggingface_hub/inference/_generated/types/image_to_image.py,sha256=snvGbmCdqchxGef25MceD7LSKAmVkIgnoX5t71rdlAQ,2290
|
|
74
59
|
huggingface_hub/inference/_generated/types/image_to_text.py,sha256=OaFEBAfgT-fOVzJ7xVermGf7VODhrc9-Jg38WrM7-2o,4810
|
|
75
60
|
huggingface_hub/inference/_generated/types/image_to_video.py,sha256=bC-L_cNsDhk4s_IdSiprJ9d1NeMGePLcUp7UPpco21w,2240
|
|
76
61
|
huggingface_hub/inference/_generated/types/object_detection.py,sha256=VuFlb1281qTXoSgJDmquGz-VNfEZLo2H0Rh_F6MF6ts,2000
|
|
@@ -97,15 +82,15 @@ huggingface_hub/inference/_mcp/_cli_hacks.py,sha256=KX9HZJPa1p8ngY3mtYGGlVUXfg4v
|
|
|
97
82
|
huggingface_hub/inference/_mcp/agent.py,sha256=ufIzMGHore5n252hV5GZPM0ouDXIl6tv5Jl_5gHXnbg,4250
|
|
98
83
|
huggingface_hub/inference/_mcp/cli.py,sha256=AmSUT6wXlE6EWmI0SfQgTWYnL07322zGwwk2yMZZlBc,9640
|
|
99
84
|
huggingface_hub/inference/_mcp/constants.py,sha256=Ws8BujjgZWb5kPAVm4GLE_Rqse63MszHp863EWwoPCI,2487
|
|
100
|
-
huggingface_hub/inference/_mcp/mcp_client.py,sha256=
|
|
85
|
+
huggingface_hub/inference/_mcp/mcp_client.py,sha256=dGp8PhN6aVw4bDnuSySFSiguHUiz-nzhgv89CVdO7pI,17243
|
|
101
86
|
huggingface_hub/inference/_mcp/types.py,sha256=yHNfPsM9MhD06oeKdkbmrBsW-3WhUeqA26fyfRfx_bk,929
|
|
102
87
|
huggingface_hub/inference/_mcp/utils.py,sha256=6XBYLikJ8lknx-k1QaG_uVoVYZ0yMzyo6WgtGp7Zdds,4175
|
|
103
|
-
huggingface_hub/inference/_providers/__init__.py,sha256=
|
|
104
|
-
huggingface_hub/inference/_providers/_common.py,sha256=
|
|
88
|
+
huggingface_hub/inference/_providers/__init__.py,sha256=avtkUxGR2QKxOzKzfKnOtvzqrPLagEfbixtroaQ3Vt0,8867
|
|
89
|
+
huggingface_hub/inference/_providers/_common.py,sha256=uYQWZ00IJOv9yZjq6B5w-QJwkcOD0cqR174kWUiyYOA,12341
|
|
105
90
|
huggingface_hub/inference/_providers/black_forest_labs.py,sha256=vkjK_-4epSJa2-fLnbcXFzPAgQsGKhykKwd9Np-V2iw,2846
|
|
106
91
|
huggingface_hub/inference/_providers/cerebras.py,sha256=QOJ-1U-os7uE7p6eUnn_P_APq-yQhx28be7c3Tq2EuA,210
|
|
107
92
|
huggingface_hub/inference/_providers/cohere.py,sha256=GqUyCR4j6Re-_27ItwQF2p89Yya4e__EWDP9hTSs9w0,1247
|
|
108
|
-
huggingface_hub/inference/_providers/fal_ai.py,sha256=
|
|
93
|
+
huggingface_hub/inference/_providers/fal_ai.py,sha256=F8mWK9BhVvDzp3LNjhuIWF0xLR-Y5gdHpUPUqlPBi-U,9983
|
|
109
94
|
huggingface_hub/inference/_providers/featherless_ai.py,sha256=SceM3VsgzDSaCnzVxTFK6JepHaGStptdLlwrX-zsM2g,1376
|
|
110
95
|
huggingface_hub/inference/_providers/fireworks_ai.py,sha256=YfxC8wMU38qpv6xFc5HnHf6qK4x64nt-iwEDTip4C_U,1209
|
|
111
96
|
huggingface_hub/inference/_providers/groq.py,sha256=JTk2JV4ZOlaohho7zLAFQtk92kGVsPmLJ1hmzcwsqvQ,315
|
|
@@ -120,16 +105,17 @@ huggingface_hub/inference/_providers/replicate.py,sha256=MBvjI-4IH8Antqr_8c3MRrB
|
|
|
120
105
|
huggingface_hub/inference/_providers/sambanova.py,sha256=t-J89tab8wut62jXSXl7pAK5mCrovwdgtvbDYK1DHis,2031
|
|
121
106
|
huggingface_hub/inference/_providers/scaleway.py,sha256=Jy81kXWbXCHBpx6xmyzdEfXGSyhUfjKOLHuDSvhHWGo,1209
|
|
122
107
|
huggingface_hub/inference/_providers/together.py,sha256=q32zFvXhmRogWXMSaEFVYS8m9blXI_oy7KPdeal7Wwg,3433
|
|
108
|
+
huggingface_hub/inference/_providers/zai_org.py,sha256=plGzMZuLrChZvgpS3CCPqI6ImotZZxNLgfxnR7v6tw8,646
|
|
123
109
|
huggingface_hub/serialization/__init__.py,sha256=jCiw_vVQYW52gwVfWiqgocf2Q19kGTQlRGVpf-4SLP8,963
|
|
124
110
|
huggingface_hub/serialization/_base.py,sha256=af1QBU_A3EKgAXvYCkENPyamL5Z7V5LxlIUoCxMsEYM,8097
|
|
125
111
|
huggingface_hub/serialization/_dduf.py,sha256=eyUREtvL7od9SSYKrGcCayF29w3xcP1qXTx7RntWp9k,15411
|
|
126
112
|
huggingface_hub/serialization/_torch.py,sha256=VSxdgQ8NuluWY2vs0ZXr6dJFDNNvL1FDW38adLag6nE,45082
|
|
127
113
|
huggingface_hub/templates/datasetcard_template.md,sha256=W-EMqR6wndbrnZorkVv56URWPG49l7MATGeI015kTvs,5503
|
|
128
114
|
huggingface_hub/templates/modelcard_template.md,sha256=4AqArS3cqdtbit5Bo-DhjcnDFR-pza5hErLLTPM4Yuc,6870
|
|
129
|
-
huggingface_hub/utils/__init__.py,sha256=
|
|
115
|
+
huggingface_hub/utils/__init__.py,sha256=E88An6dqxt2XmXi0BO0ZvdrMius6AioMWvy4X0HiI1Y,3795
|
|
130
116
|
huggingface_hub/utils/_auth.py,sha256=TAz8pjk1lP7gseit8Trl2LygKun9unMEBWg_36EeDkA,8280
|
|
131
117
|
huggingface_hub/utils/_cache_assets.py,sha256=kai77HPQMfYpROouMBQCr_gdBCaeTm996Sqj0dExbNg,5728
|
|
132
|
-
huggingface_hub/utils/_cache_manager.py,sha256=
|
|
118
|
+
huggingface_hub/utils/_cache_manager.py,sha256=FweE5jeRQQyeicYe0Ks0zAtoOs8UzkwgkRgGfUKEJvU,34331
|
|
133
119
|
huggingface_hub/utils/_chunk_utils.py,sha256=MH7-6FwCDZ8noV6dGRytCOJGSfcZmDBvsvVotdI8TvQ,2109
|
|
134
120
|
huggingface_hub/utils/_datetime.py,sha256=kCS5jaKV25kOncX1xujbXsz5iDLcjLcLw85semGNzxQ,2770
|
|
135
121
|
huggingface_hub/utils/_deprecation.py,sha256=4tWi3vBSdvnhA0z_Op-tkAQ0xrJ4TUb0HbPhMiXUnOs,4872
|
|
@@ -138,7 +124,7 @@ huggingface_hub/utils/_experimental.py,sha256=3-c8irbn9sJr2CwWbzhGkIrdXKg8_x7Bif
|
|
|
138
124
|
huggingface_hub/utils/_fixes.py,sha256=xQZzfwLqZV8-gNcw9mrZ-M1acA6NZHszI_-cSZIWN-U,3978
|
|
139
125
|
huggingface_hub/utils/_git_credential.py,sha256=4B77QzeiPxCwK6BWZgUc1avzRKpna3wYlhVg7AuSCzA,4613
|
|
140
126
|
huggingface_hub/utils/_headers.py,sha256=k_ApvA8fJGHc0yNp2IFY8wySM9MQ5UZEpjr1g-fpRJ4,8060
|
|
141
|
-
huggingface_hub/utils/_http.py,sha256=
|
|
127
|
+
huggingface_hub/utils/_http.py,sha256=9cqtTg5aYlEVqfR_xnEdKGtZBKEbeRl1MXSa_UT7UzI,30059
|
|
142
128
|
huggingface_hub/utils/_lfs.py,sha256=EC0Oz6Wiwl8foRNkUOzrETXzAWlbgpnpxo5a410ovFY,3957
|
|
143
129
|
huggingface_hub/utils/_pagination.py,sha256=wEHEWhCu9vN5pv51t7ixSGe13g63kS6AJM4P53eY9M4,1894
|
|
144
130
|
huggingface_hub/utils/_paths.py,sha256=WCR2WbqDJLdNlU4XZNXXNmGct3OiDwPesGYrq41T2wE,5036
|
|
@@ -147,7 +133,7 @@ huggingface_hub/utils/_safetensors.py,sha256=2_xbCsDPsCwR1tyBjJ5MoOHsX4ksocjzc4j
|
|
|
147
133
|
huggingface_hub/utils/_subprocess.py,sha256=9qDWT1a2QF2TmXOQJDlPK6LwzYl9XjXeRadQPn15U14,4612
|
|
148
134
|
huggingface_hub/utils/_telemetry.py,sha256=a7t0jaOUPVNxbDWi4KQgVf8vSpZv0I-tK2HwlAowvEE,4884
|
|
149
135
|
huggingface_hub/utils/_typing.py,sha256=cC9p6E8hG2LId8sFWJ9H-cpQozv3asuoww_XiA1-XWI,3617
|
|
150
|
-
huggingface_hub/utils/_validators.py,sha256=
|
|
136
|
+
huggingface_hub/utils/_validators.py,sha256=p9ScwDqjTfrEQx5dmJJKCovExTUqwGA7TNIx511jBxE,8347
|
|
151
137
|
huggingface_hub/utils/_xet.py,sha256=P9b4lc4bJfOSZ7OVO-fg26_ayN0ESb_f1nQ7Bx9ZLfg,7297
|
|
152
138
|
huggingface_hub/utils/_xet_progress_reporting.py,sha256=bxwanhLxigDASflFZVt7S8eENIviguyVg1Q9vFtmDf8,6169
|
|
153
139
|
huggingface_hub/utils/endpoint_helpers.py,sha256=9VtIAlxQ5H_4y30sjCAgbu7XCqAtNLC7aRYxaNn0hLI,2366
|
|
@@ -155,9 +141,9 @@ huggingface_hub/utils/insecure_hashlib.py,sha256=z3dVUFvdBZ8kQI_8Vzvvlr3ims-EBiY
|
|
|
155
141
|
huggingface_hub/utils/logging.py,sha256=N6NXaCcbPbZSF-Oe-TY3ZnmkpmdFVyTOV8ASo-yVXLE,4916
|
|
156
142
|
huggingface_hub/utils/sha.py,sha256=OFnNGCba0sNcT2gUwaVCJnldxlltrHHe0DS_PCpV3C4,2134
|
|
157
143
|
huggingface_hub/utils/tqdm.py,sha256=-9gfgNA8bg5v5YBToSuB6noClI3a6YaGeFZP61IWmeY,10662
|
|
158
|
-
huggingface_hub-1.0.
|
|
159
|
-
huggingface_hub-1.0.
|
|
160
|
-
huggingface_hub-1.0.
|
|
161
|
-
huggingface_hub-1.0.
|
|
162
|
-
huggingface_hub-1.0.
|
|
163
|
-
huggingface_hub-1.0.
|
|
144
|
+
huggingface_hub-1.0.0rc3.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
145
|
+
huggingface_hub-1.0.0rc3.dist-info/METADATA,sha256=Z-l89IIeU_JANL8EsIC1YcxzOaCgdAdcFlpaQ-vwrl4,14164
|
|
146
|
+
huggingface_hub-1.0.0rc3.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
147
|
+
huggingface_hub-1.0.0rc3.dist-info/entry_points.txt,sha256=8Dw-X6nV_toOLZqujrhQMj2uTLs4wzV8EIF1y3FlzVs,153
|
|
148
|
+
huggingface_hub-1.0.0rc3.dist-info/top_level.txt,sha256=8KzlQJAY4miUvjAssOAJodqKOw3harNzuiwGQ9qLSSk,16
|
|
149
|
+
huggingface_hub-1.0.0rc3.dist-info/RECORD,,
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Copyright 2020 The HuggingFace Team. All rights reserved.
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
|
|
15
|
-
from abc import ABC, abstractmethod
|
|
16
|
-
from argparse import _SubParsersAction
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
class BaseHuggingfaceCLICommand(ABC):
|
|
20
|
-
@staticmethod
|
|
21
|
-
@abstractmethod
|
|
22
|
-
def register_subcommand(parser: _SubParsersAction):
|
|
23
|
-
raise NotImplementedError()
|
|
24
|
-
|
|
25
|
-
@abstractmethod
|
|
26
|
-
def run(self):
|
|
27
|
-
raise NotImplementedError()
|