Compare commits

...

1 commit

Author SHA1 Message Date
Félix Baylac-Jacqué
17612b2a8b
Ajout d'un script d'ingestion des données laposte-insee
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.
2021-11-17 22:27:39 +01:00
3 changed files with 53 additions and 1 deletions

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
__pycache__ __pycache__
/elig-test.ini /elig-test.ini
*~

View file

@ -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`. 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 ## Jouer les Tests
Nous avons quelques tests pour le parseur. Vous pouvez les jouer à l'aide de: Nous avons quelques tests pour le parseur. Vous pouvez les jouer à l'aide de:

33
data/prepare-fantoir-db Executable file
View file

@ -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}" <<EOF
.separator ";"
.import ${posteData} poste_insee
EOF
echo "Importing data to DB"
echo ""
sqlite3 "${fantoirDb}" < "${tmpSql}"