huggingface-hub 0.13.4__py3-none-any.whl → 0.14.0rc0__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.

Files changed (40) hide show
  1. huggingface_hub/__init__.py +59 -5
  2. huggingface_hub/_commit_api.py +26 -71
  3. huggingface_hub/_login.py +16 -13
  4. huggingface_hub/_multi_commits.py +305 -0
  5. huggingface_hub/_snapshot_download.py +4 -0
  6. huggingface_hub/_space_api.py +6 -0
  7. huggingface_hub/_webhooks_payload.py +124 -0
  8. huggingface_hub/_webhooks_server.py +362 -0
  9. huggingface_hub/commands/lfs.py +3 -5
  10. huggingface_hub/commands/user.py +0 -3
  11. huggingface_hub/community.py +21 -0
  12. huggingface_hub/constants.py +3 -0
  13. huggingface_hub/file_download.py +25 -10
  14. huggingface_hub/hf_api.py +666 -139
  15. huggingface_hub/hf_file_system.py +441 -0
  16. huggingface_hub/hub_mixin.py +1 -1
  17. huggingface_hub/inference_api.py +2 -4
  18. huggingface_hub/keras_mixin.py +1 -1
  19. huggingface_hub/lfs.py +196 -176
  20. huggingface_hub/repocard.py +2 -2
  21. huggingface_hub/repository.py +1 -1
  22. huggingface_hub/templates/modelcard_template.md +1 -1
  23. huggingface_hub/utils/__init__.py +8 -11
  24. huggingface_hub/utils/_errors.py +4 -4
  25. huggingface_hub/utils/_experimental.py +65 -0
  26. huggingface_hub/utils/_git_credential.py +1 -80
  27. huggingface_hub/utils/_http.py +85 -2
  28. huggingface_hub/utils/_pagination.py +4 -3
  29. huggingface_hub/utils/_paths.py +2 -0
  30. huggingface_hub/utils/_runtime.py +12 -0
  31. huggingface_hub/utils/_subprocess.py +22 -0
  32. huggingface_hub/utils/_telemetry.py +2 -4
  33. huggingface_hub/utils/tqdm.py +23 -18
  34. {huggingface_hub-0.13.4.dist-info → huggingface_hub-0.14.0rc0.dist-info}/METADATA +5 -1
  35. huggingface_hub-0.14.0rc0.dist-info/RECORD +61 -0
  36. {huggingface_hub-0.13.4.dist-info → huggingface_hub-0.14.0rc0.dist-info}/entry_points.txt +3 -0
  37. huggingface_hub-0.13.4.dist-info/RECORD +0 -56
  38. {huggingface_hub-0.13.4.dist-info → huggingface_hub-0.14.0rc0.dist-info}/LICENSE +0 -0
  39. {huggingface_hub-0.13.4.dist-info → huggingface_hub-0.14.0rc0.dist-info}/WHEEL +0 -0
  40. {huggingface_hub-0.13.4.dist-info → huggingface_hub-0.14.0rc0.dist-info}/top_level.txt +0 -0
@@ -14,10 +14,9 @@
14
14
  # limitations under the License.
15
15
  """Contains utilities to manage Git credentials."""
16
16
  import subprocess
17
- from typing import List, Optional, Tuple, Union
17
+ from typing import List, Optional
18
18
 
19
19
  from ..constants import ENDPOINT
20
- from ._deprecation import _deprecate_method
21
20
  from ._subprocess import run_interactive_subprocess, run_subprocess
22
21
 
23
22
 
