decp-couverture : Couverture géographique des Données Essentielles de la Commande Publique (DECP).
Ce projet permet d'analyser la couverture des données essentielles de la commande publique augmentées publiées quotidiennement sur data.economie.gouv.fr. Les résultats sont affichés dans une application Web interactive.
Pré-requis :
Utilisation
Installer les dépendances :
pipenv install --python 3.8
Utiliser l'interface en ligne de commande :
pipenv run python . [-h] {download,coverage,web} ...
positional arguments:
{download,coverage,web}
download télécharger les DECP (economie.gouv.fr), la base Sirene (INSEE) et les contours de cartes
coverage calcule les statistiques de couverture des DECP
web lancer l'application web de présentation de la couverture
optional arguments:
-h, --help show this help message and exit
Pour la commande web
les variables d'environnements GITHUB_USERNAME
et GITHUB_TOKEN
doivent être définies. Le jeton d'accès doit avoir au moins le scope public_repo
(accès aux projets publics).
# macOS ou Linux
export GITHUB_USERNAME="<Nom d'utilisateur GitHub>"
export GITHUB_TOKEN="<Jeton d'accès>"
# Windows
SET GITHUB_USERNAME=<Nom d'utilisateur GitHub>
SET GITHUB_TOKEN=<Jeton d'accès>
# PowerShell
$Env:GITHUB_USERNAME="<Nom d'utilisateur GitHub>"
$Env:GITHUB_TOKEN="<Jeton d'accès>"
Guide du développeur
Installer les dépendances, y compris celles de développement :
pipenv install --dev --python 3.8
Un workflow se déclenche à chaque push sur la branche main. Il est composé de deux jobs :
pylint-score
vérifie la conformité du code au standard PEP-8, à l'aide du module pylint. Le job échoue si le score de conformité est inférieur à 8/10.pipfile-lock-check
vérifie que les dépendances du projet sont correctement vérouillées dans le fichier Pipfile.lock. Il s'agit d'une pratique recommandée dans la documentation de l'outil pipenv. Le job échoue si ce n'est pas le cas.
Fonctionnement opérationnel
Deux systèmes fonctionnent en parallèle. Ils utilisent tous les deux la branche main du projet.
-
Un workflow automatisé analyse chaque lundi la couverture des DECP en exécutant les commandes
download
puiscoverage
. Ce workflow s'exécute sur le service GitHub Actions. Deux artifacts au format JSON sont générés par ce workflow puis stockés par GitHub :- Le fichier original des DECP augmentées, issu de la commande
download --decp-only
- Le fichier d'analyse de couverture par année/commune/département/région, issu de la commande
coverage
, au format CSV
- Le fichier original des DECP augmentées, issu de la commande
-
L'application Web de présentation des résultats est hébergée sur le service streamlit.io. Elle peut aussi être exécutée sur un poste avec la commande
web
. L'application récupère les résultats d'analyse (stockés sous forme d'artifacts) et les affiche sur la page sous forme de carte.