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.
This commit is contained in:
parent
f8ba58b120
commit
17612b2a8b
3 changed files with 53 additions and 1 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -1,2 +1,3 @@
|
||||||
__pycache__
|
__pycache__
|
||||||
/elig-test.ini
|
/elig-test.ini
|
||||||
|
*~
|
18
README.md
18
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`.
|
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
33
data/prepare-fantoir-db
Executable 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}"
|
Loading…
Reference in a new issue