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 # Environments
localenv localenv
# Temporary files # Editors and IDE
*~ *~
.idea

View File

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