Ce projet, développé par des bénévoles de Data For Good lors de la saison 13, vise à créer une carte interactive pour Générations Futures.
L'objectif est de consolider, analyser et cartographier les données sur la qualité de l'eau potable en France à partir de sources de données ouvertes.
pipelines/
: Consolidation et préparation des donnéesanalytics/
: Analyse des donnéeswebapp/
: Développement du site web interactif
Ce projet utilise uv pour la gestion des dépendances Python. Il est préréquis pour l'installation de ce projet.
Installation sur Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Installation sur Mac ou linux
curl -LsSf https://astral.sh/uv/install.sh | sh
Une fois installé, il suffit de lancer la commande suivante pour installer la version de Python adéquate, créer un environnement virtuel et installer les dépendances du projet.
uv sync
A l'usage, si vous utilisez VSCode, l'environnement virtuel sera automatiquement activé lorsque vous ouvrirez le projet. Sinon, il suffit de l'activer manuellement avec la commande suivante :
source .venv/bin/activate
Ou alors, utilisez la commande uv run ...
(au lieu de python ...
) pour lancer un script Python. Par exemple:
uv run pipelines/run.py run build_database
Allez dans settings, python interpreter, add interpreter, puis selectionnez existing venv et allez chercher le path du python executable dans .venv (.venv/Scripts/Python.exe pour windows)
utilisez les commandes uv run
pour lancer un script Python depuis votre terminal
- Installation de Node.js (pour le développement du site web et pour l'usage de Evidence)
Pour le développement du site web et pour l'usage de Evidence, il est nécessaire d'installer Node.js. Pour cela, il suffit de suivre les instructions sur le site officiel.
Pour installer les dépendances du site web, il suffit de lancer les commandes suivantes :
cd webapp
npm install
Tout le code dans pipelines sera installé en tant que package python automatiquement à chaque uv_sync
Une fois l'environnement python setup avec uv, vous pouvez lancer data_pipeline/run.py pour remplir la database Il suffit de lancer
uv run pipelines/run.py run build_database
Un utils a été créé dans storage_client.py pour faciliter la connection au S3 hébergé sur Scaleway.
Il faut créer un fichier .env dans le dossier pipelines/config avec les secrets ci dessous dedans pour que la connection fonctionne.
SCW_ACCESS_KEY={ACCESS_KEY}
SCW_SECRET_KEY={SECRET_KEY}
Vous trouverez un example avec le fichier .env.example
⚠ Attention: Ne jamais commir les access key et secret key.
Un vaultwarden va être setup pour récupérer les secrets pour les personnes qui en ont besoin
Le notebook test_storage_utils.ipynb montre un example d'utilisation de l'utils pour charger et lire des csv sur le bucket S3 du projet
Les analyses ce font via jupyter notebook
uv run jupyter notebook
Lancer la commande suivante pour s'assurer que le code satisfait bien tous les pre commit avant de créer votre pull request
pre-commit run --all-files