Hub Python Library documentation
Утилиты
Утилиты
Настройка журналирования
Пакет huggingface_hub предоставляет утилиту logging для управления уровнем логирования самого пакета.
Импортировать её можно следующим образом:
from huggingface_hub import loggingЗатем вы можете задать уровень детализации, чтобы изменить количество выводимых в журнал сообщений:
from huggingface_hub import logging
logging.set_verbosity_error()
logging.set_verbosity_warning()
logging.set_verbosity_info()
logging.set_verbosity_debug()
logging.set_verbosity(...)Уровни следует понимать следующим образом:
error: показывать только критические записи журнала о использовании, которое может привести к ошибке или непредвиденному поведению.warning: отображает логи, которые не являются критическими, но использование которых может привести к непредвиденному поведению. Кроме того, могут отображаться важные информационные логи.info: отображает большинство записей журнала, включая подробные сообщения о том, что происходит «под капотом». Если что-то работает не так, как ожидается, мы рекомендуем переключить уровень детализации на этот, чтобы получить больше информации.debug: отображать все журналы, включая некоторые внутренние, которые могут использоваться для отслеживания того, что именно происходит под капотом.
Возвращает текущий уровень для корневого логгера HuggingFace Hub.
У HuggingFace Hub следующие уровни журналирования:
huggingface_hub.logging.CRITICAL,huggingface_hub.logging.FATALhuggingface_hub.logging.ERRORhuggingface_hub.logging.WARNING,huggingface_hub.logging.WARNhuggingface_hub.logging.INFOhuggingface_hub.logging.DEBUG
huggingface_hub.utils.logging.set_verbosity
< source >( verbosity: int )
Устанавливает уровень для корневого логгера HuggingFace Hub.
Устанавливает уровень детализации на logging.INFO.
Устанавливает уровень детализации на logging.DEBUG.
Устанавливает уровень детализации на logging.WARNING.
Устанавливает уровень детализации на logging.ERROR.
Отключите распространение логов библиотеки. Обратите внимание, что по умолчанию распространение логов отключено.
Включите распространение логов библиотеки. Отключите обработчик по умолчанию HuggingFace Hub, чтобы избежать дублирования записей в журнале, если корневой логгер был настроен.
Специфичные для репозитория вспомогательные методы
Методы, описанные ниже, актуальны при модификации модулей самой библиотеки huggingface_hub.
Использовать их не нужно, если вы применяете huggingface_hub и не вносите в него изменений.
huggingface_hub.utils.logging.get_logger
< source >( name: str | None = None )
Возвращает логгер с указанным именем. Эта функция не предназначена для прямого обращения со стороны пользователей библиотеки.
Настройка индикаторов прогресса
Индикаторы прогресса — полезный инструмент для отображения информации пользователю во время выполнения длительных задач (например, при загрузке или выгрузке файлов). huggingface_hub предоставляет обёртку tqdm для отображения индикаторов прогресса в едином стиле по всей библиотеке.
По умолчанию полосы прогресса включены. Вы можете отключить их глобально, установив переменную окружения HF_HUB_DISABLE_PROGRESS_BARS. Также их можно включать/отключать с помощью enable_progress_bars() и disable_progress_bars. Если переменная окружения установлена, она имеет приоритет над вспомогательными функциями.
>>> from huggingface_hub import snapshot_download
>>> from huggingface_hub.utils import are_progress_bars_disabled, disable_progress_bars, enable_progress_bars
>>> # Disable progress bars globally
>>> disable_progress_bars()
>>> # Progress bar will not be shown !
>>> snapshot_download("gpt2")
>>> are_progress_bars_disabled()
True
>>> # Re-enable progress bars globally
>>> enable_progress_bars()Управление прогресс-барами для отдельных групп
Вы также можете включать или выключать полосы прогресса для конкретных групп. Это позволяет более детально управлять видимостью полос прогресса в разных частях вашего приложения или библиотеки. Если полоса прогресса отключена для группы, на неё также распространяется влияние для всех подгрупп, если только это не переопределено явно.
# Disable progress bars for a specific group
>>> disable_progress_bars("peft.foo")
>>> assert not are_progress_bars_disabled("peft")
>>> assert not are_progress_bars_disabled("peft.something")
>>> assert are_progress_bars_disabled("peft.foo")
>>> assert are_progress_bars_disabled("peft.foo.bar")
# Re-enable progress bars for a subgroup
>>> enable_progress_bars("peft.foo.bar")
>>> assert are_progress_bars_disabled("peft.foo")
>>> assert not are_progress_bars_disabled("peft.foo.bar")
# Use groups with tqdm
# No progress bar for `name="peft.foo"`
>>> for _ in tqdm(range(5), name="peft.foo"):
... pass
# Progress bar will be shown for `name="peft.foo.bar"`
>>> for _ in tqdm(range(5), name="peft.foo.bar"):
... pass
100%|███████████████████████████████████████| 5/5 [00:00<00:00, 117817.53it/s]are_progress_bars_disabled
huggingface_hub.utils.are_progress_bars_disabled
< source >( name: str | None = None ) → bool
Проверьте, отключены ли индикаторы прогресса глобально или для конкретной группы.
Эта функция возвращает, отключены ли индикаторы прогресса для указанной группы или глобально.
Сначала она проверяет переменную окружения HF_HUB_DISABLE_PROGRESS_BARS, а затем программные
настройки.
disable_progress_bars
класс huggingface_hub.utils.disable_progress_bars
< source >( name: str | None = None )
Отключите полосы прогресса глобально или для указанной группы.
Эта функция обновляет состояние индикаторов прогресса на основе имени группы.
Если имя группы не указано, все индикаторы прогресса отключаются. Операция
учитывает значение переменной окружения HF_HUB_DISABLE_PROGRESS_BARS.
Работает и как обычный вызов, и как менеджер контекста: disable_progress_bars() # отключает до вызова enable_progress_bars() with disable_progress_bars(): # отключает на время блока, включает обратно при выходе …
enable_progress_bars
huggingface_hub.utils.enable_progress_bars
< source >( name: str | None = None )
Включите полосы прогресса глобально или для указанной группы.
Эта функция включает полосы прогресса для указанной группы или глобально, если группа не указана. Операция подчиняется настройке окружения HF_HUB_DISABLE_PROGRESS_BARS.
Настройка HTTP-бэкенда
В
huggingface_hubv0.x HTTP-запросы обрабатывались с помощьюrequests, а конфигурация выполнялась черезconfigure_http_backend. Теперь мы используемhttpx2, поэтому конфигурация работает иначе: необходимо предоставить фабричную функцию, не принимающую аргументов и возвращающуюhttpx2.Client. Вы можете ознакомиться с реализацией по умолчанию здесь, чтобы увидеть, какие параметры используются по умолчанию.
В некоторых конфигурациях может потребоваться управлять тем, как выполняются HTTP-запросы, например при работе через прокси. Библиотека huggingface_hub позволяет настроить это глобально с помощью set_client_factory(). После настройки все запросы к Hub будут использовать ваши пользовательские параметры. Поскольку huggingface_hub использует httpx2.Client в качестве основы, вы можете ознакомиться с документацией httpx2, чтобы узнать подробности о доступных параметрах.
Если вы разрабатываете стороннюю библиотеку и вам необходимо отправлять прямые запросы к Hub, используйте get_session(), чтобы получить корректно настроенный клиент httpx2. Замените все прямые вызовы httpx2.get(...) на get_session().get(...), чтобы обеспечить правильное поведение.
Установите фабрику HTTP-клиента, используемую huggingface_hub.
Фабрика клиента — это метод, возвращающий объект httpx2.Client. При первом вызове get_session() фабрика клиента будет использована для создания нового объекта httpx2.Client, который будет общим для всех вызовов, выполняемых huggingface_hub.
Это может быть полезно, если вы запускаете свои скрипты в конкретной среде, требующей нестандартной конфигурации (например, настраиваемого прокси или сертификатов).
Используйте get_session(), чтобы получить корректно настроенный httpx2.Client.
Получите объект httpx2.Client, используя фабрику транспорта от пользователя.
Этот клиент используется всеми вызовами, выполняемыми huggingface_hub. Поэтому не закрывайте его вручную.
Используйте set_client_factory() для настройки httpx2.Client.
В редких случаях может потребоваться вручную закрыть текущую сессию (например, после временной ошибки SSLError). Это можно сделать с помощью close_session(). Новая сессия будет автоматически создана при следующем вызове get_session().
Сессии всегда закрываются автоматически при завершении процесса.
Закройте глобальный httpx2.Client, используемый huggingface_hub.
Если клиент закрыт, он будет создан заново при следующем вызове get_session().
Может быть полезно, например, если сертификат SSL был обновлён.
Для асинхронного кода используйте set_async_client_factory() для настройки httpx2.AsyncClient и get_async_session() для получения экземпляра.
Установите фабрику HTTP-асинхронного клиента, используемую huggingface_hub.
Фабрика асинхронного клиента — это метод, возвращающий объект httpx2.AsyncClient.
Это может быть полезно, если вы запускаете свои скрипты в среде, требующей специальной конфигурации (например, настраиваемого прокси или сертификатов).
Используйте get_async_session(), чтобы получить корректно настроенный httpx2.AsyncClient.
В отличие от
httpx2.Client, который используется всеми вызовами, выполняемымиhuggingface_hub, экземплярhttpx2.AsyncClientне является общим. Рекомендуется использовать асинхронный контекстный менеджер, чтобы гарантировать корректное закрытие клиента при выходе из контекста.
Возвращает объект httpx2.AsyncClient, используя фабрику транспорта от пользователя.
Используйте set_async_client_factory() для настройки httpx2.AsyncClient.
В отличие от
httpx2.Client, который используется всеми вызовами, выполняемымиhuggingface_hub, экземплярhttpx2.AsyncClientне является общим. Рекомендуется использовать асинхронный контекстный менеджер, чтобы гарантировать корректное закрытие клиента при выходе из контекста.
В отличие от синхронного клиента, жизненный цикл асинхронного клиента не управляется автоматически. Используйте асинхронный контекстный менеджер для его корректного управления.
Модуль httpx
huggingface_hub повторно экспортирует используемую им HTTP-библиотеку как huggingface_hub.utils.httpx:
from huggingface_hub.utils import httpx
try:
...
except httpx.HTTPError:
...Это в основном полезно для сторонних библиотек, построенных на базе huggingface_hub. huggingface_hub v1.x использует httpx, тогда как v2.x использует httpx2 (его преемник, распространяемый как отдельный пакет). Импорт модуля из huggingface_hub.utils вместо прямого импорта httpx гарантирует, что вы всегда получаете версию, которую фактически использует huggingface_hub, и ваша библиотека остаётся совместимой с обеими основными версиями. Подробнее о плане миграции см. этот вопрос.
Используйте это только в том случае, если вам нужны типы или исключения
httpx(например, для перехвата ошибок). Для выполнения запросов к Hub используйте get_session(), как описано выше.
Обработка ошибок HTTP
huggingface_hub определяет собственные HTTP-ошибки, чтобы дополнить HTTPError, выбрасываемый httpx2, дополнительной информацией, возвращаемой сервером.
Исключение для статуса
hf_raise_for_status() предназначен для того, чтобы быть центральным методом, который «вызывает исключение по статусу» для любого запроса, отправленного в Hub. Он оборачивает базовый httpx2.Response.raise_for_status, чтобы предоставлять дополнительную информацию. Любое выброшенное HTTPError преобразуется в HfHubHTTPError.
from huggingface_hub.utils import get_session, hf_raise_for_status, HfHubHTTPError
response = get_session().post(...)
try:
hf_raise_for_status(response)
except HfHubHTTPError as e:
print(str(e)) # formatted message
e.request_id, e.server_message # details returned by server
# Complete the error message with additional information once it's raised
e.append_to_message("\n`create_commit` expects the repository to exist.")
raisehuggingface_hub.hf_raise_for_status
< source >( response: Responseendpoint_name: str | None = None )
Внутренняя версия response.raise_for_status(), которая уточняет потенциальную HTTPError.
Будет выброшено исключение, являющееся экземпляром HfHubHTTPError.
This helper is meant to be the unique method to raise_for_status when making a call to the Hugging Face Hub.
Исключение, если запрос завершился с ошибкой:
- RepositoryNotFoundError Если репозиторий, из которого выполняется загрузка, не найден. Это может произойти, если он не существует, если
repo_typeзадан неверно или если репозиторий являетсяprivateи у вас нет к нему доступа.- GatedRepoError Если репозиторий существует, но является закрытым (gated), а пользователь не входит в список авторизованных.
- RevisionNotFoundError Если репозиторий существует, но ревизия не найдена.
- EntryNotFoundError Если репозиторий существует, но запись (например, запрошенный файл) не была найдена.
- BadRequestError Если запрос завершился ошибкой HTTP 400 BadRequest.
- HfHubHTTPError Если запрос завершился ошибкой по причине, не указанному выше.
Проверка автономного режима
Проверить, включён ли автономный режим, можно программно с помощью is_offline_mode. Автономный режим включается путём установки переменной окружения HF_HUB_OFFLINE=1.
Возвращает, находится ли мы в автономном режиме для Hub.
Когда включён автономный режим, все HTTP-запросы, выполняемые с помощью get_session, вызывают исключение OfflineModeIsEnabled.
Ошибки HTTP
Ниже приведен список HTTP-ошибок, которые возникают в huggingface_hub.
HfHubHTTPError
HfHubHTTPError — это базовый класс для любых HTTP-ошибок HF Hub. Он отвечает за разбор ответа сервера и формирование сообщения об ошибке, чтобы предоставить пользователю как можно больше информации.
класс huggingface_hub.errors.HfHubHTTPError
< source >( message: strresponse: Responseserver_message: str | None = None )
HTTPError для наследования при создании собственных ошибок HTTP, возникающих в HF Hub.
Любая ошибка HTTPError преобразуется как минимум в HfHubHTTPError. Если сервер возвращает какую-либо информацию, она будет добавлена к сообщению об ошибке.
Добавлены подробности:
- Request ID берётся из заголовков в порядке приоритета: “X-Request-Id”, “X-Amzn-Trace-Id”, “X-Amz-Cf-Id”.
- Сообщение об ошибке сервера из заголовка X-Error-Message.
- Сообщение об ошибке сервера, если его удалось найти в теле ответа.
Пример:
import httpx2
from huggingface_hub.utils import get_session, hf_raise_for_status, HfHubHTTPError
response = get_session().post(...)
try:
hf_raise_for_status(response)
except HfHubHTTPError as e:
print(str(e)) # formatted message
e.request_id, e.server_message # details returned by server
# Complete the error message with additional information once it's raised
e.append_to_message("
ate_commit` expects the repository to exist.")
raiseДобавьте дополнительную информацию к начальному сообщению HfHubHTTPError.
RepositoryNotFoundError
класс huggingface_hub.errors.RepositoryNotFoundError
< source >( message: strresponse: Responseserver_message: str | None = None )
Возникает при попытке получить доступ к URL hf.co с недействительным именем репозитория или с именем приватного репозитория, к которому у пользователя нет доступа.
Пример:
>>> from huggingface_hub import model_info
>>> model_info("<non_existent_repository>")
(...)
huggingface_hub.errors.RepositoryNotFoundError: 401 Client Error. (Request ID: PvMw_VjBMjVdMz53WKIzP)
Repository Not Found for url: https://huggingface.co/api/models/%3Cnon_existent_repository%3E.
Please make sure you specified the correct `repo_id` and `repo_type`.
If the repo is private, make sure you are authenticated and your token has the required permissions.
Invalid username or password.GatedRepoError
класс huggingface_hub.errors.GatedRepoError
< source >( message: strresponse: Responseserver_message: str | None = None )
Возникает при попытке доступа к репозиторию с ограниченным доступом, если пользователь не входит в список авторизованных.
Примечание: наследуется от RepositoryNotFoundError для обеспечения обратной совместимости.
Пример:
>>> from huggingface_hub import model_info
>>> model_info("<gated_repository>")
(...)
huggingface_hub.errors.GatedRepoError: 403 Client Error. (Request ID: ViT1Bf7O_026LGSQuVqfa)
Cannot access gated repo for url https://huggingface.co/api/models/ardent-figment/gated-model.
Access to model ardent-figment/gated-model is restricted and you are not in the authorized list.
Visit https://huggingface.co/ardent-figment/gated-model to ask for access.RevisionNotFoundError
класс huggingface_hub.errors.RevisionNotFoundError
< source >( message: strresponse: Responseserver_message: str | None = None )
Возникает при попытке доступа к URL hf.co с валидным репозиторием, но невалидной ревизией.
Пример:
>>> from huggingface_hub import hf_hub_download
>>> hf_hub_download('bert-base-cased', 'config.json', revision='<non-existent-revision>')
(...)
huggingface_hub.errors.RevisionNotFoundError: 404 Client Error. (Request ID: Mwhe_c3Kt650GcdKEFomX)
Revision Not Found for url: https://huggingface.co/bert-base-cased/resolve/%3Cnon-existent-revision%3E/config.json.RevisionResolutionError
Возникает при вызове HfApi.resolve_revision(), если ревизию не удалось сопоставить с хэшем коммита: Hub был недоступен (офлайн-режим, ошибка соединения, таймаут, простой Hub и т. д.), а соответствующая запись не была найдена в локальном кэше.
BadRequestError
класс huggingface_hub.errors.BadRequestError
< source >( message: strresponse: Responseserver_message: str | None = None )
Возникает при вызове hf_raise_for_status, если сервер возвращает ошибку HTTP 400.
EntryNotFoundError
Возникает, если запись не найдена ни локально, ни удалённо.
Пример:
>>> from huggingface_hub import hf_hub_download
>>> hf_hub_download('bert-base-cased', '<non-existent-file>')
(...)
huggingface_hub.errors.RemoteEntryNotFoundError (...)
>>> hf_hub_download('bert-base-cased', '<non-existent-file>', local_files_only=True)
(...)
huggingface_hub.utils.errors.LocalEntryNotFoundError (...)RemoteEntryNotFoundError
класс huggingface_hub.errors.RemoteEntryNotFoundError
< source >( message: strresponse: Responseserver_message: str | None = None )
Возникает при попытке доступа к URL hf.co с валидным репозиторием и ревизией, но некорректным именем файла.
Пример:
>>> from huggingface_hub import hf_hub_download
>>> hf_hub_download('bert-base-cased', '<non-existent-file>')
(...)
huggingface_hub.errors.EntryNotFoundError: 404 Client Error. (Request ID: 53pNl6M0MxsnG5Sw8JA6x)
Entry Not Found for url: https://huggingface.co/bert-base-cased/resolve/main/%3Cnon-existent-file%3E.LocalEntryNotFoundError
Возникает при попытке доступа к файлу или снимку, который отсутствует на диске, когда сеть отключена или недоступна (проблема с подключением). Запись может присутствовать на Hub.
Пример:
>>> from huggingface_hub import hf_hub_download
>>> hf_hub_download('bert-base-cased', '<non-cached-file>', local_files_only=True)
(...)
huggingface_hub.errors.LocalEntryNotFoundError: Cannot find the requested files in the disk cache and outgoing traffic has been disabled. To enable hf.co look-ups and downloads online, set 'local_files_only' to False.IncompleteSnapshotError
Возникает при вызове snapshot_download(), если Hub недоступен (офлайн, проблема с подключением или local_files_only=True), а кэшированный снимок известен как неполный: некоторые файлы, перечисленные в кэшированном списке дерева репозитория, отсутствуют в локальном снимке.
Это подкласс LocalEntryNotFoundError, сохранённый для обратной совместимости.
Атрибут snapshot_path содержит путь к неполному локальному снимку, что позволяет библиотеке нижнего уровня находить последние кэшированные файлы, даже если известно, что они неполные.
CachedRepoTreeNotFoundError
Возникает при вызове get_cached_repo_tree(), если для запрошенной ревизии не кэширован список дерева.
Список дерева заполняется как побочный эффект snapshot_download().
OfflineModeIsEnabled
Возникает, если запрос был отправлен, но переменная окружения HF_HUB_OFFLINE=1 установлена.
Телеметрия
huggingface_hub включает в себя вспомогательный инструмент для отправки телеметрии. Эта информация помогает нам отлаживать проблемы и определять приоритеты при разработке новых функций.
Пользователи могут в любой момент отключить сбор телеметрии, установив переменную окружения HF_HUB_DISABLE_TELEMETRY=1.
Телеметрия также отключается в автономном режиме (то есть при установке HF_HUB_OFFLINE=1).
Если вы являетесь разработчиком сторонней библиотеки, отправка данных телеметрии сводится к вызову send_telemetry.
Данные отправляются в отдельном потоке, чтобы по возможности минимизировать влияние на пользователей.
huggingface_hub.utils.send_telemetry
< source >( topic: strlibrary_name: str | None = Nonelibrary_version: str | None = Noneuser_agent: dict | str | None = None )
Параметры
- topic (
str) — Название отслеживаемой темы. Тема используется напрямую для формирования URL. Если вы хотите отслеживать подтемы, просто используйте разделитель «/». Примеры: «gradio», «transformers/examples»,… - library_name (
str, необязательный) — Название библиотеки, выполняющей HTTP-запрос. Будет добавлено в заголовок user-agent. - library_version (
str, необязательный) — Версия библиотеки, выполняющей HTTP-запрос. Будет добавлена в заголовок user-agent. - user_agent (
str,dict, необязательный) — Информация о user agent в виде словаря или одной строки. Она будет дополнена сведениями об установленных пакетах.
Отправляет телеметрию, которая помогает отслеживать использование различных библиотек HF.
Эти данные о использовании помогают нам отлаживать проблемы и определять приоритеты при разработке новых функций. Однако мы понимаем, что не все хотят делиться дополнительной информацией, и мы уважаем вашу конфиденциальность. Вы можете отключить сбор телеметрии, задав переменную окружения HF_HUB_DISABLE_TELEMETRY=1. Телеметрия также отключается в автономном режиме (то есть при установке HF_HUB_OFFLINE=1).
Сбор телеметрии выполняется в отдельном потоке, чтобы минимизировать влияние на пользователя.
Пример:
>>> from huggingface_hub.utils import send_telemetry
# Send telemetry without library information
>>> send_telemetry("ping")
# Send telemetry to subtopic with library information
>>> send_telemetry("gradio/local_link", library_name="gradio", library_version="3.22.1")
# Send telemetry with additional data
>>> send_telemetry(
... topic="examples",
... library_name="transformers",
... library_version="4.26.0",
... user_agent={"pipeline": "text_classification", "framework": "flax"},
... )Валидаторы
huggingface_hub включает в себя собственные валидаторы для автоматической проверки аргументов методов.
Проверка основана на работе, выполненной в Pydantic для валидации аннотаций типов, но с более ограниченным набором функций.
Универсальный декоратор
validate_hf_hub_args() — это универсальный декоратор для инкапсуляции методов, аргументы которых следуют правилам именования huggingface_hub. По умолчанию проверяются все аргументы, для которых реализован валидатор.
Если входные данные недействительны, возникает HFValidationError. Ошибка выбрасывается только для первого недействительного значения и останавливает процесс валидации.
Использование:
>>> from huggingface_hub.utils import validate_hf_hub_args
>>> @validate_hf_hub_args
... def my_cool_method(repo_id: str):
... print(repo_id)
>>> my_cool_method(repo_id="valid_repo_id")
valid_repo_id
>>> my_cool_method("other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.
>>> my_cool_method(repo_id="other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.validate_hf_hub_args
huggingface_hub.utils.validate_hf_hub_args
< source >( fn: ~CallableT )
Исключения
- HFValidationError — Если входные данные недействительны.
Проверяет значения, полученные в качестве аргумента для любого публичного метода huggingface_hub.
Цель этого декоратора — согласовать валидацию аргументов, используемых повсеместно. По умолчанию проверяются все определённые валидаторы.
Валидаторы:
- validate_repo_id():
repo_idдолжен быть"repo_name"или"namespace/repo_name". Namespace — это имя пользователя или организации. ~utils.smoothly_deprecate_legacy_arguments: Игнорироватьproxiesпри загрузке файлов (должно устанавливаться глобально).
Пример:
>>> from huggingface_hub.utils import validate_hf_hub_args
>>> @validate_hf_hub_args
... def my_cool_method(repo_id: str):
... print(repo_id)
>>> my_cool_method(repo_id="valid_repo_id")
valid_repo_id
>>> my_cool_method("other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.
>>> my_cool_method(repo_id="other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.HFValidationError
Общее исключение, выбрасываемое валидаторами huggingface_hub.
Наследуется от ValueError.
Валидаторы аргументов
Валидаторы также можно использовать по отдельности. Ниже приведен список всех аргументов, которые можно валидировать.
repo_id
Проверьте, что repo_id является допустимым.
Это не заменяет полноценную валидацию, выполняемую на Hub, а лишь позволяет по возможности избегать локальных несоответствий (например, передача repo_type в repo_id запрещена).
Правила:
- От 1 до 96 символов.
- Либо «repo_name», либо «namespace/repo_name»
- [a-zA-Z0-9] или ”-”, ”_”, ”.”
- ”—” и “..” запрещены
Допустимые значения: "foo", "foo/bar", "123", "Foo-BAR_foo.bar123"
Недопустимые значения: "datasets/foo/bar", ".repo_id", "foo--bar", "foo.git"
Пример:
>>> from huggingface_hub.utils import validate_repo_id
>>> validate_repo_id(repo_id="valid_repo_id")
>>> validate_repo_id(repo_id="other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.Обсуждалось в https://github.com/huggingface/huggingface_hub/issues/1008. В moon-landing (внутренний репозиторий):
smoothly_deprecate_legacy_arguments
Не совсем валидатор, но тоже сработал.
huggingface_hub.utils._validators.smoothly_deprecate_legacy_arguments
< source >( fn_name: strkwargs: dict )
Плавный вывод из использования устаревших аргументов в кодовой базе huggingface_hub.
Эта функция игнорирует некоторые устаревшие аргументы из kwargs и предупреждает пользователя об их игнорировании. Цель — не ломать существующий код, направляя пользователя к новому способу работы.
Список устаревших аргументов:
proxies: Для настройки прокси пользователь должен либо использовать переменную окружения HTTP_PROXY, либо вручную настроитьhttpx2.Clientс помощью функции set_client_factory().В huggingface_hub 0.x
proxiesбыл словарём, который передавался напрямую вrequests.request. Начиная с huggingface_hub 1.x, поддержкаproxiesдля отдельных запросов больше не предоставляется. В частности, невозможно настроить прокси для каждого запроса отдельно. Решение — настроить это глобально с помощью функции set_client_factory() или переменной окружения HTTP_PROXY.Подробнее см.:
resume_download: устарело без замены.huggingface_hubвсегда возобновляет загрузку, когда это возможно.force_filename: устарело без замены. Имя файла всегда совпадает с именем на Hub.local_dir_use_symlinks: устарело без замены. Загрузка в локальный каталог больше не использует символьные ссылки.