]>
Commit | Line | Data |
---|---|---|
5679dfd0 DL |
1 | #!/usr/bin/env python3 |
2 | # -*- coding: utf-8 -*- | |
3 | ||
d03279e7 | 4 | from configuration import CONFIG |
5679dfd0 DL |
5 | from gestion_erreurs import * |
6 | ||
7 | ##################### outils pour affichage et choix de l'unité | |
8 | ||
9 | def choix_unite(maxi): | |
685a5f75 | 10 | """ en fonction de l'âge maxi, on choisit une unité pertinente : jours, semaine, mois, année""" |
5679dfd0 DL |
11 | if maxi<40: |
12 | return "jours" | |
30158504 DL |
13 | elif maxi <100: |
14 | return "semaines" | |
d03279e7 | 15 | elif maxi<25*CONFIG["jours_dans_mois"]: |
5679dfd0 DL |
16 | return "mois" |
17 | else: | |
18 | return "années" | |
19 | ||
685a5f75 DL |
20 | def choix_echelle_data(typedonnees, donneemax): |
21 | """ en fonction du type de données et du maxi (on suppose qu'on part à 0), | |
22 | on choisit un intervalle raisonnable | |
23 | On renvoie le couple des pas (majeur, mineur) | |
24 | (0,0) en cas de problème avec le typedonnnes """ | |
25 | ||
26 | if typedonnees not in CONFIG["liste_typedonnees"]: | |
27 | print("Type de données non valide : "+typedonnees) | |
28 | return (0,0) | |
29 | ||
30 | if typedonnees == "poids": | |
31 | if donneemax>15: | |
32 | return (5,1) | |
33 | elif donneemax > 10: | |
34 | return (2,1) | |
35 | else: | |
36 | return (1,0.2) | |
37 | if typedonnees == "taille": | |
38 | if donneemax>100: | |
39 | return (10,2) | |
40 | else: | |
41 | return (5,1) | |
42 | ||
43 | def choix_echelle_temps(unite, tempsmaxi): | |
44 | """ en fonction de l'unité voulue et du temps maximal (donné dans l'unité), | |
45 | on choisit un intervalle raisonnable entre les pas. | |
46 | On renvoie le couple des pas (majeur, mineur). | |
47 | (0,0) en cas de problème avec l'unité | |
48 | On met 0 en 2e arg si pas de grille secondaire""" | |
49 | if unite not in CONFIG["liste_unites"]: | |
50 | print("Unité non valide ! "+unite) | |
51 | return (0,0) | |
52 | ||
53 | if unite=="jours": | |
54 | if tempsmaxi > 60: # pourquoi mettre en jours ? | |
55 | return (30,1) | |
56 | elif tempsmaxi >20: | |
57 | return (7,1) | |
58 | else: | |
59 | return (1,0) | |
60 | if unite=="semaines": | |
61 | if tempsmaxi >50: | |
62 | return (5,1) | |
63 | elif tempsmaxi > 15: | |
64 | return (2,1) | |
65 | else: | |
66 | return (1,1/7) # On met en jours | |
67 | ||
68 | if unite=="mois": | |
69 | if tempsmaxi > 30: | |
70 | return (2,1) | |
71 | elif tempsmaxi > 10: | |
72 | return (1,0) | |
73 | else: | |
74 | return (1,0.25) # on met en semaines | |
75 | ||
76 | if unite=="années": | |
77 | return (1,1/12) # années / mois | |
78 | ||
5679dfd0 DL |
79 | def convertitunite(jours,unite,liste_err): |
80 | """ convertit des jours à l'unité voulue | |
81 | renvoie des float""" | |
82 | if unite=="jours": | |
83 | return jours | |
84 | elif unite=="mois": | |
d03279e7 | 85 | return jours/CONFIG["jours_dans_mois"] |
5679dfd0 | 86 | elif unite=="années": |
d03279e7 | 87 | return jours/CONFIG["jours_dans_annee"] |
5679dfd0 | 88 | elif unite=="semaines": |
d03279e7 | 89 | return jours/CONFIG["jours_dans_semaine"] |
5679dfd0 DL |
90 | else: |
91 | warning("erreur sur l'unité : "+unite+" On laisse en jours",liste_err) | |
92 | return jours | |
93 | ||
94 | def convertit_tableau(tableau,unite,liste_err): | |
95 | """ convertit un tableau de jours en une autre unité. | |
96 | Renvoie le nouveau tableau""" | |
97 | return [convertitunite(elt,unite,liste_err) for elt in tableau] |