mise à jour de la licence pour être réglo + petit ajustement pour les saisies bugguée...
[perso/Denise/oms.git] / gestionOMS.py
CommitLineData
5679dfd0
DL
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3"""
4Created on Mon May 18 08:59:11 2020
5
6@author: sekhmet
7"""
8from gestion_erreurs import *
9from configuration import *
10
11import csv
12
13
14
15###################################
16# Section où on prépare le graphique
17# Fonction qui définit le dégradé
18def degrade(nb):
19 """
20 prend en arg un float entre 0 et 100 et renvoie un zoli dégradé (triplet rgb)
21 """
22 if nb<50:
23 # degrade sur le bleu
24 return (0,1*nb/50,1-(nb/50))
25 else:
26 # dégradé du vert vers le rouge
27 return ((nb-50)/50,1-(nb-50)/50,0)
28
29# la liste des numéros de colonne, avec leur label et leur couleur
30def affichepercentile(pc):
31 if pc==50:
32 return "50% (Médiane)"
33 else:
34 return str(pc)+"%"
35def afficheecarttype(z):
36 if z==0:
37 return "Moyenne"
38 elif z<0:
39 return str(z)+"z"
40 else:
41 return "+"+str(z)+"z"
42
43liste_data_labels_p = [(nocol,affichepercentile(pc),degrade(pc)) for (nocol,pc) in liste_data_choisie_p]
44liste_data_labels_z = [(nocol,afficheecarttype(z),degrade((z+3)/3*50) ) for (nocol,z) in liste_data_choisie_z]
45
46#liste_data_labels= liste_data_labels_z
47
48
49
50
51##################### outils pour lire les données OMS
52
53def convertit_ligne(ligne):
54 """ transforme une table en table de nombres"""
55 t = []
56 for elt in ligne:
57 t.append(float(elt))
58 return t
59
60
61
62def lire_fichier_csv(fichier):
63 """ lire un fichier csv et le renvoyer en table"""
64 table=[]
65 with open(fichier, "r") as fichier_csv:
66 reader_notes = csv.reader(fichier_csv,delimiter="\t")
67 debut = True
68 for ligne in reader_notes:
69 if (not debut):
70 table.append(convertit_ligne(ligne))
71 #table.append(ligne)
72 else:
73 debut = False
74 return table
75
76
77def extraire_colonne(table,ncol,maxi):
78 """ extrait une colonne d'un tableau double, de taille maximum maxi"""
79 t = []
80 for i in range( min(len(table),maxi) ):
81 t.append(table[i][ncol])
82 return t
83