]>
git.immae.eu Git - perso/Denise/oms.git/blob - calculs_extrapole.py
2 # -*- coding: utf-8 -*-
4 Created on Thu Feb 18 18:25:11 2021
9 from gestion_erreurs
import warning
, debug
10 from configuration
import CONFIG
11 from gestion_donnees
import convertit_age_vers_texte
12 import gestion_unites
as u
14 #### Les fonctions qui permettent de faire les calculs additionnels une fois qu'on a l'extrapolation
17 """ renvoie un s si pluriel, rien sinon"""
23 def joliechaine_age(age
):
24 """ prend en argument une chaîne du type 6a3m2j et renvoie une chaîne un peu
25 plus jolie à lire genre 6 ans, 3mois, 2 jours"""
30 retour
+=nombre
+" année"+met_s(nombre
)+", "
33 retour
+=nombre
+" mois, "
36 retour
+=nombre
+" semaine"+met_s(nombre
)+", "
39 retour
+=nombre
+" jour"+met_s(nombre
)+", "
48 def calcule_donnee_extrapolee(dates_extrapole
, donnees_extrapole
, age_voulu
, typedonnee
, liste_err
):
49 """ prend en argument les données extrapolées, l'âge voulu en jours,
50 et le type de données qu'on veut afficher, et renvoie une jolie phrase
52 age_voulu
= int(age_voulu
) # pour avoir les choses bien
53 debug("On veut la donnée à l'âge "+str(age_voulu
), liste_err
)
55 i_date_voulue
= dates_extrapole
.index(age_voulu
)
56 donnee_voulue
= donnees_extrapole
[i_date_voulue
]
57 donnee_arrondie
= u
.arrondit_donnee(donnee_voulue
, typedonnee
)
58 chaine
= "À "+joliechaine_age(convertit_age_vers_texte(age_voulu
))
60 if typedonnee
== "poids":
61 return chaine
+", l'enfant pèsera "+str(donnee_arrondie
)+" kg."
62 elif typedonnee
== "taille":
63 return chaine
+", l'enfant mesurera "+str(donnee_arrondie
)+" cm."
64 else: # phrase générique
65 return chaine
+", la donnée sera : "+str(donnee_arrondie
)+" "+CONFIG
["unites_typedonnees"][typedonnee
]+"."
67 warning("Impossible de calculer la donnée à l'âge "+age_voulu
, liste_err
)
70 def calcule_age_extrapole(dates_extrapole
, donnees_extrapole
, donnee_voulue
, typedonnee
, liste_err
):
71 """ prend en argument les données extrapolées, la donnée voulue (dans l'unité adaptée)
72 et son type, et renvoie la jolie phrase à afficher"""
74 debug("On veut savoir à quel âge on a "+str(donnee_voulue
), liste_err
)
77 while i
<len(donnees_extrapole
) and donnees_extrapole
[i
]<donnee_voulue
:
80 age_joli
= joliechaine_age(convertit_age_vers_texte(dates_extrapole
[i
]))
81 if typedonnee
=="poids":
82 return "L'enfant atteindra un poids de "+str(donnee_voulue
)+" kg à l'âge de "+age_joli
+"."
83 elif typedonnee
=="taille":
84 return "L'enfant atteindra la taille "+str(donnee_voulue
)+ "cm à l'âge de "+age_joli
+"."
85 else:# phrase générique
86 return "L'enfant atteindra la donnée "+typedonnee
+" "+str(donnee_voulue
)+" à l'âge de "+age_joli
+"."
88 warning("Impossible de calculer l'âge pour la donnée "+str(donnee_voulue
), liste_err
)