Hub Python Library documentation
ファイルシステムAPI
ファイルシステムAPI
HfFileSystem クラスは、fsspec をベースとした Hugging Face Hub 向けの Pythonic なファイルインターフェースを提供します。
HfFileSystem
HfFileSystem は fsspec をベースにしているため、fsspec が提供するほとんどの API と互換性があります。詳細については、こちらのガイドと fsspec の API リファレンスを参照してください。
クラス huggingface_hub.HfFileSystem
< source >( *args**kwargs )
パラメータ
- endpoint (
str, 省略可) — Hub のエンドポイントです。デフォルト値は https://huggingface.co です。 - token (
boolまたはstr、省略可能) — 有効なユーザーアクセストークン(文字列)です。デフォルトでは、ローカルに保存されたトークンが使用されます。これが認証の推奨方法です(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 互換性を提供しており、それを必要とするライブラリ(
pandasで Hugging Face のデータセットを直接読み込む場合など)に便利です。ただし、この互換性レイヤーにより追加のオーバーヘッドが発生します。パフォーマンスと信頼性を高めるため、可能な場合はHfApiのメソッドを使用することをお勧めします。
ファイルシステムはhf://プロトコルのパスをサポートしており、以下のURLスキームに従います:
- Models、Datasets、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)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 の場合、パスからファイル情報へのマッピングを含む dict を返します。デフォルトは False です。 - refresh (
bool, 省略可) — True の場合、キャッシュをバイパスして最新のデータを取得します。デフォルトは False です。 - revision (
str, 任意) — 一覧を取得する git リビジョン。
戻り値
Union[list[str], dict[str, dict[str, Any]]]
パスのリストまたはファイル情報の辞書。
パス以下のすべてのファイルをリスト表示します。
詳細については、fsspecのドキュメントを参照してください。
大規模なリポジトリは、Hubの
treeエンドポイントのカーソルベースのページネーションを回避するために、ディレクトリごとに並列で一覧表示されます。この設定は、HfFileSystemのmax_workers引数で調整できます。
get_file
< source >( rpathlpath = Nonecallback = <fsspec.callbacks.NoOpCallback object at 0x7f9673955c90>outfile = None**kwargs )
単一のリモートファイルをローカルにコピーします。
注: 可能な場合は、パフォーマンス向上のため
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]
ファイルまたはディレクトリに関する情報を取得します。
詳細については、fsspecのドキュメントを参照してください。
注: 可能な場合は、パフォーマンス向上のため
HfApi.get_paths_info()またはHfApi.repo_info()を使用してください (バケットの場合はHfApi.get_bucket_paths_info()またはHfApi.bucket_info())
invalidate_cache
< source >( path: str | None = None )
指定されたパスのキャッシュをクリアします。
詳細については、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()を使用してください。
resolve_path
< source >( path: strrevision: str | None = None ) → HfFileSystemResolvedPath
パラメータ
戻り値
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 )
リポジトリからファイルを削除します。
詳細については、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のドキュメントを参照してください。