diff --git a/docs/source/fr/_toctree.yml b/docs/source/fr/_toctree.yml index b42faa9b79..6eaf8f07a8 100644 --- a/docs/source/fr/_toctree.yml +++ b/docs/source/fr/_toctree.yml @@ -9,4 +9,78 @@ - title: "Concepts" sections: - local: concepts/git_vs_http - title: Git ou HTTP? \ No newline at end of file + title: Git ou HTTP? + - local: guides/overview + title: Vue d'ensemble + - local: guides/download + title: Télécharger des fichiers + - local: guides/upload + title: Upload des fichiers + - local: guides/cli + title: Utiliser le CLI + - local: guides/hf_file_system + title: HfFileSystem + - local: guides/repository + title: Dépôts + - local: guides/search + title: Rechercher + - local: guides/inference + title: Inférence + - local: guides/inference_endpoints + title: Inference Endpoints + - local: guides/community + title: Community Tab + - local: guides/collections + title: Collections + - local: guides/manage-cache + title: Cache + - local: guides/model-cards + title: Model cards + - local: guides/manage-spaces + title: Gérez vos Spaces + - local: guides/integrations + title: Intégrer une librairie + - local: guides/webhooks_server + title: Webhooks +- title: "Concepts" + sections: + - local: concepts/git_vs_http + title: Git ou HTTP? +- title: "Référence" + sections: + - local: package_reference/overview + title: Vue d'ensemble + - local: package_reference/login + title: Connexion et déconnexion + - local: package_reference/environment_variables + title: Variables d'environnement + - local: package_reference/repository + title: Gérer les dépôts locaux et en ligne + - local: package_reference/hf_api + title: Hugging Face Hub API + - local: package_reference/file_download + title: Téléchargement des fichiers + - local: package_reference/mixins + title: Mixins & méthodes de sérialisations + - local: package_reference/inference_client + title: Inference Client + - local: package_reference/inference_endpoints + title: Inference Endpoints + - local: package_reference/hf_file_system + title: HfFileSystem + - local: package_reference/utilities + title: Utilitaires + - local: package_reference/community + title: Discussions et Pull Requests + - local: package_reference/cache + title: Système de cache + - local: package_reference/cards + title: Repo Cards et metadata + - local: package_reference/space_runtime + title: Space runtime + - local: package_reference/collections + title: Collections + - local: package_reference/tensorboard + title: Logger Tensorboard + - local: package_reference/webhooks_server + title: Webhooks \ No newline at end of file diff --git a/docs/source/fr/guides/hf_file_system.md b/docs/source/fr/guides/hf_file_system.md new file mode 100644 index 0000000000..749ddc43ff --- /dev/null +++ b/docs/source/fr/guides/hf_file_system.md @@ -0,0 +1,110 @@ + + +# Intéragire avec le Hub à partir de l'API Filesystem + +En plus d'[`HfApi`], la librairie `huggingface_hub` fournit [`HfFileSystem`], une interface vers le Hub Hugging Face, basée sur Python, et [compatible fsspec](https://filesystem-spec.readthedocs.io/en/latest/). [`HfFileSystem`] fournit les opérations classiques des filesystem telles que +`cp`, `mv`, `ls`, `du`, `glob`, `get_file`, et `put_file`. + +## Utilisation + +```python +>>> from huggingface_hub import HfFileSystem +>>> fs = HfFileSystem() + +>>> # Liste tous les fichiers d'un chemin +>>> fs.ls("datasets/my-username/my-dataset-repo/data", detail=False) +['datasets/my-username/my-dataset-repo/data/train.csv', 'datasets/my-username/my-dataset-repo/data/test.csv'] + +>>> # Liste tous les fichiers ".csv" d'un dépôt +>>> fs.glob("datasets/my-username/my-dataset-repo/**.csv") +['datasets/my-username/my-dataset-repo/data/train.csv', 'datasets/my-username/my-dataset-repo/data/test.csv'] + +>>> # Lis un fichier distant +>>> with fs.open("datasets/my-username/my-dataset-repo/data/train.csv", "r") as f: +... train_data = f.readlines() + +>>> # Lis le contenu d'un fichier distant en renvoyant un string +>>> train_data = fs.read_text("datasets/my-username/my-dataset-repo/data/train.csv", revision="dev") + +>>> # Lis un fichier distant +>>> with fs.open("datasets/my-username/my-dataset-repo/data/validation.csv", "w") as f: +... f.write("text,label") +... f.write("Fantastic movie!,good") +``` + +L'argument optionnel `revision` peut être passé pour exécuter une opération sur un commit spécifique en précisant la branche, le tag, ou le hash de commit. + +À la différence des fonction natives de Python `open`, la fonction `open` de `fsspec` est en mode binaire par défaut, `"rb"`. Ceci signifie que vous devez explicitement définir le mode à `"r"` pour lire et `"w"` pour écrire en mode texte. Les modes `"a"` et `"ab"` ne sont pas encore supportés. + +## Intégrations + +[`HfFileSystem`] peut être utilisé avec toutes les librairies qui intègrent `fsspec`, tant que l'URL a le schéma suivant: + +``` +hf://[][@]/ +``` + +Le `repo_type_prefix` vaut `datasets/` pour les datasets, `spaces/` pour les spaces, et les modèles n'ont pas besoin de préfixe dans l'URL. + +Ci-dessous quelques intégrations intéressantes où [`HfFileSystem`] simplifie l'intéraction avec le Hub: + +* Lire/modifier un dataframe [Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html#reading-writing-remote-files) depuis/vers un dépôt du Hub: + + ```python + >>> import pandas as pd + + >>> # Lis un fichier CSV distant en renvoyant un dataframe + >>> df = pd.read_csv("hf://datasets/my-username/my-dataset-repo/train.csv") + + >>> # Enregistre un dataframe vers un fichier CSV distant + >>> df.to_csv("hf://datasets/my-username/my-dataset-repo/test.csv") + ``` + +Un workflow similaire peut-être utilisé pour les dataframes [Dask](https://docs.dask.org/en/stable/how-to/connect-to-remote-data.html) et [Polars](https://pola-rs.github.io/polars/py-polars/html/reference/io.html) + +* Requête afin d'obtenir des fichiers du Hub (distants) avec [DuckDB](https://duckdb.org/docs/guides/python/filesystems): + + ```python + >>> from huggingface_hub import HfFileSystem + >>> import duckdb + + >>> fs = HfFileSystem() + >>> duckdb.register_filesystem(fs) + >>> # Requête pour obtenir un fichier distant et récupérer les résultats sous forme de dataframe + >>> fs_query_file = "hf://datasets/my-username/my-dataset-repo/data_dir/data.parquet" + >>> df = duckdb.query(f"SELECT * FROM '{fs_query_file}' LIMIT 10").df() + ``` + +* Utilisation du Hub pour stocker des tableau avec [Zarr](https://zarr.readthedocs.io/en/stable/tutorial.html#io-with-fsspec): + + ```python + >>> import numpy as np + >>> import zarr + + >>> embeddings = np.random.randn(50000, 1000).astype("float32") + + >>> # Écriture d'un tableau vers un dépôt + >>> with zarr.open_group("hf://my-username/my-model-repo/array-store", mode="w") as root: + ... foo = root.create_group("embeddings") + ... foobar = foo.zeros('experiment_0', shape=(50000, 1000), chunks=(10000, 1000), dtype='f4') + ... foobar[:] = embeddings + + >>> # Lecture d'un tableau depuis un dépôt + >>> with zarr.open_group("hf://my-username/my-model-repo/array-store", mode="r") as root: + ... first_row = root["embeddings/experiment_0"][0] + ``` + +## Authentification + +Souvent, vous devrez être connecté avec un compte Hugging Face pour intéragir avec le Hub. Consultez la section [connexion](../quick-start#login) de la documentation pour en apprendre plus sur les méthodes d'authentification sur le Hub. + +Il est aussi possible de se connecter par le code en passant l'agument `token` à [`HfFileSystem`]: + +```python +>>> from huggingface_hub import HfFileSystem +>>> fs = HfFileSystem(token=token) +``` + +Si vous vous connectez de cette manière, faites attention à ne pas accidentellement révéler votre token en cas de partage du code source! diff --git a/docs/source/fr/package_reference/hf_file_system.md b/docs/source/fr/package_reference/hf_file_system.md new file mode 100644 index 0000000000..e36c6393fa --- /dev/null +++ b/docs/source/fr/package_reference/hf_file_system.md @@ -0,0 +1,16 @@ + + +# L'API FileSystem + +La classe `HfFileSystem` offre une interface Python pour le Hub Hugging Face basée sur [`fsspec`](https://filesystem-spec.readthedocs.io/en/latest/). + +## HfFileSystem + +`HfFileSystem` est basé sur [fsspec](https://filesystem-spec.readthedocs.io/en/latest/), donc cette classe est compatible avec la plupart des API offertes par fsspec. Pour plus de détails, consultez [notre guide](../guides/hf_file_system) et les [Références](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem) de l'API fsspec. + +[[autodoc]] HfFileSystem + - __init__ + - resolve_path + - ls