datagouv-toolkit

datagouv-toolkit est une boîte à outils Python en ligne de commande destinée aux jeux de données publiés sur data.gouv.fr.

Le projet se concentre sur la partie amont d'une chaîne d'analyse de données : découvrir les jeux de données, inspecter leurs métadonnées, évaluer et sélectionner les ressources, les télécharger de manière reproductible et les transmettre proprement à des outils d'analyse comme Python, R, DuckDB ou les utilitaires Unix standards.

Il ne cherche volontairement pas à devenir un nouvel environnement d'analyse de données. Son rôle est de rendre explicite, inspectable et reproductible le chemin allant d'un catalogue de données ouvertes à des ressources locales utilisables.

Chaîne de travail

Une chaîne typique est :

exploration du catalogue
        |
        v
résolution du jeu de données
        |
        v
évaluation et filtrage des ressources
        |
        v
génération d'URL ou de manifeste
        |
        v
téléchargement facultatif
        |
        v
Python / R / DuckDB / jq / autres outils

Interface unifiée en ligne de commande

Le paquet expose une commande principale unique :

datagouv --help

Ses sous-commandes actuelles couvrent :

  • la recherche dans le catalogue ;
  • la résolution de jeux de données ;
  • le filtrage et la sélection de ressources ;
  • l'inspection des métadonnées ;
  • les statistiques sur les ressources ;
  • l'inspection brute d'un jeu de données ;
  • les informations sur les organisations ;
  • le téléchargement de ressources ;
  • les chaînes téléchargement-et-audit ;
  • l'inspection structurelle de fichiers CSV locaux ;
  • l'exploration d'instantanés locaux du catalogue.

Sélection reproductible des ressources

La recherche interactive est pratique pour explorer, mais les requêtes textuelles ambiguës sont indésirables dans des chaînes automatisées.

datagouv-toolkit prend donc en charge des filtres explicites et une sélection non interactive, tout en permettant l'utilisation d'identifiants stables de jeux de données lorsqu'une reproductibilité plus forte est nécessaire.

Les ressources sélectionnées peuvent être exposées sous forme d'URL simples pour des pipelines Unix ou sous forme d'un manifeste JSON compact contenant les identifiants, titres, formats, tailles connues et URL.

Par exemple, la sortie d'URL peut être reliée directement à un autre outil Unix :

datagouv resources     "accidents corporels"     --producer "Ministère de l'intérieur"     --format csv     --first     --urls | xargs -n1 wget

Audit structurel des données

La boîte à outils peut inspecter un CSV local avant une analyse plus approfondie :

datagouv inspect-csv data.csv

L'audit rapporte notamment :

  • les dimensions ;
  • les types de données inférés ;
  • les valeurs manquantes ;
  • les cardinalités ;
  • les clés candidates ;
  • les distributions à faible cardinalité ;
  • les lignes dupliquées ;
  • un aperçu des données.

Les mêmes informations peuvent être produites en JSON pour un traitement ultérieur.

Il s'agit d'un profilage structurel, et non d'une interprétation scientifique ou statistique.

Chaînes automatisées

La commande workflow combine la résolution du jeu de données, la sélection des ressources, le téléchargement et l'audit CSV.

Elle fournit ainsi un pont reproductible entre le catalogue distant et un environnement d'analyse local, sans intégrer l'analyse en aval dans la boîte à outils elle-même.

Instantanés du catalogue

datagouv catalog-stats permet d'explorer un instantané local du catalogue data.gouv.fr.

Cela permet de caractériser les jeux de données et les ressources avant de sélectionner des jeux individuels pour une étude plus détaillée.

Architecture et qualité

Le projet est empaqueté comme un paquet Python conventionnel et cible actuellement Python 3.11 et versions ultérieures.

Les vérifications qualité sont centralisées par :

make check

La chaîne de vérification comprend l'analyse statique, la vérification des types, des contrôles de sécurité, les tests avec couverture, la construction du paquet, la validation de la distribution et un test rapide de la CLI installée.

Réutilisation : BAAC 2005–2024

L'analyse de vingt années de données françaises sur les accidents de la route reste une réutilisation importante de la boîte à outils, mais elle est désormais volontairement séparée du cœur générique.

Le cas BAAC montre comment la même mécanique d'accès et d'inspection des données peut soutenir une analyse reproductible spécifique à un domaine sans rendre la boîte à outils elle-même spécifique au BAAC.

Code source

Le projet est développé publiquement sur GitHub :

github.com/fmaillar/datagouv-toolkit