]>
git.immae.eu Git - perso/Denise/oms.git/blob - gestion_unites.py
2 # -*- coding: utf-8 -*-
4 from configuration
import CONFIG
5 from gestion_erreurs
import warning
8 ##################### outils pour affichage et choix de l'unité
10 def choix_unite(maxi
):
11 """ en fonction de l'âge maxi, on choisit une unité pertinente : jours, semaine, mois, année"""
16 elif maxi
<25*CONFIG
["jours_dans_mois"]:
21 def choix_echelle_data(typedonnees
, donneemax
):
22 """ en fonction du type de données et du maxi (on suppose qu'on part à 0),
23 on choisit un intervalle raisonnable
24 On renvoie le couple des pas (majeur, mineur)
25 (0,0) en cas de problème avec le typedonnnes """
27 if typedonnees
not in CONFIG
["liste_typedonnees"]:
28 print("Type de données non valide : "+typedonnees
)
31 if typedonnees
== "poids":
38 if typedonnees
== "taille":
44 def choix_echelle_temps(unite
, tempsmaxi
):
45 """ en fonction de l'unité voulue et du temps maximal (donné dans l'unité),
46 on choisit un intervalle raisonnable entre les pas.
47 On renvoie le couple des pas (majeur, mineur).
48 (0,0) en cas de problème avec l'unité
49 On met 0 en 2e arg si pas de grille secondaire"""
50 if unite
not in CONFIG
["liste_unites"]:
51 print("Unité non valide ! "+unite
)
55 if tempsmaxi
> 60: # pourquoi mettre en jours ?
67 return (1,1/7) # On met en jours
75 return (1,0.25) # on met en semaines à peu près (quart de mois)
78 return (1,1/12) # années / mois
80 def convertitunite(jours
,unite
,liste_err
):
81 """ convertit des jours à l'unité voulue
86 return jours
/CONFIG
["jours_dans_mois"]
88 return jours
/CONFIG
["jours_dans_annee"]
89 elif unite
=="semaines":
90 return jours
/CONFIG
["jours_dans_semaine"]
92 warning("erreur sur l'unité : "+unite
+" On laisse en jours",liste_err
)
95 def convertit_tableau(tableau
,unite
,liste_err
):
96 """ convertit un tableau de jours en une autre unité.
97 Renvoie le nouveau tableau"""
98 return [convertitunite(elt
,unite
,liste_err
) for elt
in tableau
]
100 def arrondit_donnee(donnee
, typed
, arrondi
=0):
101 """ on arrondit la donnée de type typed (à voir dans CONFIG)
102 à arrondit près. SI y'a 0 on va voir dans la config.
103 Pour l'arrondit on met par ex 1 pour arrondir à 1 pr_s, 0.1 pour arrondir
106 arrondi
= CONFIG
["arrondis_typedonnees"][typed
]
108 print("Euuuh ça va merder, y'a une div par 0 dans arrondit_donnees !")
110 d_arr
= round(donnee
/arrondi
)*arrondi
111 nbchiffresvoulus
= int(log(1/arrondi
, 10))+1 # max sur le nombre de chiffres après la virgule qu'on doit avoir
112 return round(d_arr
, nbchiffresvoulus
)