1 # Copyright (C) 2013-2020 EDF R&D
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 # Lesser General Public License for more details.
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
24 from qtsalome import QSqlQuery, QSqlDatabase
25 from Base.tableMaillages import TableMaillages
26 from Base.tableMailleurs import TableMailleurs
27 from Base.tableMachines import TableMachines
28 from Base.tableVersions import TableVersions
29 from Base.tableGroupesRef import TableGroupesRef
30 from Base.tableGroupes import TableGroupes
31 from Base.tableMailles import TableMailles
32 from Base.tableTailles import TableTailles
33 from Base.tableRatios import TableRatios
34 from Base.tableGroupeRatios import TableGroupeRatios
35 from Base.tableGroupeTailles import TableGroupeTailles
36 from Base.tablePerfs import TablePerfs
37 from Stats.job import Job
38 from CreeDocuments.jobHtml import Document
42 def __init__(self,file):
43 self.db = QSqlDatabase.addDatabase("QSQLITE")
44 self.db.setDatabaseName(file)
45 self.db.setHostName("localhost");
46 self.db.setUserName("");
47 self.db.setPassword("")
48 if not self.db.open():
49 print((self.db.lastError().text()))
51 print("dataBase Open")
55 self.maTableMailleurs=TableMailleurs()
56 self.maTableMailleurs.createSqlTable()
57 self.maTableMachines=TableMachines()
58 self.maTableMachines.createSqlTable()
59 self.maTableVersions=TableVersions()
60 self.maTableVersions.createSqlTable()
61 self.maTableMaillages=TableMaillages()
62 self.maTableMaillages.createSqlTable()
63 self.maTableGroupesRef=TableGroupesRef()
64 self.maTableGroupesRef.createSqlTable()
65 self.maTablePerfs=TablePerfs()
66 self.maTablePerfs.createSqlTable()
67 self.maTableMailles=TableMailles()
68 self.maTableMailles.createSqlTable()
69 self.maTableTailles=TableTailles()
70 self.maTableTailles.createSqlTable()
71 self.maTableGroupes=TableGroupes()
72 self.maTableGroupes.createSqlTable()
73 self.maTableRatios=TableRatios()
74 self.maTableRatios.createSqlTable()
75 self.maTableGroupeRatios=TableGroupeRatios()
76 self.maTableGroupeRatios.createSqlTable()
77 self.maTableGroupeTailles=TableGroupeTailles()
78 self.maTableGroupeTailles.createSqlTable()
81 self.maTableMaillages=TableMaillages()
82 self.maTableMailleurs=TableMailleurs()
83 self.maTableVersions=TableVersions()
84 self.maTableMachines=TableMachines()
85 self.maTableMailles=TableMailles()
86 self.maTableTailles=TableTailles()
87 self.maTableGroupes=TableGroupes()
88 self.maTableGroupesRef=TableGroupesRef()
89 self.maTablePerfs=TablePerfs()
90 self.maTableRatios=TableRatios()
91 self.maTableGroupeRatios=TableGroupeRatios()
92 self.maTableGroupeTailles=TableGroupeTailles()
95 self.maTableMailleurs.remplit()
96 self.maTableMaillages.remplit()
97 self.maTableVersions.remplit()
98 self.maTableMachines.creeMachine()
99 self.maTableGroupesRef.remplit()
104 def exportToCSV(self,partiel):
105 aujourdhui=datetime.date.today()
106 monFolder="ExportDB"+str(aujourdhui)
111 self.maTableMachines.exportToCSV()
112 self.maTableMailles.exportToCSV()
113 self.maTableTailles.exportToCSV()
114 self.maTableGroupes.exportToCSV()
115 self.maTablePerfs.exportToCSV()
116 self.maTableRatios.exportToCSV()
117 self.maTableGroupeRatios.exportToCSV()
118 self.maTableGroupeTailles.exportToCSV()
119 if partiel==True: return
120 self.maTableMailleurs.exportToCSV()
121 self.maTableVersions.exportToCSV()
122 self.maTableMaillages.exportToCSV()
123 self.maTableMachines.exportToCSV()
124 self.maTableGroupesRef.exportToCSV()
126 def importFromCSV(self,folder,partiel,force):
128 self.maTableMailleurs.importFromCSV(folder,force)
129 self.maTableVersions.importFromCSV(folder,force)
130 self.maTableMaillages.importFromCSV(folder,force)
131 self.maTableGroupesRef.importFromCSV(folder,force)
132 self.maTableMachines.importFromCSV(folder,force)
133 self.maTableMailles.importFromCSV(folder,force)
134 self.maTableGroupes.importFromCSV(folder,force)
135 self.maTablePerfs.importFromCSV(folder,force)
136 self.maTableRatios.importFromCSV(folder,force)
137 self.maTableGroupesRef.importFromCSV(folder,force)
138 self.maTableGroupeRatios.importFromCSV(folder,force)
139 self.maTableGroupeTailles.importFromCSV(folder,force)
142 # jamais appelee. juste pour memoire
143 texteQuery='select * from sqlite_master;'
145 return maQuery.exec_(texteQuery)
147 def passeJobs(self,all,salomePath,version,force,listeMaillage):
148 if all==True: paramMaillage=self.maTableMaillages.construitListeMaillages()
149 else : paramMaillage=self.maTableMaillages.verifieListeMaillages(listeMaillage)
150 # paramMaillage=(( id, script, fichier med),)
152 bOk,versionId,versionName = self.maTableVersions.chercheVersion(version)
154 self.maTableVersions.creeVersion(version)
155 print("nouvelle Version enregistree dans la base")
156 bOk,versionId,versionName = self.maTableVersions.chercheVersion(version)
158 print("Impossible de creer la version")
161 bOk,nomMachine = self.maTableMachines.chercheMachine()
163 self.maTableMachines.creeMachine()
164 print("enregistrement de la machine dans la table des machines")
165 bOk,nomMachine = self.maTableMachines.chercheMachine()
167 print("Impossible de creer la version")
171 for params in paramMaillage:
173 print("___________________________________________")
175 print(" Job : ", params[1])
176 print(" Version de salome : ", versionName)
180 mesGroupesRef=self.maTableGroupesRef.getVals(idJob)
181 fichierGroupesRef=str(params[2]).replace('.med','_groupesRef.res')
182 from Stats.utiles import writeFile
183 if mesGroupesRef != [] :
184 writeFile(fichierGroupesRef,",".join(mesGroupesRef))
185 monjob=Job(params,salomePath,versionId,mesGroupesRef)
187 print(" Debut d execution")
191 self.maTablePerfs.insereOuRemplaceLigne((idJob,versionId,nomMachine,int(monjob.getCPU()),0),False)
193 # remplit la table Mailles
194 listeColonnes,listeValues=monjob.getStatSurMailles()
196 for col in listeColonnes :
197 lVal=[idJob,versionId,col]+[listeValues[i]]
199 if str(listeValues[i]) != str(0): self.maTableMailles.insereOuRemplaceLigne(lVal,False)
202 # remplit la table Tailles
203 listeValues=monjob.getStatSurTailles()
204 lVal=[params[0],versionId]+listeValues
205 self.maTableTailles.insereOuRemplaceLigne(tuple(lVal),False)
207 # remplit la table Ratio
208 maDim=self.maTableMaillages.getVal(params[0],'dimension')
209 listeValues=monjob.getStatSurRatios()
210 lVal=[params[0],versionId]+listeValues
211 self.maTableRatios.insereOuRemplaceLigne(tuple(lVal),False)
213 # remplit les Groupes
214 for groupe in mesGroupesRef:
215 listeColonnes,listeValues=monjob.getStatSurGroupes(groupe)
217 for col in listeColonnes :
218 lVal=[groupe,params[0],versionId,col]+[listeValues[i]]
220 if str(listeValues[i]) != str(0): self.maTableGroupes.insereOuRemplaceLigne(lVal,False)
223 # remplit les Ratio Groupes
224 for groupe in mesGroupesRef:
225 listeValues=monjob.getStatSurRatiosGroupes(groupe)
226 if listeValues==['0','0','0','0','0','0'] : continue
227 lVal=[params[0],versionId,groupe]+listeValues
228 self.maTableGroupeRatios.insereOuRemplaceLigne(tuple(lVal),False)
229 listeValues=monjob.getStatSurTaillesGroupes(groupe)
230 lVal=[params[0],versionId,groupe]+listeValues
231 self.maTableGroupeTailles.insereOuRemplaceLigne(tuple(lVal),False)
236 def compare(self,version,ListeVersionRefString,fichier):
237 print("_________________________________________________________________")
238 print("Generation du rapport de comparaison")
240 bOk,versionId,versionName = self.maTableVersions.chercheVersion(version)
242 print("version ", version , " inconnue dans la base")
244 print("Version a comparer : ", versionName)
245 versionCompName=versionName
246 versionCompId=versionId
249 listeVersionRefName=[]
250 ListeVersionRef=ListeVersionRefString.split(",")
251 for id in ListeVersionRef:
252 bOk,versionId,versionName = self.maTableVersions.chercheVersion(id)
254 print("version ", id , " inconnue dans la base")
256 listeVersionRefId.append(versionId)
257 listeVersionRefName.append(versionName)
259 bOk,nomMachine = self.maTableMachines.chercheMachine()
260 monDocument=Document()
261 monDocument.initEntete(versionCompName, nomMachine)
263 maillagesIdListe, maillagesNameListe=self.maTableMaillages.getTous()
264 if len(maillagesIdListe) != len (listeVersionRefId):
265 print("Pas assez de version de reference")
268 allEntitySurMaille=self.maTableMailles.getAllEntity()
269 allEntitySurGroupe=self.maTableGroupes.getAllEntity()
271 # Boucle sur les maillages
272 for idMaillage in maillagesIdListe :
274 versionRefId=listeVersionRefId[idMaillage - 1]
275 versionRefName=listeVersionRefName[idMaillage - 1]
276 mailleurId=self.maTableMaillages.getMailleurId(idMaillage)
277 mailleurName=self.maTableMailleurs.getName(mailleurId)
279 # Recuperation des seuils
280 l1,l2,l3,l4,l5,l6=self.maTableMaillages.getSeuilsPourMaillage(idMaillage)
289 dicoMaillage["NBCPU"]=self.maTablePerfs.getVal(idMaillage,versionCompId,nomMachine)
290 dicoMaillage["REFCPU"]=self.maTablePerfs.getVal(idMaillage,versionRefId,nomMachine)
291 dicoMaillage["DIFCPU"],dicoMaillage["DIFREL"],dicoMaillage["WARNING"]=self.calculDiffCPU(dicoMaillage["NBCPU"],dicoMaillage["REFCPU"],monSeuilCPU)
292 monDocument.initMaillage(maillagesNameListe[idMaillage-1],mailleurName,versionRefName,dicoMaillage)
294 # Boucle sur les Mailles
297 dico["TITRE"]="Nombre de Mailles dans le maillage entier"
299 for nomColonne in allEntitySurMaille:
300 val=self.maTableMailles.getVal(idMaillage,versionCompId,nomColonne)
301 valRef=self.maTableMailles.getVal(idMaillage,versionRefId,nomColonne)
302 if val==0 and valRef==0 : continue
304 #print nomColonne;print val; print valRef
305 cMAIL="MAIL"+str(i); cREF="REF"+str(i)
306 cNB="NB"+str(i); cDIF="DIF"+str(i); cREL="REL"+str(i)
308 dico[cMAIL]=nomColonne
311 dico[cDIF],dico[cREL],dico[cWARN]=self.calculDiff(val,valRef,monSeuilNbMaille)
312 monDocument.initMaille(dico,i)
319 dicoMaillage["RMAX"]=self.maTableRatios.getVal(idMaillage,versionCompId,'RatioMax')
320 dicoMaillage["RMAXREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,'RatioMax')
321 dicoMaillage["DIFARMAX"],dicoMaillage["DIFRRMAX"],dicoMaillage["WRRMAX"]=self.calculDiff(dicoMaillage["RMAX"],dicoMaillage["RMAXREF"],monSeuilRatio)
322 dicoMaillage["RMIN"]=self.maTableRatios.getVal(idMaillage,versionCompId,'RatioMin')
323 dicoMaillage["RMINREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,'RatioMin')
324 dicoMaillage["DIFARMIN"],dicoMaillage["DIFRRMIN"],dicoMaillage["WRRMIN"]=self.calculDiff(dicoMaillage["RMIN"],dicoMaillage["RMINREF"],monSeuilRatio)
325 dicoMaillage["RMOY"]=self.maTableRatios.getVal(idMaillage,versionCompId,'Moyenne')
326 dicoMaillage["RMOYREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,'Moyenne')
327 dicoMaillage["DIFARMOY"],dicoMaillage["DIFRRMOY"],dicoMaillage["WRRMOY"]=self.calculDiff(dicoMaillage["RMOY"],dicoMaillage["RMOYREF"],monSeuilRatio)
328 dicoMaillage["R1Q"]=self.maTableRatios.getVal(idMaillage,versionCompId,'Q1')
329 dicoMaillage["R1QREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,'Q1')
330 dicoMaillage["DIFAR1Q"],dicoMaillage["DIFRR1Q"],dicoMaillage["WRR1Q"]=self.calculDiff(dicoMaillage["R1Q"],dicoMaillage["R1QREF"],monSeuilRatio)
331 dicoMaillage["RMED"]=self.maTableRatios.getVal(idMaillage,versionCompId,'Mediane')
332 dicoMaillage["RMEDREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,'Mediane')
333 dicoMaillage["DIFARMED"],dicoMaillage["DIFRRMED"],dicoMaillage["WRRMED"]=self.calculDiff(dicoMaillage["RMED"],dicoMaillage["RMEDREF"],monSeuilRatio)
334 dicoMaillage["R3Q"]=self.maTableRatios.getVal(idMaillage,versionCompId,'Q3')
335 dicoMaillage["R3QREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,'Q3')
336 dicoMaillage["DIFAR3Q"],dicoMaillage["DIFRR3Q"],dicoMaillage["WRR3Q"]=self.calculDiff(dicoMaillage["R3Q"],dicoMaillage["R3QREF"],monSeuilRatio)
338 dicoMaillage["TMAX"]=self.maTableTailles.getVal(idMaillage,versionCompId,'TailleMax')
339 dicoMaillage["TMAXREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,'TailleMax')
340 dicoMaillage["DIFATMAX"],dicoMaillage["DIFRTMAX"],dicoMaillage["WTMAX"]=self.calculDiff(dicoMaillage["TMAX"],dicoMaillage["TMAXREF"],monSeuilTaille)
341 dicoMaillage["TMIN"]=self.maTableTailles.getVal(idMaillage,versionCompId,'TailleMin')
342 dicoMaillage["TMINREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,'TailleMin')
343 dicoMaillage["DIFATMIN"],dicoMaillage["DIFRTMIN"],dicoMaillage["WTMIN"]=self.calculDiff(dicoMaillage["TMIN"],dicoMaillage["TMINREF"],monSeuilTaille)
344 dicoMaillage["TMOY"]=self.maTableTailles.getVal(idMaillage,versionCompId,'Moyenne')
345 dicoMaillage["TMOYREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,'Moyenne')
346 dicoMaillage["DIFATMOY"],dicoMaillage["DIFRTMOY"],dicoMaillage["WTMOY"]=self.calculDiff(dicoMaillage["TMOY"],dicoMaillage["TMOYREF"],monSeuilTaille)
347 dicoMaillage["T1Q"]=self.maTableTailles.getVal(idMaillage,versionCompId,'Q1')
348 dicoMaillage["T1QREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,'Q1')
349 dicoMaillage["DIFAT1Q"],dicoMaillage["DIFRT1Q"],dicoMaillage["WT1Q"]=self.calculDiff(dicoMaillage["T1Q"],dicoMaillage["T1QREF"],monSeuilTaille)
350 dicoMaillage["TMED"]=self.maTableTailles.getVal(idMaillage,versionCompId,'Mediane')
351 dicoMaillage["TMEDREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,'Mediane')
352 dicoMaillage["DIFATMED"],dicoMaillage["DIFRTMED"],dicoMaillage["WTMED"]=self.calculDiffCPU(dicoMaillage["TMED"],dicoMaillage["TMEDREF"],monSeuilTaille)
353 dicoMaillage["T3Q"]=self.maTableTailles.getVal(idMaillage,versionCompId,'Q3')
354 dicoMaillage["T3QREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,'Q3')
355 dicoMaillage["DIFAT3Q"],dicoMaillage["DIFRT3Q"],dicoMaillage["WT3Q"]=self.calculDiffCPU(dicoMaillage["T3Q"],dicoMaillage["T3QREF"],monSeuilTaille)
357 #PNPNPN a revoir le initJob
358 monDocument.initJob(dicoMaillage)
361 # Boucle sur les groupes du maillage
362 mesGroupesRef=self.maTableGroupesRef.getVals(idMaillage)
363 if mesGroupesRef==[] : monDocument.addNoGroup()
364 for groupeId in mesGroupesRef:
367 dico["TITRE"]="Nombre de Mailles dans le groupe "+groupeId
368 for nomColonne in allEntitySurGroupe:
369 val=self.maTableGroupes.getVal(groupeId,idMaillage,versionCompId,nomColonne)
370 valRef=self.maTableGroupes.getVal(groupeId,idMaillage,versionRefId,nomColonne)
371 if val==0 and valRef==0 : continue
373 cMAIL="MAIL"+str(i); cREF="REF"+str(i)
374 cNB="NB"+str(i); cDIF="DIF"+str(i); cREL="REL"+str(i)
376 dico[cMAIL]=nomColonne
379 dico[cDIF],dico[cREL],dico[cWARN]=self.calculDiff(val,valRef,monSeuilNbMaille)
380 monDocument.initMaille(dico,i)
386 if self.maTableGroupeRatios.getVal(idMaillage,versionCompId,groupeId,'RatioMax') != 0 :
387 dico["RMAX"]=self.maTableGroupeRatios.getVal(idMaillage,versionCompId,groupeId,'RatioMax')
388 dico["RMAXREF"]=self.maTableGroupeRatios.getVal(idMaillage,versionRefId,groupeId,'RatioMax')
389 dico["DIFARMAX"],dico["DIFRRMAX"],dico["WRRMAX"]=self.calculDiff(dico["RMAX"],dico["RMAXREF"],monSeuilRatio)
390 dico["RMIN"]=self.maTableGroupeRatios.getVal(idMaillage,versionCompId,groupeId,'RatioMin')
391 dico["RMINREF"]=self.maTableGroupeRatios.getVal(idMaillage,versionRefId,groupeId,'RatioMin')
392 dico["DIFARMIN"],dico["DIFRRMIN"],dico["WRRMIN"]=self.calculDiff(dico["RMIN"],dico["RMINREF"],monSeuilRatio)
393 dico["RMOY"]=self.maTableGroupeRatios.getVal(idMaillage,versionCompId,groupeId,'Moyenne')
394 dico["RMOYREF"]=self.maTableGroupeRatios.getVal(idMaillage,versionRefId,groupeId,'Moyenne')
395 dico["DIFARMOY"],dico["DIFRRMOY"],dico["WRRMOY"]=self.calculDiff(dico["RMOY"],dico["RMOYREF"],monSeuilRatio)
396 dico["R1Q"]=self.maTableGroupeRatios.getVal(idMaillage,versionCompId,groupeId,'Q1')
397 dico["R1QREF"]=self.maTableGroupeRatios.getVal(idMaillage,versionRefId,groupeId,'Q1')
398 dico["DIFAR1Q"],dico["DIFRR1Q"],dico["WRR1Q"]=self.calculDiff(dico["R1Q"],dico["R1QREF"],monSeuilRatio)
399 dico["RMED"]=self.maTableGroupeRatios.getVal(idMaillage,versionCompId,groupeId,'Mediane')
400 dico["RMEDREF"]=self.maTableGroupeRatios.getVal(idMaillage,versionRefId,groupeId,'Mediane')
401 dico["DIFARMED"],dico["DIFRRMED"],dico["WRRMED"]=self.calculDiff(dico["RMED"],dico["RMEDREF"],monSeuilRatio)
402 dico["R3Q"]=self.maTableGroupeRatios.getVal(idMaillage,versionCompId,groupeId,'Q3')
403 dico["R3QREF"]=self.maTableGroupeRatios.getVal(idMaillage,versionRefId,groupeId,'Q3')
404 dico["DIFAR3Q"],dico["DIFRR3Q"],dico["WRR3Q"]=self.calculDiff(dico["R3Q"],dico["R3QREF"],monSeuilRatio)
405 monDocument.CreeGroupeRatios(dico)
408 if self.maTableGroupeTailles.getVal(idMaillage,versionCompId,groupeId,'TailleMax') != 0:
409 dico["TMAX"]=self.maTableGroupeTailles.getVal(idMaillage,versionCompId,groupeId,'TailleMax')
410 dico["TMAXREF"]=self.maTableGroupeTailles.getVal(idMaillage,versionRefId,groupeId,'TailleMax')
411 dico["DIFATMAX"],dico["DIFRTMAX"],dico["WTMAX"]=self.calculDiff(dico["TMAX"],dico["TMAXREF"],monSeuilTaille)
412 dico["TMIN"]=self.maTableGroupeTailles.getVal(idMaillage,versionCompId,groupeId,'TailleMin')
413 dico["TMINREF"]=self.maTableGroupeTailles.getVal(idMaillage,versionRefId,groupeId,'TailleMin')
414 dico["DIFATMIN"],dico["DIFRTMIN"],dico["WTMIN"]=self.calculDiff(dico["TMIN"],dico["TMINREF"],monSeuilTaille)
415 dico["TMOY"]=self.maTableGroupeTailles.getVal(idMaillage,versionCompId,groupeId,'Moyenne')
416 dico["TMOYREF"]=self.maTableGroupeTailles.getVal(idMaillage,versionRefId,groupeId,'Moyenne')
417 dico["DIFATMOY"],dico["DIFRTMOY"],dico["WTMOY"]=self.calculDiff(dico["TMOY"],dico["TMOYREF"],monSeuilTaille)
418 dico["T1Q"]=self.maTableGroupeTailles.getVal(idMaillage,versionCompId,groupeId,'Q1')
419 dico["T1QREF"]=self.maTableGroupeTailles.getVal(idMaillage,versionRefId,groupeId,'Q1')
420 dico["DIFAT1Q"],dico["DIFRT1Q"],dico["WT1Q"]=self.calculDiff(dico["T1Q"],dico["T1QREF"],monSeuilTaille)
421 dico["TMED"]=self.maTableGroupeTailles.getVal(idMaillage,versionCompId,groupeId,'Mediane')
422 dico["TMEDREF"]=self.maTableGroupeTailles.getVal(idMaillage,versionRefId,groupeId,'Mediane')
423 dico["DIFATMED"],dico["DIFRTMED"],dico["WTMED"]=self.calculDiffCPU(dico["TMED"],dico["TMEDREF"],monSeuilTaille)
424 dico["T3Q"]=self.maTableGroupeTailles.getVal(idMaillage,versionCompId,groupeId,'Q3')
425 dico["T3QREF"]=self.maTableGroupeTailles.getVal(idMaillage,versionRefId,groupeId,'Q3')
426 dico["DIFAT3Q"],dico["DIFRT3Q"],dico["WT3Q"]=self.calculDiffCPU(dico["T3Q"],dico["T3QREF"],monSeuilTaille)
427 monDocument.CreeGroupeTaille(dico)
433 monDocument.creeDocument(fichier)
435 def calculDiffCPU(self,nb,nbRef,seuil):
436 # different de calculDiff : si on est inferieur a la reference
437 # on n a pas de warning
439 diffRel=((nb-nbRef)*100)/(nbRef*1.00)
441 warning="plus de "+ str(seuil) + "% de difference CPU"
444 diffRelStr=str(diffRel)+"%"
445 return diff,diffRelStr,warning
447 def calculDiff(self,nb,nbRef,seuil):
448 #print nb,nbRef,seuil
450 diffRel=((nb-nbRef)*100)/(nbRef*1.00)
451 if diffRel > seuil or (-1*diffRel) > seuil :
452 warning="difference superieure a "+ str(seuil) + "%"
455 diffRelStr=str(diffRel)+"%"
456 return diff,diffRelStr,warning