Enrichir le texte de sortie de l'application

Afin de rendre plus facile la comparaison entre les données du membre
et les données de la personne trouvée dans le fichier de l'INSEE,
quelques information complémentaires sont ajoutées dans le fichier de
sortie :

- Date de naissance trouvée dans les registres
- Lieu de naissance trouvé dans les registres
- Lieu de naissance trouvé dans le fichier INSEE
- Lieu de décès trouvé dans le fichier INSEE

Fix #1
This commit is contained in:
Sdj Geek 2020-05-28 23:20:54 +02:00
parent a27c46f062
commit c992309f37
2 changed files with 24 additions and 24 deletions

5
.gitignore vendored
View File

@ -6,5 +6,6 @@ __pycache__/
# Environments
localenv
# Temporary files
*~
# Editors and IDE
*~
.idea

View File

@ -40,6 +40,10 @@ Version : 1.0
Journal des versions
v2.0 (2020/)
Le fichier de sortie contient plus d'informations pour faciliter la
comparaison
v1.0 (2020/05/16)
Première publication
@ -68,15 +72,6 @@ import os
import peewee
import requests
##
# Texte inscrit dans le fichier de sortie
output_template = """
{full_name} dans nos registres
{last_name}, {first_name} dans la liste des décés
{feminin} le {jour_naissance:0>2}/{mois_naissance:0>2}/{annee_naissance:0>4}
décédé{feminin} le {jour_deces:0>2}/{mois_deces:0>2}/{annee_deces:0>4}
"""
###
# Base de donnée INSEE
database = peewee.SqliteDatabase(chemin_base_donnees)
@ -146,30 +141,33 @@ def get_member_profile(member_id, cookie):
for unite in numeros_unites:
print(f"Unité {unite}")
# Récupérer la liste des membres
members = get_member_list(111848, cookie=cookie)
members = get_member_list(unite, cookie=cookie)
# Préparer le fichier de sortie
output_file = os.path.join(chemin_repertoire_sortie, f"liste_membres_decedes_unite_{unite}.txt")
with open(output_file, 'w') as out_file:
out_file.write("Les lieux dans le fichier de l'INSEE sont donnés en Code Officiel Géographique en vigueur au moment de la prise en compte du décès")
# Boucler sur la liste des membres
for member in members:
# Lire les noms et date de naissance
full_name = member['nameListPreferredLocal']
full_birthdate = member['birth']['date']['date']
maiden_name = None
ville_registre = None
# S'il s'agit d'une femme mariée, trouver son nom de jeune fille
if member['isSpouse']:
member_profile = get_member_profile(member['legacyCmisId'], cookie=cookie)
maiden_name = member_profile['individual']['maidenNameGroup']['name1']['family']
ville_registre = member_profile['individual']['birthPlace']
try:
last_name, first_name = full_name.split(',')
annee_naissance, mois_naissance, jour_naissance = full_birthdate.split('-')
annee_registre, mois_registre, jour_registre = full_birthdate.split('-')
except ValueError:
print(f"Error with member [{full_name}, {full_birthdate}]")
continue
first_name = first_name.strip().split(' ')[0]
last_name = last_name.strip().split(' ')[0]
query = find_person(first_name, last_name, maiden_name, annee_naissance, mois_naissance, jour_naissance)
query = find_person(first_name, last_name, maiden_name, annee_registre, mois_registre, jour_registre)
if maiden_name:
full_name = f"{full_name} née {maiden_name}"
if member['sex'] == "F":
@ -177,15 +175,16 @@ for unite in numeros_unites:
else:
feminin = ""
for person in query:
text = output_template.format(full_name=full_name,
last_name=person.last_name.capitalize(),
first_name=person.first_name.capitalize(),
jour_naissance=person.jour_naissance,
mois_naissance=person.mois_naissance,
annee_naissance=person.annee_naissance,
jour_deces=person.jour_deces,
mois_deces=person.mois_deces,
annee_deces=person.annee_deces,
feminin=feminin)
if not ville_registre:
member_profile = get_member_profile(member['legacyCmisId'], cookie=cookie)
ville_registre = member_profile['individual']['birthPlace']
text = f"""
Le membre {full_name},
{feminin} le {jour_registre:0>2}/{mois_registre:0>2}/{annee_registre:0>4} à {ville_registre}
semble être décédé{feminin}.
Dans le fichier de l'INSEE on peut trouver {last_name}, {first_name}
{feminin} le {person.jour_naissance:0>2}/{person.mois_naissance:0>2}/{person.annee_naissance:0>4} à {person.code_lieu_naissance}
décédé{feminin} le {person.jour_deces:0>2}/{person.mois_deces:0>2}/{person.annee_deces:0>4} à {person.code_lieu_deces}
"""
print(text)
out_file.write(text)