datagouv-toolkit
Toolbox en ligne de commande pour découvrir, évaluer, sélectionner et télécharger des jeux de données publiés sur data.gouv.fr, puis transmettre proprement les ressources retenues à des outils comme R, Python, DuckDB ou d'autres outils Unix.
Le projet n'a pas vocation à remplacer ces outils d'analyse. Il se concentre sur la phase amont : exploration du catalogue, résolution d'un dataset, inspection des métadonnées, sélection des ressources, téléchargement et audit structurel léger.
Installation
Depuis un clone du dépôt :
python -m pip install -e .
L'installation fournit une commande principale unique :
datagouv --help
Les anciens points d'entrée spécialisés (datagouv-download, datagouv-workflow, datagouv-inspect-csv et datagouv-catalog-stats) restent disponibles pour compatibilité.
Tutoriel
Pour une prise en main progressive avec explications des notions d'API HTTP, JSON, datasets, ressources, métadonnées, filtrage, sélection non interactive, handoff, data profiling et reproductibilité :
Workflow cible
explorer le catalogue
↓
résoudre un dataset
↓
évaluer et filtrer ses ressources
↓
sélectionner sans interaction si nécessaire
↓
obtenir des URL ou un manifeste
↓
télécharger éventuellement
↓
R / Python / DuckDB / jq / autres outils
Utilisation
Rechercher un dataset
datagouv search "accidents corporels"
Résoudre un dataset sans interaction
Lorsque plusieurs résultats correspondent à une recherche, le comportement par défaut reste interactif. Pour un script, --first choisit le premier résultat après application éventuelle des filtres --producer et --title :
datagouv dataset \
"accidents corporels" \
--producer "Ministère de l'intérieur" \
--first
Pour les automatisations sensibles à la reproductibilité, un identifiant stable de dataset reste préférable à une recherche textuelle.
Inspecter et sélectionner ses ressources
datagouv resources \
"accidents corporels" \
--producer "Ministère de l'intérieur"
La commande resources peut filtrer les ressources avant téléchargement :
datagouv resources \
"accidents corporels" \
--producer "Ministère de l'intérieur" \
--format csv \
--resource-title "2024" \
--first
Pour obtenir uniquement les URL sélectionnées, une par ligne :
datagouv resources \
"accidents corporels" \
--producer "Ministère de l'intérieur" \
--format csv \
--first \
--urls
Cette sortie est conçue pour les pipelines Unix, par exemple :
datagouv resources \
"accidents corporels" \
--producer "Ministère de l'intérieur" \
--format csv \
--first \
--urls | xargs -n1 wget
Pour obtenir un manifeste JSON compact décrivant le dataset et les ressources sélectionnées :
datagouv resources \
"accidents corporels" \
--producer "Ministère de l'intérieur" \
--format csv \
--first \
--manifest | jq .
Le manifeste contient pour chaque ressource son identifiant, son titre, son format, sa taille connue et son URL. --json reste disponible pour exposer les objets ressource sélectionnés plus largement. Les modes --json, --urls et --manifest sont exclusifs.
Afficher les métadonnées
datagouv metadata \
"accidents corporels" \
--producer "Ministère de l'intérieur"
Pour obtenir le JSON brut du dataset :
datagouv inspect \
"accidents corporels" \
--producer "Ministère de l'intérieur"
Télécharger une ressource
datagouv download \
"accidents corporels" \
--producer "Ministère de l'intérieur" \
--format csv \
--resource-title "Caract_2024" \
--output data
Pour obtenir un résultat exploitable par une machine, ajouter --json :
datagouv download \
"accidents corporels" \
--producer "Ministère de l'intérieur" \
--format csv \
--resource-title "Caract_2024" \
--output data \
--json | jq '.resources[] | {path, downloaded}'
La sortie JSON contient le dataset résolu, le répertoire de destination et le résultat de chaque ressource, notamment son chemin local et le booléen downloaded.
Télécharger et auditer automatiquement
datagouv workflow \
"accidents corporels" \
--producer "Ministère de l'intérieur" \
--format csv \
--resource-title "Caract_2024" \
--output data \
--audit-dir audits
Le workflow résout le dataset, sélectionne les ressources, les télécharge puis audite automatiquement les fichiers CSV. Sa sortie structurée est disponible avec --json.
Auditer un CSV local
datagouv inspect-csv fichier.csv
L'audit structurel est également disponible comme objet JSON :
datagouv inspect-csv fichier.csv --json \
| jq '.file, .candidate_keys, .duplicate_rows'
Cette commande aide à évaluer un fichier avant son traitement avec un outil d'analyse externe. Elle expose notamment dimensions, types, valeurs manquantes, cardinalités, clés candidates, distributions à faible cardinalité, doublons et aperçu.
Caractériser les ressources d'un dataset
datagouv stats \
"accidents corporels" \
--producer "Ministère de l'intérieur"
Explorer un snapshot du catalogue
datagouv catalog-stats "transport" \
--snapshot snapshot/2026-08-25
Avec filtres et sortie structurée :
datagouv catalog-stats "transport" \
--snapshot snapshot/2026-08-25 \
--format csv \
--json | jq '.datasets, .resources, .rankings.formats'
Cette commande sert à explorer et caractériser un snapshot local du catalogue avant de cibler des datasets ou ressources ; elle n'a pas vocation à effectuer l'analyse scientifique des données téléchargées.
Commandes disponibles
datagouv search Recherche dans le catalogue
datagouv dataset Résumé et résolution d'un dataset
datagouv resources Sélection et handoff des ressources
datagouv metadata Métadonnées structurées
datagouv stats Caractérisation des ressources
datagouv inspect JSON brut du dataset
datagouv organization Informations sur une organisation
datagouv download Téléchargement de ressources
datagouv workflow Téléchargement + audit CSV
datagouv inspect-csv Audit structurel d'un CSV local
datagouv catalog-stats Exploration d'un snapshot du catalogue
Architecture
cli.py: interface en ligne de commande unifiéedatagouv.datagouv.py: client et fonctions d'exploration/résolution de datasets data.gouv.fr.download_resources.py: sélection et téléchargement génériques de ressources.dataset_workflow.py: enchaînement résolution → téléchargement → audit CSV.inspect_csv.py: audit structurel générique d'un CSV.catalog_stats.pyetcatalog_report.py: exploration et caractérisation reproductibles d'un snapshot du catalogue.normalize.py: normalisation des métadonnées.tests/: tests unitaires.datasets/: cas d'usage et pipelines spécifiques, hors cœur générique du toolkit.
Réutilisations
Qualité
La vérification locale complète est centralisée dans le Makefile :
make check
Cette cible exécute Ruff, mypy, Bandit, les tests avec couverture, la construction des distributions, twine check et un smoke test de la CLI installée.
Metadata
Release files for datagouv-toolkit 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| datagouv_toolkit-0.5.0.tar.gz | 53.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| datagouv_toolkit-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 93.7 kB
Release files / datagouv_toolkit-0.5.0.tar.gz
| Download URL | datagouv_toolkit-0.5.0.tar.gz |
|---|---|
| Size | 53.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
92f0b6c7e637a0f7a8c90d771060f2eb58d9fd04e62c058d9a781edf304d0985
|
|
BLAKE2b-256 checksum How to use checksums |
fafc9a24dfbbdb8b086adcb7cbdc767396fbab2bedeae8125b0934e8f2164dfc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.
Transparency logRelease files / datagouv_toolkit-0.5.0-py3-none-any.whl
| Download URL | datagouv_toolkit-0.5.0-py3-none-any.whl |
|---|---|
| Size | 39.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5876c92ba8df3202a0d25aa4253f735ff0f224ae429f583f6c11ede35978a51f
|
|
BLAKE2b-256 checksum How to use checksums |
6965e5b6c965a972b3fc16cb866a8fec7af0adc89c545a85b8d17ab9403d4f43
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.
Transparency log