@@ -95,81 +94,3 @@ def unset_git_credential(username: str = "hf_user", folder: Optional[str] = None
95
94
 
96
95
  stdin.write(standard_input)
97
96
  stdin.flush()
98
-
99
-
100
- @_deprecate_method(
101
- version="0.14",
102
- message=(
103
- "Please use `huggingface_hub.set_git_credential` instead as it allows"
104
- " the user to chose which git-credential tool to use."
105
- ),
106
- )
107
- def write_to_credential_store(username: str, password: str) -> None:
108
- with run_interactive_subprocess("git credential-store store") as (stdin, _):
109
- input_username = f"username={username.lower()}"
110
- input_password = f"password={password}"
111
- stdin.write(f"url={ENDPOINT}\n{input_username}\n{input_password}\n\n")
112
- stdin.flush()
113
-
114
-
115
- @_deprecate_method(
116
- version="0.14",
117
- message="Please open an issue on https://github.com/huggingface/huggingface_hub if this a useful feature for you.",
118
- )
119
- def read_from_credential_store(
120
- username: Optional[str] = None,
121
- ) -> Union[Tuple[str, str], Tuple[None, None]]:
122
- """
123
- Reads the credential store relative to huggingface.co.
124
-
125
- Args:
126
- username (`str`, *optional*):
127
- A username to filter to search. If not specified, the first entry under
128
- `huggingface.co` endpoint is returned.
129
-
130
- Returns:
131
- `Tuple[str, str]` or `Tuple[None, None]`: either a username/password pair or
132
- None/None if credential has not been found. The returned username is always
133
- lowercase.
134
- """
135
- with run_interactive_subprocess("git credential-store get") as (stdin, stdout):
136
- standard_input = f"url={ENDPOINT}\n"
137
- if username is not None:
138
- standard_input += f"username={username.lower()}\n"
139
- standard_input += "\n"
140
-
141
- stdin.write(standard_input)
142
- stdin.flush()
143
- output = stdout.read()
144
-
145
- if len(output) == 0:
146
- return None, None
147
-
148
- username, password = [line for line in output.split("\n") if len(line) != 0]
149
- return username.split("=")[1], password.split("=")[1]
150
-
151
-
152
- @_deprecate_method(
153
- version="0.14",
154
- message=(
155
- "Please use `huggingface_hub.unset_git_credential` instead as it allows"
156
- " the user to chose which git-credential tool to use."
157
- ),
158
- )
159
- def erase_from_credential_store(username: Optional[str] = None) -> None:
160
- """
161
- Erases the credential store relative to huggingface.co.
162
-
163
- Args:
164
- username (`str`, *optional*):
165
- A username to filter to search. If not specified, all entries under
166
- `huggingface.co` endpoint is erased.
167
- """
168
- with run_interactive_subprocess("git credential-store erase") as (stdin, _):
169
- standard_input = f"url={ENDPOINT}\n"
170
- if username is not None:
171
- standard_input += f"username={username.lower()}\n"
172
- standard_input += "\n"
173
-
174
- stdin.write(standard_input)
175
- stdin.flush()
@@ -14,9 +14,11 @@
14
14
  # limitations under the License.
15
15
  """Contains utilities to handle HTTP requests in Huggingface Hub."""
16
16
  import io
17
+ import threading
17
18
  import time
19
+ from functools import lru_cache
18
20
  from http import HTTPStatus
19
- from typing import Tuple, Type, Union
21
+ from typing import Callable, Tuple, Type, Union
20
22
 
21
23
  import requests
22
24
  from requests import Response
@@ -28,6 +30,86 @@ from ._typing import HTTP_METHOD_T
28
30
 
29
31
  logger = logging.get_logger(__name__)
30
32
 
33
+ BACKEND_FACTORY_T = Callable[[], requests.Session]
34
+ _GLOBAL_BACKEND_FACTORY: BACKEND_FACTORY_T = requests.Session
35
+
36
+
37
+ def configure_http_backend(backend_factory: BACKEND_FACTORY_T = requests.Session) -> None:
38
+ """
39
+ Configure the HTTP backend by providing a `backend_factory`. Any HTTP calls made by `huggingface_hub` will use a
40
+ Session object instantiated by this factory. This can be useful if you are running your scripts in a specific
41
+ environment requiring custom configuration (e.g. custom proxy or certifications).
42
+
43
+ Use [`get_session`] to get a configured Session. Since `requests.Session` is not guaranteed to be thread-safe,
44
+ `huggingface_hub` creates 1 Session instance per thread. They are all instantiated using the same `backend_factory`
45
+ set in [`configure_http_backend`]. A LRU cache is used to cache the created sessions (and connections) between
46
+ calls. Max size is 128 to avoid memory leaks if thousands of threads are spawned.
47
+
48
+ See [this issue](https://github.com/psf/requests/issues/2766) to know more about thread-safety in `requests`.
49
+
50
+ Example:
51
+ ```py
52
+ import requests
53
+ from huggingface_hub import configure_http_backend, get_session
54
+
55
+ # Create a factory function that returns a Session with configured proxies
56
+ def backend_factory() -> requests.Session:
57
+ session = requests.Session()
58
+ session.proxies = {"http": "http://10.10.1.10:3128", "https": "https://10.10.1.11:1080"}
59
+ return session
60
+
61
+ # Set it as the default session factory
62
+ configure_http_backend(backend_factory=backend_factory)
63
+
64
+ # In practice, this is mostly done internally in `huggingface_hub`
65
+ session = get_session()
66
+ ```
67
+ """
68
+ global _GLOBAL_BACKEND_FACTORY
69
+ _GLOBAL_BACKEND_FACTORY = backend_factory
70
+ _get_session_from_cache.cache_clear()
71
+
72
+
73
+ def get_session() -> requests.Session:
74
+ """
75
+ Get a `requests.Session` object, using the session factory from the user.
76
+
77
+ Use [`get_session`] to get a configured Session. Since `requests.Session` is not guaranteed to be thread-safe,
78
+ `huggingface_hub` creates 1 Session instance per thread. They are all instantiated using the same `backend_factory`
79
+ set in [`configure_http_backend`]. A LRU cache is used to cache the created sessions (and connections) between
80
+ calls. Max size is 128 to avoid memory leaks if thousands of threads are spawned.
81
+
82
+ See [this issue](https://github.com/psf/requests/issues/2766) to know more about thread-safety in `requests`.
83
+
84
+ Example:
85
+ ```py
86
+ import requests
87
+ from huggingface_hub import configure_http_backend, get_session
88
+
89
+ # Create a factory function that returns a Session with configured proxies
90
+ def backend_factory() -> requests.Session:
91
+ session = requests.Session()
92
+ session.proxies = {"http": "http://10.10.1.10:3128", "https": "https://10.10.1.11:1080"}
93
+ return session
94
+
95
+ # Set it as the default session factory
96
+ configure_http_backend(backend_factory=backend_factory)
97
+
98
+ # In practice, this is mostly done internally in `huggingface_hub`
99
+ session = get_session()
100
+ ```
101
+ """
102
+ return _get_session_from_cache(thread_ident=threading.get_ident())
103
+
104
+
105
+ @lru_cache(maxsize=128) # default value for Python>=3.8. Let's keep the same for Python3.7
106
+ def _get_session_from_cache(thread_ident: int) -> requests.Session:
107
+ """
108
+ Create a new session per thread using global factory. Using LRU cache (maxsize 128) to avoid memory leaks when
109
+ using thousands of threads. Cache is cleared when `configure_http_backend` is called.
110
+ """
111
+ return _GLOBAL_BACKEND_FACTORY()
112
+
31
113
 
32
114
  def http_backoff(
33
115
  method: HTTP_METHOD_T,
@@ -117,6 +199,7 @@ def http_backoff(
117
199
  if "data" in kwargs and isinstance(kwargs["data"], io.IOBase):
118
200
  io_obj_initial_pos = kwargs["data"].tell()
119
201
 
202
+ session = get_session()
120
203
  while True:
121
204
  nb_tries += 1
122
205
  try:
@@ -126,7 +209,7 @@ def http_backoff(
126
209
  kwargs["data"].seek(io_obj_initial_pos)
127
210
 
128
211
  # Perform request and return if status_code is not in the retry list.
129
- response = requests.request(method=method, url=url, **kwargs)
212
+ response = session.request(method=method, url=url, **kwargs)
130
213
  if response.status_code not in retry_on_status_codes:
131
214
  return response
132
215
 
@@ -17,7 +17,7 @@ from typing import Dict, Iterable, Optional
17
17
 
18
18
  import requests
19
19
 
20
- from . import hf_raise_for_status, logging
20
+ from . import get_session, hf_raise_for_status, logging
21
21
 
22
22
 
23
23
  logger = logging.get_logger(__name__)
@@ -31,7 +31,8 @@ def paginate(path: str, params: Dict, headers: Dict) -> Iterable:
31
31
  - https://requests.readthedocs.io/en/latest/api/#requests.Response.links
32
32
  - https://docs.github.com/en/rest/guides/traversing-with-pagination#link-header
33
33
  """
34
- r = requests.get(path, params=params, headers=headers)
34
+ session = get_session()
35
+ r = session.get(path, params=params, headers=headers)
35
36
  hf_raise_for_status(r)
36
37
  yield from r.json()
37
38
 
@@ -40,7 +41,7 @@ def paginate(path: str, params: Dict, headers: Dict) -> Iterable:
40
41
  next_page = _get_next_page(r)
41
42
  while next_page is not None:
42
43
  logger.debug(f"Pagination detected. Requesting next page: {next_page}")
43
- r = requests.get(next_page, headers=headers)
44
+ r = session.get(next_page, headers=headers)
44
45
  hf_raise_for_status(r)
45
46
  yield from r.json()
46
47
  next_page = _get_next_page(r)
@@ -20,6 +20,8 @@ from typing import Callable, Generator, Iterable, List, Optional, TypeVar, Union
20
20
 
21
21
  T = TypeVar("T")
22
22
 
23
+ IGNORE_GIT_FOLDER_PATTERNS = [".git", ".git/*", "*/.git", "**/.git/**"]
24
+
23
25
 
24
26
  def filter_repo_objects(
25
27
  items: Iterable[T],
@@ -35,6 +35,7 @@ _package_versions = {}
35
35
  _CANDIDATES = {
36
36
  "torch": {"torch"},
37
37
  "pydot": {"pydot"},
38
+ "gradio": {"gradio"},
38
39
  "graphviz": {"graphviz"},
39
40
  "tensorflow": (
40
41
  "tensorflow",
@@ -102,6 +103,15 @@ def get_fastcore_version() -> str:
102
103
  return _get_version("fastcore")
103
104
 
104
105
 
106
+ # FastAI
107
+ def is_gradio_available() -> bool:
108
+ return _is_available("gradio")
109
+
110
+
111
+ def get_gradio_version() -> str:
112
+ return _get_version("gradio")
113
+
114
+
105
115
  # Graphviz
106
116
  def is_graphviz_available() -> bool:
107
117
  return _is_available("graphviz")
@@ -254,6 +264,7 @@ def dump_environment_info() -> Dict[str, Any]:
254
264
  info["Pydot"] = get_pydot_version()
255
265
  info["Pillow"] = get_pillow_version()
256
266
  info["hf_transfer"] = get_hf_transfer_version()
267
+ info["gradio"] = get_gradio_version()
257
268
 
258
269
  # Environment variables
259
270
  info["ENDPOINT"] = constants.ENDPOINT
@@ -264,6 +275,7 @@ def dump_environment_info() -> Dict[str, Any]:
264
275
  info["HF_HUB_DISABLE_TELEMETRY"] = constants.HF_HUB_DISABLE_TELEMETRY
265
276
  info["HF_HUB_DISABLE_PROGRESS_BARS"] = constants.HF_HUB_DISABLE_PROGRESS_BARS
266
277
  info["HF_HUB_DISABLE_SYMLINKS_WARNING"] = constants.HF_HUB_DISABLE_SYMLINKS_WARNING
278
+ info["HF_HUB_DISABLE_EXPERIMENTAL_WARNING"] = constants.HF_HUB_DISABLE_EXPERIMENTAL_WARNING
267
279
  info["HF_HUB_DISABLE_IMPLICIT_TOKEN"] = constants.HF_HUB_DISABLE_IMPLICIT_TOKEN
268
280
  info["HF_HUB_ENABLE_HF_TRANSFER"] = constants.HF_HUB_ENABLE_HF_TRANSFER
269
281
 
@@ -16,7 +16,9 @@
16
16
  """Contains utilities to easily handle subprocesses in `huggingface_hub`."""
17
17
  import os
18
18
  import subprocess
19
+ import sys
19
20
  from contextlib import contextmanager
21
+ from io import StringIO
20
22
  from pathlib import Path
21
23
  from typing import IO, Generator, List, Optional, Tuple, Union
22
24
 
@@ -26,6 +28,26 @@ from .logging import get_logger
26
28
  logger = get_logger(__name__)
27
29
 
28
30
 
31
+ @contextmanager
32
+ def capture_output() -> Generator[StringIO, None, None]:
33
+ """Capture output that is printed to terminal.
34
+
35
+ Taken from https://stackoverflow.com/a/34738440
36
+
37
+ Example:
38
+ ```py
39
+ >>> with capture_output() as output:
40
+ ... print("hello world")
41
+ >>> assert output.getvalue() == "hello world\n"
42
+ ```
43
+ """
44
+ output = StringIO()
45
+ previous_output = sys.stdout
46
+ sys.stdout = output
47
+ yield output
48
+ sys.stdout = previous_output
49
+
50
+
29
51
  def run_subprocess(
30
52
  command: Union[str, List[str]],
31
53
  folder: Optional[Union[str, Path]] = None,
@@ -3,10 +3,8 @@ from threading import Lock, Thread
3
3
  from typing import Dict, Optional, Union
4
4
  from urllib.parse import quote
5
5
 
6
- import requests
7
-
8
6
  from .. import constants, logging
9
- from . import build_hf_headers, hf_raise_for_status
7
+ from . import build_hf_headers, get_session, hf_raise_for_status
10
8
 
11
9
 
12
10
  logger = logging.get_logger(__name__)
@@ -105,7 +103,7 @@ def _send_telemetry_in_thread(
105
103
  """Contains the actual data sending data to the Hub."""
106
104
  path = "/".join(quote(part) for part in topic.split("/") if len(part) > 0)
107
105
  try:
108
- r = requests.head(
106
+ r = get_session().head(
109
107
  f"{constants.ENDPOINT}/api/telemetry/{path}",
110
108
  headers=build_hf_headers(
111
109
  token=False, # no need to send a token for telemetry
@@ -77,13 +77,15 @@ _hf_hub_progress_bars_disabled: bool = HF_HUB_DISABLE_PROGRESS_BARS or False
77
77
 
78
78
  def disable_progress_bars() -> None:
79
79
  """
80
- Disable globally progress bars used in `huggingface_hub` except if
81
- `HF_HUB_DISABLE_PROGRESS_BARS` environment variable has been set.
80
+ Disable globally progress bars used in `huggingface_hub` except if `HF_HUB_DISABLE_PROGRESS_BARS` environment
81
+ variable has been set.
82
+
83
+ Use [`~utils.enable_progress_bars`] to re-enable them.
82
84
  """
83
85
  if HF_HUB_DISABLE_PROGRESS_BARS is False:
84
86
  warnings.warn(
85
- "Cannot disable progress bars: environment variable"
86
- " `HF_HUB_DISABLE_PROGRESS_BARS=0` is set and has priority."
87
+ "Cannot disable progress bars: environment variable `HF_HUB_DISABLE_PROGRESS_BARS=0` is set and has"
88
+ " priority."
87
89
  )
88
90
  return
89
91
  global _hf_hub_progress_bars_disabled
@@ -92,13 +94,15 @@ def disable_progress_bars() -> None:
92
94
 
93
95
  def enable_progress_bars() -> None:
94
96
  """
95
- Enable globally progress bars used in `huggingface_hub` except if
96
- `HF_HUB_DISABLE_PROGRESS_BARS` environment variable has been set.
97
+ Enable globally progress bars used in `huggingface_hub` except if `HF_HUB_DISABLE_PROGRESS_BARS` environment
98
+ variable has been set.
99
+
100
+ Use [`~utils.disable_progress_bars`] to disable them.
97
101
  """
98
102
  if HF_HUB_DISABLE_PROGRESS_BARS is True:
99
103
  warnings.warn(
100
- "Cannot enable progress bars: environment variable"
101
- " `HF_HUB_DISABLE_PROGRESS_BARS=1` is set and has priority."
104
+ "Cannot enable progress bars: environment variable `HF_HUB_DISABLE_PROGRESS_BARS=1` is set and has"
105
+ " priority."
102
106
  )
103
107
  return
104
108
  global _hf_hub_progress_bars_disabled
@@ -106,7 +110,11 @@ def enable_progress_bars() -> None:
106
110
 
107
111
 
108
112
  def are_progress_bars_disabled() -> bool:
109
- """Return whether progress bars are globally disabled or not."""
113
+ """Return whether progress bars are globally disabled or not.
114
+
115
+ Progress bars used in `huggingface_hub` can be enable or disabled globally using [`~utils.enable_progress_bars`]
116
+ and [`~utils.disable_progress_bars`] or by setting `HF_HUB_DISABLE_PROGRESS_BARS` as environment variable.
117
+ """
110
118
  global _hf_hub_progress_bars_disabled
111
119
  return _hf_hub_progress_bars_disabled
112
120
 
@@ -127,17 +135,14 @@ class tqdm(old_tqdm):
127
135
  @contextmanager
128
136
  def tqdm_stream_file(path: Union[Path, str]) -> Iterator[io.BufferedReader]:
129
137
  """
130
- Open a file as binary and wrap the `read` method to display a progress bar when it's
131
- streamed.
138
+ Open a file as binary and wrap the `read` method to display a progress bar when it's streamed.
132
139
 
133
- First implemented in `transformers` in 2019 but removed when switched to git-lfs.
134
- Today used in `huggingface_hub` to show progress bar when uploading an LFS file to
135
- the Hub. See github.com/huggingface/transformers/pull/2078#discussion_r354739608 for
136
- implementation details.
140
+ First implemented in `transformers` in 2019 but removed when switched to git-lfs. Used in `huggingface_hub` to show
141
+ progress bar when uploading an LFS file to the Hub. See github.com/huggingface/transformers/pull/2078#discussion_r354739608
142
+ for implementation details.
137
143
 
138
- Note: currently implementation handles only files stored on disk as it is the most
139
- common use case. Could be extended to stream any `BinaryIO` object but we might
140
- have to debug some corner cases.
144
+ Note: currently implementation handles only files stored on disk as it is the most common use case. Could be
145
+ extended to stream any `BinaryIO` object but we might have to debug some corner cases.
141
146
 
142
147
  Example:
143
148
  ```py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: huggingface-hub
3
- Version: 0.13.4
3
+ Version: 0.14.0rc0
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.
@@ -25,6 +25,7 @@ Requires-Python: >=3.7.0
25
25
  Description-Content-Type: text/markdown
26
26
  License-File: LICENSE
27
27
  Requires-Dist: filelock
28
+ Requires-Dist: fsspec
28
29
  Requires-Dist: requests
29
30
  Requires-Dist: tqdm (>=4.42.1)
30
31
  Requires-Dist: pyyaml (>=5.1)
@@ -41,6 +42,7 @@ Requires-Dist: pytest-env ; extra == 'all'
41
42
  Requires-Dist: pytest-xdist ; extra == 'all'
42
43
  Requires-Dist: soundfile ; extra == 'all'
43
44
  Requires-Dist: Pillow ; extra == 'all'
45
+ Requires-Dist: gradio ; extra == 'all'
44
46
  Requires-Dist: black (~=23.1) ; extra == 'all'
45
47
  Requires-Dist: ruff (>=0.0.241) ; extra == 'all'
46
48
  Requires-Dist: mypy (==0.982) ; extra == 'all'
@@ -62,6 +64,7 @@ Requires-Dist: pytest-env ; extra == 'dev'
62
64
  Requires-Dist: pytest-xdist ; extra == 'dev'
63
65
  Requires-Dist: soundfile ; extra == 'dev'
64
66
  Requires-Dist: Pillow ; extra == 'dev'
67
+ Requires-Dist: gradio ; extra == 'dev'
65
68
  Requires-Dist: black (~=23.1) ; extra == 'dev'
66
69
  Requires-Dist: ruff (>=0.0.241) ; extra == 'dev'
67
70
  Requires-Dist: mypy (==0.982) ; extra == 'dev'
@@ -93,6 +96,7 @@ Requires-Dist: pytest-env ; extra == 'testing'
93
96
  Requires-Dist: pytest-xdist ; extra == 'testing'
94
97
  Requires-Dist: soundfile ; extra == 'testing'
95
98
  Requires-Dist: Pillow ; extra == 'testing'
99
+ Requires-Dist: gradio ; extra == 'testing'
96
100
  Provides-Extra: torch
97
101
  Requires-Dist: torch ; extra == 'torch'
98
102
  Provides-Extra: typing
@@ -0,0 +1,61 @@
1
+ huggingface_hub/__init__.py,sha256=vv61kD2UHif1vIZ3RrST8DVLsr-WTmavmCQC5qRb64I,16347
2
+ huggingface_hub/_commit_api.py,sha256=EDkR6TKwr6iu_zP5SZ2jy4H1Uwh8a5ShjQY5wnbJqdE,20672
3
+ huggingface_hub/_login.py,sha256=7d6zaHl7VVJuseqc7BAdugztFWSfCBPSX3Z6Yg7sDHc,11631
4
+ huggingface_hub/_multi_commits.py,sha256=QR9rJR4KrlsTqInCnkdq4a4ubGsLfpUyPC2sMLNNe2Q,12446
5
+ huggingface_hub/_snapshot_download.py,sha256=2Xeu83sdxhnfebPl3x4FkUtO1VAd3-3e1VWxeDMY-Wk,11578
6
+ huggingface_hub/_space_api.py,sha256=30ZvACXgPjHvni4wKO-3zsLkzj49jD4PTsHDMc4bA00,3597
7
+ huggingface_hub/_webhooks_payload.py,sha256=HVs5SrcvY0ck22cKyVbyk18mtyW5i4sm4QVMyq6zMjo,2998
8
+ huggingface_hub/_webhooks_server.py,sha256=zsxFnLNHaeLovGvFvBn7m26e3j7Hlvctbo5bFm5QfPA,14540
9
+ huggingface_hub/community.py,sha256=_DSEwFZ-sz-pbmUbbThJ4RTx32nJ3-J3p774R49WC6w,12113
10
+ huggingface_hub/constants.py,sha256=fl1twS_ADcLFpH29A-3eMlYeNTYXKpNAxotfYSU_Hv0,4874
11
+ huggingface_hub/fastai_utils.py,sha256=5I7zAfgHJU_mZnxnf9wgWTHrCRu_EAV8VTangDVfE_o,16676
12
+ huggingface_hub/file_download.py,sha256=DBTx1HA3VMVwME19cCsHxncMODSIV0xDNg95Bhic0SU,67459
13
+ huggingface_hub/hf_api.py,sha256=byDtR4d9jvxjTCtJCehLpeDIZxSngwrqlxDSbDfis0k,198627
14
+ huggingface_hub/hf_file_system.py,sha256=jMO4fsrvg_tMQ4ccyGoen1Mky0IVn0e2wSC9ILiIWdg,19664
15
+ huggingface_hub/hub_mixin.py,sha256=yGQ5SxUYP33P5kci92cT3WFyD_enN8hAklXTpkwTvGU,16818
16
+ huggingface_hub/inference_api.py,sha256=7KV8ZAkYqDDjvb5jSRYX1VAg8wZysunrCStRYUXfpA4,7883
17
+ huggingface_hub/keras_mixin.py,sha256=BG_Ck_dbaKecW2y2keGXAxVSpPyLACLmWVsd2larcJU,18837
18
+ huggingface_hub/lfs.py,sha256=7a5wXF1ZxpknLigpH4WzfArTN8KxDPB_1UXFrSN9ans,17910
19
+ huggingface_hub/repocard.py,sha256=yLdXM_2MgYk3tPKF30QaxqDBUpQbTYccFnzNl_Wxghc,34237
20
+ huggingface_hub/repocard_data.py,sha256=xpLC_PNIEIArNu4EVMBOXtC8VPnpXRQLHyXAlvUMVss,29768
21
+ huggingface_hub/repository.py,sha256=u1-ttpIjHbP9t3Scca62juR3jNs9k_-wQpOZ-59JQH8,53729
22
+ huggingface_hub/commands/__init__.py,sha256=AkbM2a-iGh0Vq_xAWhK3mu3uZ44km8-X5uWjKcvcrUQ,928
23
+ huggingface_hub/commands/_cli_utils.py,sha256=VA_3cHzIlsEQmKPnfNTgJNI36UtcrxRmfB44RdbP1LA,1970
24
+ huggingface_hub/commands/delete_cache.py,sha256=75qA3TQixIiCULLZumIRj-2rd2JIWeRguWT8jXaemsw,16100
25
+ huggingface_hub/commands/env.py,sha256=LJjOxo-m0DrvQdyhWGjnLGtWt91ec63BMI4FQ-5bWXQ,1225
26
+ huggingface_hub/commands/huggingface_cli.py,sha256=FaN0T85RYOa5xbU3582wOojA4SWMaRZ4HL41NvI0mX8,1692
27
+ huggingface_hub/commands/lfs.py,sha256=rMtm6LdKOGC15aSOXJjOlk3e-bhg7-wlY3yNjEhG8Tc,7332
28
+ huggingface_hub/commands/scan_cache.py,sha256=S5Xfnb4ype5aQCojo8vrmEUaS8vX2aozbkD0S1qsJ4M,5152
29
+ huggingface_hub/commands/user.py,sha256=aPnSVO4OU86rb8NAL43s-5i2QDBfj0UoeubBJLJ1i8M,6955
30
+ huggingface_hub/templates/datasetcard_template.md,sha256=9RRyo88T8dv5oNfjgEGX2NhCR0vW_Y-cGlvfbJ7J5Ro,2721
31
+ huggingface_hub/templates/modelcard_template.md,sha256=zgehAu_isrwVL6g1Q3fDIgCHPjjsppO6U9IYlsSaoyI,6766
32
+ huggingface_hub/utils/__init__.py,sha256=jQ-NZdOHe03YpTL-lD4u-MTSmx5Cc6GXiK_oQJ-4WfQ,2750
33
+ huggingface_hub/utils/_cache_assets.py,sha256=QmI_qlzsOpjK0B6k4GYiLFrKzq3mFLQVoTn2pmWqshE,5755
34
+ huggingface_hub/utils/_cache_manager.py,sha256=MvcmmpdxPaYQCMKSLoFPwgPQ0U4cxnnL4DuP440XOhU,29154
35
+ huggingface_hub/utils/_chunk_utils.py,sha256=6VRyjiGr2bPupPl1azSUTxKuJ51wdgELipwJ2YRfH5U,2129
36
+ huggingface_hub/utils/_datetime.py,sha256=RA92d7k3pV6JKmRXFvsofgp1oHfjMZb5Y-X0vpTIkgQ,2728
37
+ huggingface_hub/utils/_deprecation.py,sha256=zY8vS1XoI5wDS2Oh_4gjn4YqzwtZ_uy6KireQaRnRms,8353
38
+ huggingface_hub/utils/_errors.py,sha256=xJiulHtTScFIwMTktNCEfS8o1Yj-h0tLhlcDBtkWz5U,12666
39
+ huggingface_hub/utils/_experimental.py,sha256=tKDUH2-IQuBUP_5GWtmz0-NsVhFaHFGO1g-svs8ga4c,2225
40
+ huggingface_hub/utils/_fixes.py,sha256=wFvfTYj62Il2OwkQB_Qp0xONG6SARQ5oEkT3_FhB4rc,2437
41
+ huggingface_hub/utils/_git_credential.py,sha256=8tOMTZBPTm7Z2nTw-6OknP6BW9zglLJK-wwiPI9FxIM,4047
42
+ huggingface_hub/utils/_headers.py,sha256=kg7Dw0X-LJbDiK4JLeCOiblMo8aK03sHh_2frbOFN8E,9241
43
+ huggingface_hub/utils/_hf_folder.py,sha256=HlDbVKOUKclmWqyoAyLC1ueCzJW2HtU07XCrMCEWyDk,3594
44
+ huggingface_hub/utils/_http.py,sha256=GYsT77wmiQ8Y8xAXBgPW4X1x3dTqnfLDC3U-bKQ2YQc,10180
45
+ huggingface_hub/utils/_pagination.py,sha256=VfpmMLyNCRo24fw0o_yWysMK69d9M6sSg2-nWtuypO4,1840
46
+ huggingface_hub/utils/_paths.py,sha256=nUaxXN-R2EcWfHE8ivFWfHqEKMIvXEdUeCGDC_QHMqc,4397
47
+ huggingface_hub/utils/_runtime.py,sha256=Nxh6mp1SzgawKB-k16QKnIyASx4yupL1PRPUY482LLw,8156
48
+ huggingface_hub/utils/_subprocess.py,sha256=LW9b8TWh9rsm3pW9_5b-mVV_AtYNyLXgC6e09SthkWI,4616
49
+ huggingface_hub/utils/_telemetry.py,sha256=jHAdgWNcL9nVvMT3ec3i78O-cwL09GnlifuokzpQjMI,4641
50
+ huggingface_hub/utils/_typing.py,sha256=-5LS6BKwb491Grqp14eoNGYGmYmJjVjQNX7p9qAFCqk,917
51
+ huggingface_hub/utils/_validators.py,sha256=C0Md9LaM717hQ7VwX_q5YsZAQ8-0gFaNkGmEuZ62XAE,9462
52
+ huggingface_hub/utils/endpoint_helpers.py,sha256=wXE3U1resSFvfdZbNevzrFyf39o9LfEVZd-k1cd6iig,12810
53
+ huggingface_hub/utils/logging.py,sha256=-Uov2WGLv16hS-V4Trvs_XO-TvSeZ1xIWZ-cfvDl7ac,4778
54
+ huggingface_hub/utils/sha.py,sha256=Wmeh2lwS2H0_CNLqDk_mNyb4jAjfTdlG6FZsuh6LqVg,890
55
+ huggingface_hub/utils/tqdm.py,sha256=rgz6ABv578cT9oTu6zkpW1bp21D1E8nH7saUNWcUp5s,6070
56
+ huggingface_hub-0.14.0rc0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
57
+ huggingface_hub-0.14.0rc0.dist-info/METADATA,sha256=3_1G-G5PZw_l2Lve81ebxprC4KJD3WsFRpnWEVk4uzY,7622
58
+ huggingface_hub-0.14.0rc0.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
59
+ huggingface_hub-0.14.0rc0.dist-info/entry_points.txt,sha256=Y3Z2L02rBG7va_iE6RPXolIgwOdwUFONyRN3kXMxZ0g,131
60
+ huggingface_hub-0.14.0rc0.dist-info/top_level.txt,sha256=8KzlQJAY4miUvjAssOAJodqKOw3harNzuiwGQ9qLSSk,16
61
+ huggingface_hub-0.14.0rc0.dist-info/RECORD,,
@@ -1,3 +1,6 @@
1
1
  [console_scripts]
2
2
  huggingface-cli = huggingface_hub.commands.huggingface_cli:main
3
3
 
4
+ [fsspec.specs]
5
+ hf=huggingface_hub.HfFileSystem
6
+
@@ -1,56 +0,0 @@
1
- huggingface_hub/__init__.py,sha256=M4fdGRVLQGaOF8nrc9XBSyu_o6OuXcmzvAXD6vbxxfo,14645
2
- huggingface_hub/_commit_api.py,sha256=QP3YtZdMOFKW0EchiS9JGPo5EVlkUz6cGktCagvoOx0,22558
3
- huggingface_hub/_login.py,sha256=X0hXt2AwMZbMlH0gnRQALyD48QJ_aDMGBEN6Gs0Hmz0,11517
4
- huggingface_hub/_snapshot_download.py,sha256=eY0OWOpunWJY32d1d30ggV3rr3ND_LpEnYmu87nzZcY,11339
5
- huggingface_hub/_space_api.py,sha256=URSt8IDDnzZ4wiGiuoZgwNP3ZMgNmXZQGFcOQhfkQEU,3120
6
- huggingface_hub/community.py,sha256=WwVSOtephAX0OqALlOW_1EPu09r-Y5WpIF7jPkn0ze8,11062
7
- huggingface_hub/constants.py,sha256=EIhFt9LSDZKnstgJ3Zwqu2coHBHg8ms7dXNPE6QkFU8,4714
8
- huggingface_hub/fastai_utils.py,sha256=5I7zAfgHJU_mZnxnf9wgWTHrCRu_EAV8VTangDVfE_o,16676
9
- huggingface_hub/file_download.py,sha256=APkKWCyBRqx0g4-Uhs3oqyFP5Wt5HiNYrK708MqcmUs,66482
10
- huggingface_hub/hf_api.py,sha256=Zh_iIV_Qhk79nbKaXigtcanCeGVfIpqdkqU9yYhaH3M,173043
11
- huggingface_hub/hub_mixin.py,sha256=94BN_vzHDBX2tDgVV8la4CfkUzN2OgLsV9p9sz4OP7c,16783
12
- huggingface_hub/inference_api.py,sha256=3NkHAAGS9wK8PbXxly8YI-0V6gfZgZvV3N5bTdRfvDM,7882
13
- huggingface_hub/keras_mixin.py,sha256=cvLoaf2GNpeYOyDEQrZnSkYxeYPoDjgrxCr8BRWHPcA,18797
14
- huggingface_hub/lfs.py,sha256=Ij-QF8sWjVtL2XwWw4SaLIlsEP8sL2hdr7efFoonrEU,16007
15
- huggingface_hub/repocard.py,sha256=TV0V6UxCCRlJ0Yvr9p2KA8dGUFlTgzSObczNqkNIItw,34219
16
- huggingface_hub/repocard_data.py,sha256=xpLC_PNIEIArNu4EVMBOXtC8VPnpXRQLHyXAlvUMVss,29768
17
- huggingface_hub/repository.py,sha256=arXVSuom8jTJxbia_fm2HAvWeEVnowK5cHajcO6n_vQ,53727
18
- huggingface_hub/commands/__init__.py,sha256=AkbM2a-iGh0Vq_xAWhK3mu3uZ44km8-X5uWjKcvcrUQ,928
19
- huggingface_hub/commands/_cli_utils.py,sha256=VA_3cHzIlsEQmKPnfNTgJNI36UtcrxRmfB44RdbP1LA,1970
20
- huggingface_hub/commands/delete_cache.py,sha256=75qA3TQixIiCULLZumIRj-2rd2JIWeRguWT8jXaemsw,16100
21
- huggingface_hub/commands/env.py,sha256=LJjOxo-m0DrvQdyhWGjnLGtWt91ec63BMI4FQ-5bWXQ,1225
22
- huggingface_hub/commands/huggingface_cli.py,sha256=FaN0T85RYOa5xbU3582wOojA4SWMaRZ4HL41NvI0mX8,1692
23
- huggingface_hub/commands/lfs.py,sha256=nNbeNVy39Ewcw1LjKf_P1X5U29vRGtLhWQn6fNa7CPg,7326
24
- huggingface_hub/commands/scan_cache.py,sha256=S5Xfnb4ype5aQCojo8vrmEUaS8vX2aozbkD0S1qsJ4M,5152
25
- huggingface_hub/commands/user.py,sha256=XXoFZmUk_fvN0B7QcEsOQgvXJP4n0q1Vbyz_q5mTPjM,7102
26
- huggingface_hub/templates/datasetcard_template.md,sha256=9RRyo88T8dv5oNfjgEGX2NhCR0vW_Y-cGlvfbJ7J5Ro,2721
27
- huggingface_hub/templates/modelcard_template.md,sha256=VilQaJVwtbN_AEfp9pbu9K-QBig53jxNAWRdqj18W4g,6767
28
- huggingface_hub/utils/__init__.py,sha256=eXyjxREQP6sDmfbJYkd4byXHaKe02YK2kUnzItTGrYQ,2659
29
- huggingface_hub/utils/_cache_assets.py,sha256=QmI_qlzsOpjK0B6k4GYiLFrKzq3mFLQVoTn2pmWqshE,5755
30
- huggingface_hub/utils/_cache_manager.py,sha256=MvcmmpdxPaYQCMKSLoFPwgPQ0U4cxnnL4DuP440XOhU,29154
31
- huggingface_hub/utils/_chunk_utils.py,sha256=6VRyjiGr2bPupPl1azSUTxKuJ51wdgELipwJ2YRfH5U,2129
32
- huggingface_hub/utils/_datetime.py,sha256=RA92d7k3pV6JKmRXFvsofgp1oHfjMZb5Y-X0vpTIkgQ,2728
33
- huggingface_hub/utils/_deprecation.py,sha256=zY8vS1XoI5wDS2Oh_4gjn4YqzwtZ_uy6KireQaRnRms,8353
34
- huggingface_hub/utils/_errors.py,sha256=hFaXE3UYIBW4gmbW0F18niuqv0wSns3zPUNMMDo8ILI,12630
35
- huggingface_hub/utils/_fixes.py,sha256=wFvfTYj62Il2OwkQB_Qp0xONG6SARQ5oEkT3_FhB4rc,2437
36
- huggingface_hub/utils/_git_credential.py,sha256=-7zwTlltrGfnGFzA9XDJzEAf5SWzMywXynIKoMwvDoc,6794
37
- huggingface_hub/utils/_headers.py,sha256=kg7Dw0X-LJbDiK4JLeCOiblMo8aK03sHh_2frbOFN8E,9241
38
- huggingface_hub/utils/_hf_folder.py,sha256=HlDbVKOUKclmWqyoAyLC1ueCzJW2HtU07XCrMCEWyDk,3594
39
- huggingface_hub/utils/_http.py,sha256=52qL9jscyvMyobPxk23PhuBIZC0_FXAqqIzB9ntW82k,6483
40
- huggingface_hub/utils/_pagination.py,sha256=IcFZiR-zhRSzgoAKgYZ4t3TGTYK-rsNzgedB8RS_ZM4,1801
41
- huggingface_hub/utils/_paths.py,sha256=ijC3egnftuwxx0FiHFcCWHJ6iODo_-fF73Q5mZim-Dk,4324
42
- huggingface_hub/utils/_runtime.py,sha256=ZoTElrskSClpdYixQwjb6NPh4U53JTaffaQccEKCwSQ,7842
43
- huggingface_hub/utils/_subprocess.py,sha256=vIBil5lyRXe6MUGO2BeFAULwhrYKzrkO1xPAa67xGXo,4105
44
- huggingface_hub/utils/_telemetry.py,sha256=fIh6FUr332rxNkbkXi-7dM_2gLoL7Q4A8v9wDJ7Sp40,4640
45
- huggingface_hub/utils/_typing.py,sha256=-5LS6BKwb491Grqp14eoNGYGmYmJjVjQNX7p9qAFCqk,917
46
- huggingface_hub/utils/_validators.py,sha256=C0Md9LaM717hQ7VwX_q5YsZAQ8-0gFaNkGmEuZ62XAE,9462
47
- huggingface_hub/utils/endpoint_helpers.py,sha256=wXE3U1resSFvfdZbNevzrFyf39o9LfEVZd-k1cd6iig,12810
48
- huggingface_hub/utils/logging.py,sha256=-Uov2WGLv16hS-V4Trvs_XO-TvSeZ1xIWZ-cfvDl7ac,4778
49
- huggingface_hub/utils/sha.py,sha256=Wmeh2lwS2H0_CNLqDk_mNyb4jAjfTdlG6FZsuh6LqVg,890
50
- huggingface_hub/utils/tqdm.py,sha256=iTe9IhbPWIezSn6GBAuPlZe_q-5T47ARwUJAQZ6xepc,5741
51
- huggingface_hub-0.13.4.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
52
- huggingface_hub-0.13.4.dist-info/METADATA,sha256=SSrUKfQQ8XvDsppt1h-fwdelK47KD_h_12VRL8USH8o,7476
53
- huggingface_hub-0.13.4.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
54
- huggingface_hub-0.13.4.dist-info/entry_points.txt,sha256=7-_O79Kk26OM9R3QgywVzfyrNjZ3F8tCUhDtozJ7yIc,83
55
- huggingface_hub-0.13.4.dist-info/top_level.txt,sha256=8KzlQJAY4miUvjAssOAJodqKOw3harNzuiwGQ9qLSSk,16
56
- huggingface_hub-0.13.4.dist-info/RECORD,,