From 17612b2a8be06cdaf6c499ba34b3ec7b6f912b46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Baylac-Jacqu=C3=A9?= Date: Wed, 17 Nov 2021 22:24:27 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20d'un=20script=20d'ingestion=20des=20don?= =?UTF-8?q?n=C3=A9es=20laposte-insee?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Je n'ai pas encore proprement releasé fast-fantoir. On pointe pour l'instant sur une branche WIP. Le format de la DB générée ne devrait pas cependant changer. Ça vaudrait probablement le coup de wrapper tout le pipeline (ie. génération des données FANTOIR *et* insee) dans un seul et même script provisionné par Nix a terme. --- .gitignore | 3 ++- README.md | 18 ++++++++++++++++++ data/prepare-fantoir-db | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100755 data/prepare-fantoir-db diff --git a/.gitignore b/.gitignore index 392f4f6..946655a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ __pycache__ -/elig-test.ini \ No newline at end of file +/elig-test.ini +*~ \ No newline at end of file diff --git a/README.md b/README.md index d276094..8ac3b84 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,24 @@ Nous utilisons [poetry](https://python-poetry.org/) pour gérer les dépendances Une fois poetry installé, vous pouvez obtenir les dépendances Python à l'aide de `poetry install`. Vous pouvez ensuite obtenir un interprêteur Python pré-configuré pour utiliser ces dépendances à l'aide de `poetry shell`. +## Générer/Mettre à jour la base d'adresse. + +1. Récupérer les données FANTOIR les plus récentes sur cette page: https://www.data.gouv.fr/fr/datasets/fichier-fantoir-des-voies-et-lieux-dits/. +1. Transformez ce fichier texte en une base de données SQLite a l'aide de ce logiciel: https://git.alternativebit.fr/NinjaTrappeur/fast-fantoir/src/branch/fastestest +1. Récupérez la base de données générée puis injectez les données insee à l'aide du script `./data/prepare-fantoir-db` + +``` + » ./data/prepare-fantoir-db fantoir.sqlite +Downloading the latest laposte insee data + + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed +100 2625k 0 2625k 0 0 89006 0 --:--:-- 0:00:30 --:--:-- 99k +Importing data to DB +``` + +La base de données est alors prête, vous pouvez la mettre où vous voulez tant qu'elle est correctement pointée par `db_addresses_sqlite_path` dans le fichier de configuration `axione-elig-test.ini`. + ## Jouer les Tests Nous avons quelques tests pour le parseur. Vous pouvez les jouer à l'aide de: diff --git a/data/prepare-fantoir-db b/data/prepare-fantoir-db new file mode 100755 index 0000000..bc3fb35 --- /dev/null +++ b/data/prepare-fantoir-db @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +set -euo pipefail + +if [ "$#" -ne 1 ]; then + echo "Usage: prepare-fantoir-db path-to-fantoir-db" + echo "" + echo "ERROR: Missing fantoir db" + exit 1 +fi +fantoirDb="$1" + +# Setup tmp working dir +tmpDir=$(mktemp -d) +posteData="${tmpDir}"/poste.csv +tmpSql="${tmpDir}"/import-insee-codes.sql +clean_tmp () { + rm -r "${tmpDir}" +} +trap clean_tmp EXIT + +echo "Downloading the latest laposte insee data" +echo "" +curl "https://datanova.laposte.fr/explore/dataset/laposte_hexasmal/download/?format=csv&timezone=Europe/Berlin&lang=fr&use_labels_for_header=true&csv_separator=%3B" > "${posteData}" + +cat >"${tmpSql}" <