Hub Python Library documentation
API файловой системы
API файловой системы
Класс HfFileSystem предоставляет интерфейс для работы с файлами в стиле Python для Hugging Face Hub на основе fsspec.
HfFileSystem
HfFileSystem основана на fsspec, поэтому она совместима с большинством API, которые предоставляет эта библиотека. Подробнее см. в нашем руководстве и в справочнике API fsspec.
класс huggingface_hub.HfFileSystem
< source >( *args**kwargs )
Параметры
- endpoint (
str, необязательный) — Endpoint Hub. По умолчанию https://huggingface.co. - token (
boolorstr, необязательный) — Действительный токен доступа пользователя (строка). По умолчанию используется локально сохранённый токен, что является рекомендуемым способом аутентификации (см. https://huggingface.co/docs/huggingface_hub/quick-start#authentication). Чтобы отключить аутентификацию, передайтеFalse. - block_size (
int, необязательный) — Размер блока для чтения и записи файлов. - expand_info (
bool, необязательный) — Определяет, следует ли расширять информацию о файлах. - max_workers (
int, необязательный) — Максимальное количество одновременных запросов, используемых для параллельного получения списка содержимого больших каталогов (см. find()). По умолчанию равно 16. Установите значение 1, чтобы отключить параллельное получение списков. - live_follow (
bool, необязательный) — Определяет, следует ли за изменениями файлов в бакетах по мере их появления на Hub, чтобы кэшированные списки оставались актуальными без ручных вызовов HfFileSystem.invalidate_cache(). При включении этого параметра получение списка бакета открывает фоновое соединение с потоком событий Hub для данного бакета. Не влияет на репозитории моделей, датасетов и пространств (Hub не предоставляет изменения для них). - **storage_options (
dict, необязательный) — Дополнительные параметры для файловой системы. См. документацию fsspec.
Доступ к удалённому репозиторию Hugging Face Hub как к локальной файловой системе.
HfFileSystem обеспечивает совместимость с fsspec, что полезно для библиотек, требующих её (например, для прямого чтения наборов данных Hugging Face с помощью
pandas). Однако этот слой совместимости вносит дополнительные накладные расходы. Для лучшей производительности и надёжности рекомендуется по возможности использовать методыHfApi.
Файловая система поддерживает пути для протокола hf://, который следует этим схемам URL:
- Репозитории моделей, наборов данных и Spaces:
hf://<repo-id>[@<revision>]/<path/in/repo>
hf://datasets/<repo-id>[@<revision>]/<path/in/repo>
hf://spaces/<repo-id>[@<revision>]/<path/in/repo>Примечание: при использовании HfFileSystem напрямую указание префикса протокола hf:// в путях является необязательным.
Использование:
>>> from huggingface_hub import hffs
>>> # List files
>>> hffs.glob("my-username/my-model/*.bin")
['my-username/my-model/pytorch_model.bin']
>>> hffs.ls("datasets/my-username/my-dataset", detail=False)
['datasets/my-username/my-dataset/.gitattributes', 'datasets/my-username/my-dataset/README.md', 'datasets/my-username/my-dataset/data.json']
>>> # Read/write files
>>> with hffs.open("my-username/my-model/pytorch_model.bin") as f:
... data = f.read()
>>> with hffs.open("my-username/my-model/pytorch_model.bin", "wb") as f:
... f.write(data)Укажите токен для аутентификации:
>>> from huggingface_hub import HfFileSystem
>>> hffs = HfFileSystem(token=token)cp_file
< source >( path1: strpath2: strrevision: str | None = None**kwargs )
Скопируйте файл внутри репозитория, между репозиториями или в бакет.
Примечание: по возможности используйте
HfApi.upload_file()для лучшей производительности.
существует
< source >( path**kwargs ) → bool
Проверьте, существует ли файл.
Для получения подробной информации обратитесь к документации fsspec.
Примечание: по возможности используйте
HfApi.file_exists()для лучшей производительности.
find
< source >( path: strmaxdepth: int | None = Nonewithdirs: bool = Falsedetail: bool = Falserefresh: bool = Falserevision: str | None = None**kwargs ) → Union[list[str], dict[str, dict[str, Any]]]
Параметры
- path (
str) — Корневой путь для получения списка файлов. - maxdepth (
int, необязательный) — Максимальная глубина, на которую следует спускаться в подкаталоги. - withdirs (
bool, необязательный) — Включать пути к каталогам в вывод. По умолчанию False. - detail (
bool, необязательный) — Если True, возвращает словарь, сопоставляющий пути с информацией о файлах. По умолчанию False. - refresh (
bool, необязательный) — Если True, обходит кэш и загружает последние данные. По умолчанию False. - revision (
str, необязательный) — Git-ревизия, из которой нужно получить список.
Возвращает
Union[list[str], dict[str, dict[str, Any]]]
Список путей или словарь с информацией о файлах.
Список всех файлов ниже по пути.
Для получения подробной информации обратитесь к документации fsspec.
Крупные репозитории перечисляются по каталогам параллельно, чтобы обойти пагинацию на основе курсора в эндпоинте
treeHub. Настройте это с помощью аргументаmax_workersкласса HfFileSystem.
get_file
< source >( rpathlpath = Nonecallback = <fsspec.callbacks.NoOpCallback object at 0x7f9673955c90>outfile = None**kwargs )
Параметры
- rpath (
str) — Удалённый путь для загрузки. - lpath (
str, необязательный) — Локальный путь для загрузки. Можно опустить, если указанoutfile. - callback (
Callback, необязательный) — Необязательный callback для отслеживания прогресса загрузки. По умолчанию callback не используется. - outfile (
IO, необязательный) — Необязательный объект, похожий на файл, для записи. Если указан,lpathигнорируется.
Копирование одного удалённого файла на локальный.
Примечание: по возможности используйте
HfApi.hf_hub_download()илиHfApi.download_bucket_filesдля лучшей производительности.
glob
< source >( path: strmaxdepth: int | None = None**kwargs ) → list[str]
Найдите файлы с помощью glob-сопоставления.
Для получения подробной информации обратитесь к документации fsspec.
информация
< source >( path: strrefresh: bool = Falserevision: str | None = None**kwargs ) → dict[str, Any]
Параметры
- path (
str) — Путь, для которого нужно получить информацию. - refresh (
bool, необязательный) — Если True, обходит кэш и загружает последние данные. По умолчанию False. - revision (
str, необязательный) — Git-ревизия, из которой нужно получить информацию.
Возвращает
dict[str, Any]
Словарь, содержащий информацию о файле (тип, размер, сведения о коммите и т. д.).
Получить информацию о файле или каталоге.
Для получения подробной информации обратитесь к документации fsspec.
Примечание: по возможности используйте
HfApi.get_paths_info()илиHfApi.repo_info()для лучшей производительности (илиHfApi.get_bucket_paths_info()илиHfApi.bucket_info()для бакетов)
invalidate_cache
< source >( path: str | None = None )
Очистить кэш для указанного пути.
Для получения подробной информации обратитесь к документации fsspec.
isdir
< source >( path ) → bool
Проверка, является ли путь каталогом.
Для получения подробной информации обратитесь к документации fsspec.
isfile
< source >( path ) → bool
Проверка, является ли путь файлом.
Для получения подробной информации обратитесь к документации fsspec.
ls
< source >( path: strdetail: bool = Truerefresh: bool = Falserevision: str | None = None**kwargs ) → list[Union[str, dict[str, Any]]]
Параметры
- path (
str) — Путь к каталогу. - detail (
bool, необязательный) — Если True, возвращает список словарей с информацией о файлах. Если False, возвращает список путей к файлам. По умолчанию True. - refresh (
bool, необязательный) — Если True, обходит кэш и загружает последние данные. По умолчанию False. - revision (
str, необязательный) — Git-ревизия, из которой нужно получить список.
Возвращает
list[Union[str, dict[str, Any]]]
Список путей к файлам (если detail=False) или список словарей с информацией о файлах (если detail=True).
Просмотрите содержимое каталога.
Для получения подробной информации обратитесь к документации fsspec.
Примечание: по возможности используйте
HfApi.list_repo_tree()для лучшей производительности.
изменено
< source >( path: str**kwargs ) → datetime
Получить время последнего изменения файла.
Для получения подробной информации обратитесь к документации fsspec.
resolve_path
< source >( path: strrevision: str | None = None ) → HfFileSystemResolvedPath
Параметры
- path (
str) — Путь для разрешения. - revision (
str, необязательный) — Ревизия репозитория для разрешения. По умолчанию используется ревизия, указанная в пути.
Возвращает
HfFileSystemResolvedPath
Информация о разрешённом пути, содержащая repo_type, repo_id, revision и path_in_repo.
Исключения
ValueError или NotImplementedError
ValueError— если в path содержится противоречивая информация о ревизии.NotImplementedError— при попытке получить список репозиториев.
Разобрать путь файловой системы Hugging Face на его компоненты.
rm
< source >( path: strrecursive: bool = Falsemaxdepth: int | None = Nonerevision: str | None = None**kwargs )
Параметры
- path (
str) — Путь для удаления. - recursive (
bool, необязательный) — Если True, удаляет каталог и всё его содержимое. По умолчанию False. - maxdepth (
int, необязательный) — Максимальное количество подкаталогов, которые нужно посетить при рекурсивном удалении. - revision (
str, необязательный) — Git-ревизия, от которой выполняется удаление.
Удаление файлов из репозитория.
Для получения подробной информации обратитесь к документации fsspec.
Примечание: По возможности используйте
HfApi.delete_file()для лучшей производительности.
url
< source >( path: str ) → str
Получите HTTP-URL для указанного пути.
walk
< source >( path: str*args**kwargs ) → Iterator[tuple[str, list[str], list[str]]]
Возвращает все файлы ниже указанного пути.
Для получения подробной информации обратитесь к документации fsspec.