83 lines
2.5 KiB
Python
83 lines
2.5 KiB
Python
|
from abc import ABC, abstractmethod
|
||
|
|
||
|
|
||
|
class MembreBase(ABC):
|
||
|
|
||
|
def __init__(self, provider):
|
||
|
self.provider = provider
|
||
|
# Données issues des registres
|
||
|
self.r_id = None
|
||
|
self.r_first_name = None
|
||
|
self.r_last_name = None
|
||
|
self.r_maiden_name = None
|
||
|
self.r_annee = None
|
||
|
self.r_mois = None
|
||
|
self.r_jour = None
|
||
|
self.r_ville = None
|
||
|
self.r_sexe = None
|
||
|
|
||
|
# Données issues de l'INSEE
|
||
|
self.i_first_name = None
|
||
|
self.i_last_name = None
|
||
|
self.i_annee_naissance = None
|
||
|
self.i_mois_naissance = None
|
||
|
self.i_jour_naissance = None
|
||
|
self.i_ville_naissance = None
|
||
|
self.i_annee_deces = None
|
||
|
self.i_mois_deces = None
|
||
|
self.i_jour_deces = None
|
||
|
self.i_ville_deces = None
|
||
|
|
||
|
def get_nom_registres(self):
|
||
|
nom_registres = f"{self.r_last_name}, {self.r_first_name}"
|
||
|
if self.r_maiden_name:
|
||
|
nom_registres = f"{nom_registres} née {self.r_maiden_name.upper()}"
|
||
|
return nom_registres
|
||
|
|
||
|
def set_insee(self, insee):
|
||
|
self.i_first_name = insee.first_name
|
||
|
self.i_last_name = insee.last_name
|
||
|
self.i_annee_naissance = insee.annee_naissance
|
||
|
self.i_mois_naissance = insee.mois_naissance
|
||
|
self.i_jour_naissance = insee.jour_naissance
|
||
|
self.i_ville_naissance = insee.code_lieu_naissance
|
||
|
self.i_annee_deces = insee.annee_deces
|
||
|
self.i_mois_deces = insee.mois_deces
|
||
|
self.i_jour_deces = insee.jour_deces
|
||
|
self.i_ville_deces = insee.code_lieu_deces
|
||
|
|
||
|
def get_texte_decede(self):
|
||
|
if self.r_sexe == "F":
|
||
|
feminin = "e"
|
||
|
elif self.r_sexe == "M":
|
||
|
feminin = ""
|
||
|
else:
|
||
|
feminin = "(e)"
|
||
|
return f"""
|
||
|
Le membre {self.get_nom_registres()} ({self.r_id}),
|
||
|
né{feminin} le {self.r_jour:0>2}/{self.r_mois:0>2}/{self.r_annee:0>4} à {self.r_ville.upper()}
|
||
|
semble être décédé{feminin}.
|
||
|
Dans le fichier de l'INSEE on peut trouver {self.i_last_name}, {self.i_first_name}
|
||
|
né{feminin} le {self.i_jour_naissance:0>2}/{self.i_mois_naissance:0>2}/{self.i_annee_naissance:0>4} à {self.i_ville_naissance}
|
||
|
décédé{feminin} le {self.i_jour_deces:0>2}/{self.i_mois_deces:0>2}/{self.i_annee_deces:0>4} à {self.i_ville_deces}
|
||
|
"""
|
||
|
|
||
|
|
||
|
class MembreProvider(ABC):
|
||
|
|
||
|
@abstractmethod
|
||
|
def load(self):
|
||
|
pass
|
||
|
|
||
|
@abstractmethod
|
||
|
def get_name(self):
|
||
|
pass
|
||
|
|
||
|
@abstractmethod
|
||
|
def __len__(self):
|
||
|
pass
|
||
|
|
||
|
@abstractmethod
|
||
|
def get_member_list(self):
|
||
|
pass
|