Merge branch '1-plus-infos-dans-fichier-sortie' into 'master'

Resolve "Plus d'informations sur les personnes trouvées"

Closes #1

See merge request sdjgeek/purge-registres-deces-insee!1
This commit is contained in:
Sdj Geek 2020-05-29 00:55:49 +02:00
commit 60f3ac75b8
2 changed files with 31 additions and 28 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,46 +141,53 @@ 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\n")
# 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'] name_registre = 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 = name_registre.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 [{name_registre}, {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)
name_registre = name_registre.upper()
if maiden_name: if maiden_name:
full_name = f"{full_name} née {maiden_name}" name_registre = f"{name_registre} née {maiden_name.upper()}"
if member['sex'] == "F": if member['sex'] == "F":
feminin = "e" feminin = "e"
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, if not ville_registre:
mois_naissance=person.mois_naissance, ville_registre = "<VIDE>"
annee_naissance=person.annee_naissance, text = f"""
jour_deces=person.jour_deces, Le membre {name_registre},
mois_deces=person.mois_deces, {feminin} le {jour_registre:0>2}/{mois_registre:0>2}/{annee_registre:0>4} à {ville_registre.upper()}
annee_deces=person.annee_deces, semble être décédé{feminin}.
feminin=feminin) Dans le fichier de l'INSEE on peut trouver {person.last_name}, {person.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) print(text)
out_file.write(text) out_file.write(text)