Go to file
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
address_finder add tests 2021-11-10 23:22:46 +01:00
axione_api Endpoints to find a Fantoir address 2021-11-02 15:21:34 +01:00
config Endpoints to find a Fantoir address 2021-11-02 15:21:34 +01:00
data Ajout d'un script d'ingestion des données laposte-insee 2021-11-17 22:27:39 +01:00
dist Add deployment scripts 2021-10-19 16:59:23 +02:00
fixtures init 2021-10-17 18:28:51 +02:00
templates PTO lookup webapp 2021-10-18 19:49:35 +02:00
tests add tests 2021-11-10 23:22:46 +01:00
.gitignore Ajout d'un script d'ingestion des données laposte-insee 2021-11-17 22:27:39 +01:00
elig-test.ini.sample Endpoints to find a Fantoir address 2021-11-02 15:21:34 +01:00
elig-test.py Pep-8 reformat 2021-10-17 22:31:06 +02:00
poetry.lock add tests 2021-11-10 23:22:46 +01:00
pyproject.toml add tests 2021-11-10 23:22:46 +01:00
README.md Ajout d'un script d'ingestion des données laposte-insee 2021-11-17 22:27:39 +01:00
run-dev-server Endpoints to find a Fantoir address 2021-11-02 15:21:34 +01:00
shell.nix init 2021-10-17 18:28:51 +02:00
startGunicornService First aquilenet deployment 2021-10-19 18:41:05 +02:00
webapp.py add tests 2021-11-10 23:22:46 +01:00

Axione FTTH - Test d'Éligibilité

Configuration

Ce programme se configure à l'aide du fichier ini se trouvant à /etc/axione-elig-test.ini. Vous pouvez utiliser ./elig-test.ini.sample de ce dépôt git comme point de départ.

Travailler sur l'Application Python

Nous utilisons poetry pour gérer les dépendances python. Vous pouvez l'installer a l'aide du package manager de votre distribution. Si vous utilisez Nix, vous pouvez l'obtenir en entrant en tapant nix-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/.
  2. 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
  3. 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:

$ poetry run pytest

Debugger l'Application Localement

Travailler depuis la VM whitelistée par Axione est peu pratique. C'est pourquoi nous avons ajouté un mode debug permettant de simuler les réponses d'Axione.

Pour lancer la webapp localement en mode debug, vous pouvez utiliser le script run-dev-server:

./run-dev-server

Tester la recherche d'adresses

Pour tester la recherche d'addresse il faut en local la DB sqlite contenant les infos de Fantoir et de la base de la Poste (Infos sur les communes)

Dans le fichier elig-test.ini bien renseigner le chemin en local vers cette base (champ db_addresses_sqlite_path dans la section [ADDRESSES])

Une fois le serveur lancer comme décrit plus haut, on peut tester l'API via curl :

# Obtenir la liste de toutes les communes
curl -v http://127.0.0.1:5000/addresses/communes

# Chercher une commune par nom
curl -v http://127.0.0.1:5000/addresses/communes?s=plonevez+du+faou
# Chercher une commune par code postal
curl -v http://127.0.0.1:5000/addresses/communes?s=29530

# Chercher les voies d'une commune via son code insee
curl -v http://127.0.0.1:5000/addresses/fantoirvoies/29036