Hub Python Library documentation
API du système de fichiers
API du système de fichiers
La classe HfFileSystem fournit une interface de fichiers pythonique vers le Hugging Face Hub basée sur fsspec.
HfFileSystem
HfFileSystem est basé sur fsspec, il est donc compatible avec la plupart des API qu’il propose. Pour plus de détails, consultez notre guide et la référence API de fsspec.
classe huggingface_hub.HfFileSystem
< source >( *args**kwargs )
Paramètres
- endpoint (
str, facultatif) — Endpoint du Hub. Par défaut, https://huggingface.co. - token (
booloustr, facultatif) — Un jeton d’accès utilisateur valide (chaîne de caractères). Par défaut, le jeton enregistré localement est utilisé, ce qui est la méthode recommandée pour l’authentification (voir https://huggingface.co/docs/huggingface_hub/quick-start#authentication). Pour désactiver l’authentification, passezFalse. - block_size (
int, facultatif) — Taille du bloc pour la lecture et l'écriture des fichiers. - expand_info (
bool, facultatif) — Indique s'il faut étendre les informations des fichiers. - max_workers (
int, facultatif) — Nombre maximal de requêtes concurrentes utilisées pour lister de grands répertoires en parallèle (voir find()). Valeur par défaut : 16. Définissez-le à 1 pour désactiver les listings parallèles. - live_follow (
bool, facultatif) — Indique s'il faut suivre les modifications des fichiers dans les buckets au fur et à mesure qu'elles se produisent sur le Hub, afin que les listes mises en cache restent à jour sans avoir à appeler manuellement HfFileSystem.invalidate_cache(). Lorsqu'il est activé, l'énumération d'un bucket ouvre une connexion en arrière-plan vers le flux d'événements du Hub pour ce bucket. N'a aucun effet sur les dépôts de modèles, de jeux de données et d'espaces (le Hub ne diffuse pas les modifications pour ceux-ci). - **storage_options (
dict, facultatif) — Options supplémentaires pour le système de fichiers. Voir la documentation de fsspec.
Accédez à un dépôt distant du Hugging Face Hub comme s’il s’agissait d’un système de fichiers local.
HfFileSystem offre une compatibilité avec fsspec, ce qui est utile pour les bibliothèques qui en ont besoin (par exemple, la lecture directe des jeux de données Hugging Face avec
pandas). Cependant, cette couche de compatibilité introduit un surcoût supplémentaire. Pour de meilleures performances et une meilleure fiabilité, il est recommandé d’utiliser les méthodes deHfApilorsque c’est possible.
Le système de fichiers prend en charge les chemins pour le protocole hf://, qui suit les schémas d’URL suivants :
- Dépôts de modèles, de jeux de données et d'espaces :
hf://<repo-id>[@<revision>]/<path/in/repo>
hf://datasets/<repo-id>[@<revision>]/<path/in/repo>
hf://spaces/<repo-id>[@<revision>]/<path/in/repo>Note : lors de l'utilisation directe de HfFileSystem, le préfixe de protocole hf:// est facultatif dans les chemins.
Utilisation :
>>> 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)Spécifiez un jeton pour l’authentification :
>>> from huggingface_hub import HfFileSystem
>>> hffs = HfFileSystem(token=token)cp_file
< source >( path1: strpath2: strrevision: str | None = None**kwargs )
Copier un fichier au sein d’un dépôt, entre dépôts, ou vers un bucket.
Note : Utilisez
HfApi.upload_file()lorsque c'est possible pour de meilleures performances.
existe
< source >( path**kwargs ) → bool
Vérifier si un fichier existe.
Pour plus de détails, consultez la documentation de fsspec.
Note : Utilisez
HfApi.file_exists()lorsque c'est possible pour de meilleures performances.
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]]]
Paramètres
- path (
str) — Chemin racine à partir duquel lister les fichiers. - maxdepth (
int, facultatif) — Profondeur maximale à atteindre dans les sous-répertoires. - withdirs (
bool, facultatif) — Inclut les chemins des répertoires dans la sortie. Valeur par défaut : False. - detail (
bool, facultatif) — Si True, renvoie un dictionnaire associant les chemins aux informations de fichier. Valeur par défaut : False. - refresh (
bool, facultatif) — Si True, contourne le cache et récupère les données les plus récentes. Valeur par défaut : False. - revision (
str, facultatif) — La révision git à partir de laquelle lister.
Retourne
Union[list[str], dict[str, dict[str, Any]]]
Liste de chemins ou dictionnaire d’informations de fichiers.
Liste tous les fichiers situés sous le chemin.
Pour plus de détails, consultez la documentation de fsspec.
Les dépôts volumineux sont répertoriés répertoire par répertoire, en parallèle, afin de contourner la pagination basée sur un curseur de l’endpoint
treedu Hub. Ajustez ce comportement avec l’argumentmax_workersde HfFileSystem.
get_file
< source >( rpathlpath = Nonecallback = <fsspec.callbacks.NoOpCallback object at 0x7f9673955c90>outfile = None**kwargs )
Paramètres
- rpath (
str) — Chemin distant à partir duquel effectuer le téléchargement. - lpath (
str, facultatif) — Chemin local de téléchargement. Peut être omis sioutfileest fourni. - callback (
Callback, optional) — Optional callback to track download progress. Defaults to no callback. - outfile (
IO, facultatif) — Objet de type fichier facultatif vers lequel écrire. S'il est fourni,lpathest ignoré.
Copier un fichier distant unique en local.
Note : Lorsque c'est possible, utilisez
HfApi.hf_hub_download()ouHfApi.download_bucket_filespour de meilleures performances.
glob
< source >( path: strmaxdepth: int | None = None**kwargs ) → list[str]
Trouver des fichiers par correspondance de glob.
Pour plus de détails, consultez la documentation de fsspec.
info
< source >( path: strrefresh: bool = Falserevision: str | None = None**kwargs ) → dict[str, Any]
Paramètres
- path (
str) — Chemin pour lequel obtenir des informations. - refresh (
bool, facultatif) — Si True, contourne le cache et récupère les données les plus récentes. Valeur par défaut : False. - revision (
str, facultatif) — La révision git à partir de laquelle obtenir les informations.
Retourne
dict[str, Any]
Dictionnaire contenant les informations sur le fichier (type, taille, informations de commit, etc.).
Obtenir des informations sur un fichier ou un répertoire.
Pour plus de détails, consultez la documentation de fsspec.
Note : lorsque c'est possible, utilisez
HfApi.get_paths_info()ouHfApi.repo_info()pour de meilleures performances (ouHfApi.get_bucket_paths_info()ouHfApi.bucket_info()pour les buckets)
invalidate_cache
< source >( path: str | None = None )
Effacer le cache pour un chemin donné.
Pour plus de détails, consultez la documentation de fsspec.
isdir
< source >( path ) → bool
Vérifie si un chemin est un répertoire.
Pour plus de détails, consultez la documentation de fsspec.
isfile
< source >( path ) → bool
Vérifier si un chemin est un fichier.
Pour plus de détails, consultez la documentation de fsspec.
ls
< source >( path: strdetail: bool = Truerefresh: bool = Falserevision: str | None = None**kwargs ) → list[Union[str, dict[str, Any]]]
Paramètres
- path (
str) — Chemin vers le répertoire. - detail (
bool, facultatif) — Si True, renvoie une liste de dictionnaires contenant des informations sur les fichiers. Si False, renvoie une liste de chemins de fichiers. Valeur par défaut : True. - refresh (
bool, facultatif) — Si True, contourne le cache et récupère les données les plus récentes. Valeur par défaut : False. - revision (
str, facultatif) — La révision git à partir de laquelle lister.
Retourne
list[Union[str, dict[str, Any]]]
Liste de chemins de fichiers (si detail=False) ou liste de dictionnaires d’informations sur les fichiers (si detail=True).
Lister le contenu d'un répertoire.
Pour plus de détails, consultez la documentation de fsspec.
Note : Utilisez
HfApi.list_repo_tree()lorsque c'est possible pour de meilleures performances.
modifié
< source >( path: str**kwargs ) → datetime
Obtenir l'heure de dernière modification d'un fichier.
Pour plus de détails, consultez la documentation de fsspec.
resolve_path
< source >( path: strrevision: str | None = None ) → HfFileSystemResolvedPath
Paramètres
- path (
str) — Chemin à résoudre. - revision (
str, facultatif) — La révision du dépôt à résoudre. Par défaut, la révision spécifiée dans le chemin.
Retourne
HfFileSystemResolvedPath
Informations sur le chemin résolu contenant repo_type, repo_id, revision et path_in_repo.
Lève
ValueError ou NotImplementedError
ValueError— Si path contient des informations de révision contradictoires.NotImplementedError— Lors de la tentative d’affichage de la liste des dépôts.
Résoudre un chemin de système de fichiers Hugging Face en ses composants.
rm
< source >( path: strrecursive: bool = Falsemaxdepth: int | None = Nonerevision: str | None = None**kwargs )
Paramètres
- path (
str) — Chemin à supprimer. - recursive (
bool, facultatif) — Si True, supprime le répertoire et tout son contenu. Valeur par défaut : False. - maxdepth (
int, facultatif) — Nombre maximal de sous-répertoires à parcourir lors d'une suppression récursive. - revision (
str, facultatif) — La révision git à partir de laquelle supprimer.
Supprimer des fichiers d'un dépôt.
Pour plus de détails, consultez la documentation de fsspec.
Note : Utilisez
HfApi.delete_file()lorsque c'est possible, pour de meilleures performances.
url
< source >( path: str ) → str
Obtenir l'URL HTTP du chemin donné.
walk
< source >( path: str*args**kwargs ) → Iterator[tuple[str, list[str], list[str]]]
Retourne tous les fichiers situés sous le chemin donné.
Pour plus de détails, consultez la documentation de fsspec.