diff --git a/src/Tools/Verima/Base/CMakeLists.txt b/src/Tools/Verima/Base/CMakeLists.txt index cf308ee0c..213ff5349 100644 --- a/src/Tools/Verima/Base/CMakeLists.txt +++ b/src/Tools/Verima/Base/CMakeLists.txt @@ -26,6 +26,8 @@ SET(plugin_SCRIPTS importFromCSV.py tableDeBase.py tableGroupes.py + tableGroupeRatios.py + tableGroupeTailles.py tableGroupesRef.py tableMachines.py tableMaillages.py @@ -36,13 +38,9 @@ SET(plugin_SCRIPTS tableTailles.py tableVersions.py versions.py + __init__.py ) -SET(plugin_DB - myMesh.db - ) - # --- rules --- -SALOME_INSTALL_SCRIPTS("${plugin_SCRIPTS}" ${SALOME_SMESH_INSTALL_PLUGINS}) -SALOME_INSTALL_SCRIPTS("${plugin_DB}" ${SALOME_SMESH_INSTALL_PLUGINS}) +SALOME_INSTALL_SCRIPTS("${plugin_SCRIPTS}" ${SALOME_SMESH_INSTALL_PLUGINS}/Verima/Base) diff --git a/src/Tools/Verima/Base/__init__.py b/src/Tools/Verima/Base/__init__.py index e191ff2ca..07e6537b0 100644 --- a/src/Tools/Verima/Base/__init__.py +++ b/src/Tools/Verima/Base/__init__.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2014 EDF R&D +# Copyright (C) 2007-2013 EDF R&D # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. +# version 2.1 of the License. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/src/Tools/Verima/Base/dataBase.py b/src/Tools/Verima/Base/dataBase.py index b49d321a8..a0e43fd23 100644 --- a/src/Tools/Verima/Base/dataBase.py +++ b/src/Tools/Verima/Base/dataBase.py @@ -14,9 +14,10 @@ from tableGroupes import TableGroupes from tableMailles import TableMailles from tableTailles import TableTailles from tableRatios import TableRatios +from tableGroupeRatios import TableGroupeRatios +from tableGroupeTailles import TableGroupeTailles from tablePerfs import TablePerfs from Stats.job import Job -from Stats.ref import Ref from CreeDocuments.jobHtml import Document @@ -54,6 +55,10 @@ class Base: self.maTableGroupes.createSqlTable() self.maTableRatios=TableRatios() self.maTableRatios.createSqlTable() + self.maTableGroupeRatios=TableGroupeRatios() + self.maTableGroupeRatios.createSqlTable() + self.maTableGroupeTailles=TableGroupeTailles() + self.maTableGroupeTailles.createSqlTable() def initialise(self): self.maTableMaillages=TableMaillages() @@ -66,12 +71,13 @@ class Base: self.maTableGroupesRef=TableGroupesRef() self.maTablePerfs=TablePerfs() self.maTableRatios=TableRatios() + self.maTableGroupeRatios=TableGroupeRatios() + self.maTableGroupeTailles=TableGroupeTailles() def remplit(self): self.maTableMailleurs.remplit() self.maTableMaillages.remplit() self.maTableVersions.remplit() - #self.maTableVersions.creeVersion() self.maTableMachines.creeMachine() self.maTableGroupesRef.remplit() @@ -91,6 +97,8 @@ class Base: self.maTableGroupes.exportToCSV() self.maTablePerfs.exportToCSV() self.maTableRatios.exportToCSV() + self.maTableGroupeRatios.exportToCSV() + self.maTableGroupeTailles.exportToCSV() if partiel==True: return self.maTableMailleurs.exportToCSV() self.maTableVersions.exportToCSV() @@ -110,6 +118,8 @@ class Base: self.maTablePerfs.importFromCSV(folder,force) self.maTableRatios.importFromCSV(folder,force) self.maTableGroupesRef.importFromCSV(folder,force) + self.maTableGroupeRatios.importFromCSV(folder,force) + self.maTableGroupeTailles.importFromCSV(folder,force) def Structure(self): # jamais appelee. juste pour memoire @@ -122,7 +132,6 @@ class Base: else : paramMaillage=self.maTableMaillages.verifieListeMaillages(listeMaillage) # paramMaillage=(( id, script, fichier med),) - #version="Salome7.3" bOk,versionId,versionName = self.maTableVersions.chercheVersion(version) if bOk==False: self.maTableVersions.creeVersion(version) @@ -149,115 +158,68 @@ class Base: print " Job : ", params[1] print " Version de salome : ", versionName - #recherche si le Job a deja ete passe - if self.maTablePerfs.getVal(params[0],versionId,nomMachine) !=None and force==False: - print "job numero: " , params[0], "deja passe" - print "" - print "___________________________________________" - continue - # recherche de la reference du Job - maRef=Ref(self,params[0],versionId,nomMachine) - idVersionRef=self.maTableVersions.getVersionRef() idJob=params[0] - if maRef.existe==False and idVersionRef != versionId : - print "pas de reference pour le job : ", params[0] - print "pas de passage du job", - continue - - mesGroupesRef=self.maTableGroupesRef.getVals(idJob) fichierGroupesRef=str(params[2]).replace('.med','_groupesRef.res') from Stats.utiles import writeFile - writeFile(fichierGroupesRef,",".join(mesGroupesRef)) - monjob=Job(params,salomePath,versionId,nomMachine,mesGroupesRef) + if mesGroupesRef != [] : + writeFile(fichierGroupesRef,",".join(mesGroupesRef)) + monjob=Job(params,salomePath,versionId,mesGroupesRef) print "" print " Debut d execution" monjob.execute() # remplit Perfs self.maTablePerfs.insereOuRemplaceLigne((idJob,versionId,nomMachine,int(monjob.getCPU()),0),False) - if idVersionRef != versionId : - stop=maRef.verifieCpu(monjob.getCPU()) - if stop : - print " Arret " - print " Pb CPU: Seuil Atteint sur job : ", params[0] - print "________________________________________" # remplit la table Mailles listeColonnes,listeValues=monjob.getStatSurMailles() - print listeColonnes,listeValues i=0 for col in listeColonnes : - lVal=[idJob,versionId,nomMachine,col]+[listeValues[i]] + lVal=[idJob,versionId,col]+[listeValues[i]] lVal=tuple(lVal) if str(listeValues[i]) != str(0): self.maTableMailles.insereOuRemplaceLigne(lVal,False) i+=1 - if idVersionRef != versionId : - stop=maRef.verifieMailles(listeValues,listeColonnes) - if stop : - print " Arret " - print " Pb sur le nombre de Maille : Seuil Atteint sur job : ", params[0] - print "_________________________________________________________________" - #exit() - else : - print "verification du Nb de Mailles effectuee" # remplit la table Tailles listeValues=monjob.getStatSurTailles() - lVal=[params[0],versionId,nomMachine]+listeValues + lVal=[params[0],versionId]+listeValues self.maTableTailles.insereOuRemplaceLigne(tuple(lVal),False) - if idVersionRef != versionId : - stop=maRef.verifieTailles(lVal) - if stop : - print " Arret " - print " Pb sur la taille des mailles : Seuil Atteint sur job : ", params[0] - print "_________________________________________________________________" - #exit() - else : - print "verification du Nb de Mailles effectuee" - # remplit la table Ratio maDim=self.maTableMaillages.getVal(params[0],'dimension') - if maDim == 3 : - listeValues=monjob.getStatSurRatios() - lVal=[params[0],versionId,nomMachine]+listeValues - self.maTableRatios.insereOuRemplaceLigne(tuple(lVal),False) - if idVersionRef != versionId : - stop=maRef.verifieRatios(lVal) - if stop : - print " Arret " - print " Pb sur la taille des mailles : Seuil Atteint sur job : ", params[0] - print "_________________________________________________________________" - #exit() - else : - print "verification du Nb de Mailles effectuee" + listeValues=monjob.getStatSurRatios() + lVal=[params[0],versionId]+listeValues + self.maTableRatios.insereOuRemplaceLigne(tuple(lVal),False) # remplit les Groupes for groupe in mesGroupesRef: listeColonnes,listeValues=monjob.getStatSurGroupes(groupe) i=0 for col in listeColonnes : - lVal=[groupe,params[0],versionId,nomMachine,col]+[listeValues[i]] + lVal=[groupe,params[0],versionId,col]+[listeValues[i]] lVal=tuple(lVal) if str(listeValues[i]) != str(0): self.maTableGroupes.insereOuRemplaceLigne(lVal,False) i=i+1 - if idVersionRef != versionId : - stop=maRef.verifieMaillesPourGroupes(groupe,listeValues,listeColonnes) - stop=0 - if stop : - print " Arret " - print " Pb sur le nombre de Maille : Seuil Atteint sur job : ", params[0] - print "_________________________________________________________________" - #exit() - print "verification du Nb de Mailles sur les groupes reference effectuee" - print "_________________________________________________________________" + + # remplit les Ratio Groupes + for groupe in mesGroupesRef: + listeValues=monjob.getStatSurRatiosGroupes(groupe) + if listeValues==['0','0','0','0','0','0'] : continue + lVal=[params[0],versionId,groupe]+listeValues + self.maTableGroupeRatios.insereOuRemplaceLigne(tuple(lVal),False) + listeValues=monjob.getStatSurTaillesGroupes(groupe) + lVal=[params[0],versionId,groupe]+listeValues + self.maTableGroupeTailles.insereOuRemplaceLigne(tuple(lVal),False) + monjob.menage() + - def compare(self,version,versionRef,fichier): + def compare(self,version,ListeVersionRefString,fichier): print "_________________________________________________________________" print "Generation du rapport de comparaison" + print version bOk,versionId,versionName = self.maTableVersions.chercheVersion(version) if bOk==False : print "version ", version , " inconnue dans la base" @@ -266,75 +228,60 @@ class Base: versionCompName=versionName versionCompId=versionId - if versionRef==None: - idVersionRef=self.maTableVersions.getVersionRef() - bOk,versionId,versionName = self.maTableVersions.chercheVersion(idVersionRef) - if bOk==False : - print "version de référence ", versionRef , " inconnue dans la base" - versionRefName=versionName - versionRefId=versionId - print "Version de comparaison : ", versionRefName + listeVersionRefId=[] + listeVersionRefName=[] + ListeVersionRef=ListeVersionRefString.split(",") + for id in ListeVersionRef: + bOk,versionId,versionName = self.maTableVersions.chercheVersion(id) + if bOk==False : + print "version ", id , " inconnue dans la base" + exit() + listeVersionRefId.append(versionId) + listeVersionRefName.append(versionName) bOk,nomMachine = self.maTableMachines.chercheMachine() monDocument=Document() - monDocument.initEntete(versionName, versionRefName,nomMachine) - mailleursIdListe,mailleursNameListe=self.maTableMailleurs.getTous() + monDocument.initEntete(versionCompName, nomMachine) + + maillagesIdListe, maillagesNameListe=self.maTableMaillages.getTous() + if len(maillagesIdListe) != len (listeVersionRefId): + print "Pas assez de version de reference" + exit() allEntitySurMaille=self.maTableMailles.getAllEntity() allEntitySurGroupe=self.maTableGroupes.getAllEntity() - # Boucle sur les mailleurs - for indexMailleur in range(len(mailleursNameListe)): - monDocument.initMailleur(mailleursNameListe[indexMailleur]) - l1,l2,l3,l4,l5,l6=self.maTableMaillages.getTousPourMaillage(mailleursIdListe[indexMailleur]) - maillagesIdListe=l1 - maillagesNameListe=l2 - maillagesSeuilCPUListe=l3 - maillagesSeuilRatioListe=l4 - maillagesSeuilTailleListe=l5 - maillagesSeuilNbMailleListe=l6 + + # Boucle sur les maillages + for idMaillage in maillagesIdListe : + print idMaillage + versionRefId=listeVersionRefId[idMaillage - 1] + versionRefName=listeVersionRefName[idMaillage - 1] + mailleurId=self.maTableMaillages.getMailleurId(idMaillage) + mailleurName=self.maTableMailleurs.getName(mailleurId) + + # Recuperation des seuils + l1,l2,l3,l4,l5,l6=self.maTableMaillages.getSeuilsPourMaillage(idMaillage) + monSeuilCPU=l3 + monSeuilRatio=l4 + monSeuilTaille=l5 + monSeuilNbMaille=l6 + + + # Et du temps CPU dicoMaillage={} - # Boucle sur les maillages - for indexMaillage in range(len(maillagesNameListe)): - idMaillage=maillagesIdListe[indexMaillage] - dicoMaillage["NOM"]=maillagesNameListe[indexMaillage] - dicoMaillage["NBCPU"]=self.maTablePerfs.getVal(idMaillage,versionCompId,nomMachine) - dicoMaillage["REFCPU"]=self.maTablePerfs.getVal(idMaillage,versionRefId,nomMachine) - dicoMaillage["DIFCPU"],dicoMaillage["DIFREL"],dicoMaillage["WARNING"]=self.calculDiffCPU(dicoMaillage["NBCPU"],dicoMaillage["REFCPU"],maillagesSeuilCPUListe[indexMaillage]) - - dicoMaillage["RMAX"]=self.maTableRatios.getVal(idMaillage,versionCompId,nomMachine,'RatioMax') - dicoMaillage["RMAXREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,nomMachine,'RatioMax') - dicoMaillage["RMIN"]=self.maTableRatios.getVal(idMaillage,versionCompId,nomMachine,'RatioMin') - dicoMaillage["RMINREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,nomMachine,'RatioMin') - dicoMaillage["RMOY"]=self.maTableRatios.getVal(idMaillage,versionCompId,nomMachine,'Moyenne') - dicoMaillage["RMOYREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,nomMachine,'Moyenne') - dicoMaillage["R1Q"]=self.maTableRatios.getVal(idMaillage,versionCompId,nomMachine,'Q1') - dicoMaillage["R1QREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,nomMachine,'Q1') - dicoMaillage["RMED"]=self.maTableRatios.getVal(idMaillage,versionCompId,nomMachine,'Mediane') - dicoMaillage["RMEDREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,nomMachine,'Mediane') - dicoMaillage["R3Q"]=self.maTableRatios.getVal(idMaillage,versionCompId,nomMachine,'Q3') - dicoMaillage["R3QREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,nomMachine,'Q3') - - dicoMaillage["TMAX"]=self.maTableTailles.getVal(idMaillage,versionCompId,nomMachine,'TailleMax') - dicoMaillage["TMAXREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,nomMachine,'TailleMax') - dicoMaillage["TMIN"]=self.maTableTailles.getVal(idMaillage,versionCompId,nomMachine,'TailleMin') - dicoMaillage["TMINREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,nomMachine,'TailleMin') - dicoMaillage["TMOY"]=self.maTableTailles.getVal(idMaillage,versionCompId,nomMachine,'Moyenne') - dicoMaillage["TMOYREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,nomMachine,'Moyenne') - dicoMaillage["T1Q"]=self.maTableTailles.getVal(idMaillage,versionCompId,nomMachine,'Q1') - dicoMaillage["T1QREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,nomMachine,'Q1') - dicoMaillage["TMED"]=self.maTableTailles.getVal(idMaillage,versionCompId,nomMachine,'Mediane') - dicoMaillage["TMEDREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,nomMachine,'Mediane') - dicoMaillage["T3Q"]=self.maTableTailles.getVal(idMaillage,versionCompId,nomMachine,'Q3') - dicoMaillage["T3QREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,nomMachine,'Q3') + dicoMaillage["NBCPU"]=self.maTablePerfs.getVal(idMaillage,versionCompId,nomMachine) + dicoMaillage["REFCPU"]=self.maTablePerfs.getVal(idMaillage,versionRefId,nomMachine) + dicoMaillage["DIFCPU"],dicoMaillage["DIFREL"],dicoMaillage["WARNING"]=self.calculDiffCPU(dicoMaillage["NBCPU"],dicoMaillage["REFCPU"],monSeuilCPU) + monDocument.initMaillage(maillagesNameListe[idMaillage-1],mailleurName,versionRefName,dicoMaillage) - monDocument.initJob(dicoMaillage) + # Boucle sur les Mailles - i=0 - dico={} - dico["TITRE"]="Nombre de Mailles dans le maillage entier" - for nomColonne in allEntitySurMaille: - val=self.maTableMailles.getVal(idMaillage,versionCompId,nomMachine,nomColonne) - valRef=self.maTableMailles.getVal(idMaillage,versionRefId,nomMachine,nomColonne) + dico={} + dico["TITRE"]="Nombre de Mailles dans le maillage entier" + i=0 + for nomColonne in allEntitySurMaille: + val=self.maTableMailles.getVal(idMaillage,versionCompId,nomColonne) + valRef=self.maTableMailles.getVal(idMaillage,versionRefId,nomColonne) if val==0 and valRef==0 : continue i=i+1 #print nomColonne;print val; print valRef @@ -344,30 +291,127 @@ class Base: dico[cMAIL]=nomColonne dico[cREF]=valRef dico[cNB]=val - dico[cDIF],dico[cREL],dico[cWARN]=self.calculDiff(val,valRef,maillagesSeuilNbMailleListe[indexMaillage]) - monDocument.initMaille(dico,i) + dico[cDIF],dico[cREL],dico[cWARN]=self.calculDiff(val,valRef,monSeuilNbMaille) + monDocument.initMaille(dico,i) + + + + # + dicoMaillage={} + + dicoMaillage["RMAX"]=self.maTableRatios.getVal(idMaillage,versionCompId,'RatioMax') + dicoMaillage["RMAXREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,'RatioMax') + dicoMaillage["DIFARMAX"],dicoMaillage["DIFRRMAX"],dicoMaillage["WRRMAX"]=self.calculDiff(dicoMaillage["RMAX"],dicoMaillage["RMAXREF"],monSeuilRatio) + dicoMaillage["RMIN"]=self.maTableRatios.getVal(idMaillage,versionCompId,'RatioMin') + dicoMaillage["RMINREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,'RatioMin') + dicoMaillage["DIFARMIN"],dicoMaillage["DIFRRMIN"],dicoMaillage["WRRMIN"]=self.calculDiff(dicoMaillage["RMIN"],dicoMaillage["RMINREF"],monSeuilRatio) + dicoMaillage["RMOY"]=self.maTableRatios.getVal(idMaillage,versionCompId,'Moyenne') + dicoMaillage["RMOYREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,'Moyenne') + dicoMaillage["DIFARMOY"],dicoMaillage["DIFRRMOY"],dicoMaillage["WRRMOY"]=self.calculDiff(dicoMaillage["RMOY"],dicoMaillage["RMOYREF"],monSeuilRatio) + dicoMaillage["R1Q"]=self.maTableRatios.getVal(idMaillage,versionCompId,'Q1') + dicoMaillage["R1QREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,'Q1') + dicoMaillage["DIFAR1Q"],dicoMaillage["DIFRR1Q"],dicoMaillage["WRR1Q"]=self.calculDiff(dicoMaillage["R1Q"],dicoMaillage["R1QREF"],monSeuilRatio) + dicoMaillage["RMED"]=self.maTableRatios.getVal(idMaillage,versionCompId,'Mediane') + dicoMaillage["RMEDREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,'Mediane') + dicoMaillage["DIFARMED"],dicoMaillage["DIFRRMED"],dicoMaillage["WRRMED"]=self.calculDiff(dicoMaillage["RMED"],dicoMaillage["RMEDREF"],monSeuilRatio) + dicoMaillage["R3Q"]=self.maTableRatios.getVal(idMaillage,versionCompId,'Q3') + dicoMaillage["R3QREF"]=self.maTableRatios.getVal(idMaillage,versionRefId,'Q3') + dicoMaillage["DIFAR3Q"],dicoMaillage["DIFRR3Q"],dicoMaillage["WRR3Q"]=self.calculDiff(dicoMaillage["R3Q"],dicoMaillage["R3QREF"],monSeuilRatio) + + dicoMaillage["TMAX"]=self.maTableTailles.getVal(idMaillage,versionCompId,'TailleMax') + dicoMaillage["TMAXREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,'TailleMax') + dicoMaillage["DIFATMAX"],dicoMaillage["DIFRTMAX"],dicoMaillage["WTMAX"]=self.calculDiff(dicoMaillage["TMAX"],dicoMaillage["TMAXREF"],monSeuilTaille) + dicoMaillage["TMIN"]=self.maTableTailles.getVal(idMaillage,versionCompId,'TailleMin') + dicoMaillage["TMINREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,'TailleMin') + dicoMaillage["DIFATMIN"],dicoMaillage["DIFRTMIN"],dicoMaillage["WTMIN"]=self.calculDiff(dicoMaillage["TMIN"],dicoMaillage["TMINREF"],monSeuilTaille) + dicoMaillage["TMOY"]=self.maTableTailles.getVal(idMaillage,versionCompId,'Moyenne') + dicoMaillage["TMOYREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,'Moyenne') + dicoMaillage["DIFATMOY"],dicoMaillage["DIFRTMOY"],dicoMaillage["WTMOY"]=self.calculDiff(dicoMaillage["TMOY"],dicoMaillage["TMOYREF"],monSeuilTaille) + dicoMaillage["T1Q"]=self.maTableTailles.getVal(idMaillage,versionCompId,'Q1') + dicoMaillage["T1QREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,'Q1') + dicoMaillage["DIFAT1Q"],dicoMaillage["DIFRT1Q"],dicoMaillage["WT1Q"]=self.calculDiff(dicoMaillage["T1Q"],dicoMaillage["T1QREF"],monSeuilTaille) + dicoMaillage["TMED"]=self.maTableTailles.getVal(idMaillage,versionCompId,'Mediane') + dicoMaillage["TMEDREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,'Mediane') + dicoMaillage["DIFATMED"],dicoMaillage["DIFRTMED"],dicoMaillage["WTMED"]=self.calculDiffCPU(dicoMaillage["TMED"],dicoMaillage["TMEDREF"],monSeuilTaille) + dicoMaillage["T3Q"]=self.maTableTailles.getVal(idMaillage,versionCompId,'Q3') + dicoMaillage["T3QREF"]=self.maTableTailles.getVal(idMaillage,versionRefId,'Q3') + dicoMaillage["DIFAT3Q"],dicoMaillage["DIFRT3Q"],dicoMaillage["WT3Q"]=self.calculDiffCPU(dicoMaillage["T3Q"],dicoMaillage["T3QREF"],monSeuilTaille) + + #PNPNPN a revoir le initJob + monDocument.initJob(dicoMaillage) + + + # Boucle sur les groupes du maillage + mesGroupesRef=self.maTableGroupesRef.getVals(idMaillage) + if mesGroupesRef==[] : monDocument.addNoGroup() + for groupeId in mesGroupesRef: + i=0 + dico={} + dico["TITRE"]="Nombre de Mailles dans le groupe "+groupeId + for nomColonne in allEntitySurGroupe: + val=self.maTableGroupes.getVal(groupeId,idMaillage,versionCompId,nomColonne) + valRef=self.maTableGroupes.getVal(groupeId,idMaillage,versionRefId,nomColonne) + if val==0 and valRef==0 : continue + i=i+1 + cMAIL="MAIL"+str(i); cREF="REF"+str(i) + cNB="NB"+str(i); cDIF="DIF"+str(i); cREL="REL"+str(i) + cWARN="WARN"+str(i); + dico[cMAIL]=nomColonne + dico[cREF]=valRef + dico[cNB]=val + dico[cDIF],dico[cREL],dico[cWARN]=self.calculDiff(val,valRef,monSeuilNbMaille) + monDocument.initMaille(dico,i) + + + # + dico={} + + if self.maTableGroupeRatios.getVal(idMaillage,versionCompId,groupeId,'RatioMax') != 0 : + dico["RMAX"]=self.maTableGroupeRatios.getVal(idMaillage,versionCompId,groupeId,'RatioMax') + dico["RMAXREF"]=self.maTableGroupeRatios.getVal(idMaillage,versionRefId,groupeId,'RatioMax') + dico["DIFARMAX"],dico["DIFRRMAX"],dico["WRRMAX"]=self.calculDiff(dico["RMAX"],dico["RMAXREF"],monSeuilRatio) + dico["RMIN"]=self.maTableGroupeRatios.getVal(idMaillage,versionCompId,groupeId,'RatioMin') + dico["RMINREF"]=self.maTableGroupeRatios.getVal(idMaillage,versionRefId,groupeId,'RatioMin') + dico["DIFARMIN"],dico["DIFRRMIN"],dico["WRRMIN"]=self.calculDiff(dico["RMIN"],dico["RMINREF"],monSeuilRatio) + dico["RMOY"]=self.maTableGroupeRatios.getVal(idMaillage,versionCompId,groupeId,'Moyenne') + dico["RMOYREF"]=self.maTableGroupeRatios.getVal(idMaillage,versionRefId,groupeId,'Moyenne') + dico["DIFARMOY"],dico["DIFRRMOY"],dico["WRRMOY"]=self.calculDiff(dico["RMOY"],dico["RMOYREF"],monSeuilRatio) + dico["R1Q"]=self.maTableGroupeRatios.getVal(idMaillage,versionCompId,groupeId,'Q1') + dico["R1QREF"]=self.maTableGroupeRatios.getVal(idMaillage,versionRefId,groupeId,'Q1') + dico["DIFAR1Q"],dico["DIFRR1Q"],dico["WRR1Q"]=self.calculDiff(dico["R1Q"],dico["R1QREF"],monSeuilRatio) + dico["RMED"]=self.maTableGroupeRatios.getVal(idMaillage,versionCompId,groupeId,'Mediane') + dico["RMEDREF"]=self.maTableGroupeRatios.getVal(idMaillage,versionRefId,groupeId,'Mediane') + dico["DIFARMED"],dico["DIFRRMED"],dico["WRRMED"]=self.calculDiff(dico["RMED"],dico["RMEDREF"],monSeuilRatio) + dico["R3Q"]=self.maTableGroupeRatios.getVal(idMaillage,versionCompId,groupeId,'Q3') + dico["R3QREF"]=self.maTableGroupeRatios.getVal(idMaillage,versionRefId,groupeId,'Q3') + dico["DIFAR3Q"],dico["DIFRR3Q"],dico["WRR3Q"]=self.calculDiff(dico["R3Q"],dico["R3QREF"],monSeuilRatio) + monDocument.CreeGroupeRatios(dico) + + dico={} + if self.maTableGroupeTailles.getVal(idMaillage,versionCompId,groupeId,'TailleMax') != 0: + dico["TMAX"]=self.maTableGroupeTailles.getVal(idMaillage,versionCompId,groupeId,'TailleMax') + dico["TMAXREF"]=self.maTableGroupeTailles.getVal(idMaillage,versionRefId,groupeId,'TailleMax') + dico["DIFATMAX"],dico["DIFRTMAX"],dico["WTMAX"]=self.calculDiff(dico["TMAX"],dico["TMAXREF"],monSeuilTaille) + dico["TMIN"]=self.maTableGroupeTailles.getVal(idMaillage,versionCompId,groupeId,'TailleMin') + dico["TMINREF"]=self.maTableGroupeTailles.getVal(idMaillage,versionRefId,groupeId,'TailleMin') + dico["DIFATMIN"],dico["DIFRTMIN"],dico["WTMIN"]=self.calculDiff(dico["TMIN"],dico["TMINREF"],monSeuilTaille) + dico["TMOY"]=self.maTableGroupeTailles.getVal(idMaillage,versionCompId,groupeId,'Moyenne') + dico["TMOYREF"]=self.maTableGroupeTailles.getVal(idMaillage,versionRefId,groupeId,'Moyenne') + dico["DIFATMOY"],dico["DIFRTMOY"],dico["WTMOY"]=self.calculDiff(dico["TMOY"],dico["TMOYREF"],monSeuilTaille) + dico["T1Q"]=self.maTableGroupeTailles.getVal(idMaillage,versionCompId,groupeId,'Q1') + dico["T1QREF"]=self.maTableGroupeTailles.getVal(idMaillage,versionRefId,groupeId,'Q1') + dico["DIFAT1Q"],dico["DIFRT1Q"],dico["WT1Q"]=self.calculDiff(dico["T1Q"],dico["T1QREF"],monSeuilTaille) + dico["TMED"]=self.maTableGroupeTailles.getVal(idMaillage,versionCompId,groupeId,'Mediane') + dico["TMEDREF"]=self.maTableGroupeTailles.getVal(idMaillage,versionRefId,groupeId,'Mediane') + dico["DIFATMED"],dico["DIFRTMED"],dico["WTMED"]=self.calculDiffCPU(dico["TMED"],dico["TMEDREF"],monSeuilTaille) + dico["T3Q"]=self.maTableGroupeTailles.getVal(idMaillage,versionCompId,groupeId,'Q3') + dico["T3QREF"]=self.maTableGroupeTailles.getVal(idMaillage,versionRefId,groupeId,'Q3') + dico["DIFAT3Q"],dico["DIFRT3Q"],dico["WT3Q"]=self.calculDiffCPU(dico["T3Q"],dico["T3QREF"],monSeuilTaille) + monDocument.CreeGroupeTaille(dico) + + + - # Boucle sur les groupes du maillage - mesGroupesRef=self.maTableGroupesRef.getVals(idMaillage) - if mesGroupesRef==[] : monDocument.addNoGroup() - for groupeId in mesGroupesRef: - i=0 - dico={} - dico["TITRE"]="Nombre de Mailles dans le groupe "+groupeId - for nomColonne in allEntitySurGroupe: - val=self.maTableGroupes.getVal(groupeId,idMaillage,versionCompId,nomMachine,nomColonne) - valRef=self.maTableGroupes.getVal(groupeId,idMaillage,versionRefId,nomMachine,nomColonne) - if val==0 and valRef==0 : continue - i=i+1 - cMAIL="MAIL"+str(i); cREF="REF"+str(i) - cNB="NB"+str(i); cDIF="DIF"+str(i); cREL="REL"+str(i) - cWARN="WARN"+str(i); - #print nomColonne," ",val," ",valRef - dico[cMAIL]=nomColonne - dico[cREF]=valRef - dico[cNB]=val - dico[cDIF],dico[cREL],dico[cWARN]=self.calculDiff(val,valRef,maillagesSeuilNbMailleListe[indexMaillage]) - monDocument.initMaille(dico,i) monDocument.creeDocument(fichier) @@ -384,6 +428,7 @@ class Base: return diff,diffRelStr,warning def calculDiff(self,nb,nbRef,seuil): + #print nb,nbRef,seuil diff=nb-nbRef diffRel=((nb-nbRef)*100)/(nbRef*1.00) if diffRel > seuil or (-1*diffRel) > seuil : diff --git a/src/Tools/Verima/Base/exportToCSV.py b/src/Tools/Verima/Base/exportToCSV.py index 760114d58..4560a2a6f 100755 --- a/src/Tools/Verima/Base/exportToCSV.py +++ b/src/Tools/Verima/Base/exportToCSV.py @@ -4,7 +4,6 @@ import sys,os from PyQt4 import QtGui,QtCore pathRacine=os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)),'..')) -print pathRacine if os.path.dirname(pathRacine) not in sys.path : sys.path.insert(0,pathRacine) diff --git a/src/Tools/Verima/Base/myMesh.db b/src/Tools/Verima/Base/myMesh.db deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/Tools/Verima/Base/tableDeBase.py b/src/Tools/Verima/Base/tableDeBase.py index 3a05a045c..9c2370b44 100644 --- a/src/Tools/Verima/Base/tableDeBase.py +++ b/src/Tools/Verima/Base/tableDeBase.py @@ -17,7 +17,7 @@ class TableDeBase : def getFields(self): return self.FieldStringList - def insereLigne(self,valeurs,debug=True): + def insereLigne(self,valeurs,debug=False): if self.verifieExitenceId(valeurs[0])!=0 : print "impossible d inserer " , valeurs, "dans ", self.nom print "l id est deja existant" @@ -27,12 +27,13 @@ class TableDeBase : if debug : print texteQuery, " " , maQuery.exec_(texteQuery) else : maQuery.exec_(texteQuery) - def insereLigneAutoId(self,valeurs): + def insereLigneAutoId(self,valeurs,debug=False): texteQuery='insert into ' + self.nom + self.cols+ " values "+ str(valeurs)+ ';' maQuery=QSqlQuery() - print texteQuery, " " , maQuery.exec_(texteQuery) + if debug : print texteQuery, " " , maQuery.exec_(texteQuery) + else : maQuery.exec_(texteQuery) - def insereOuRemplaceLigne(self,valeurs,debug=True): + def insereOuRemplaceLigne(self,valeurs,debug=False): texteQuery='insert or replace into ' + self.nom + " values "+ str(valeurs)+ ';' maQuery=QSqlQuery() if debug : print texteQuery, " " , maQuery.exec_(texteQuery) diff --git a/src/Tools/Verima/Base/tableGroupes.py b/src/Tools/Verima/Base/tableGroupes.py index aaeb32766..9f0cca918 100644 --- a/src/Tools/Verima/Base/tableGroupes.py +++ b/src/Tools/Verima/Base/tableGroupes.py @@ -4,46 +4,35 @@ from tableDeBase import TableDeBase class TableGroupes (TableDeBase): def __init__(self): TableDeBase.__init__(self,"Groupes") - #self.setField(('Groupe','Maillage','Version','Machine', 'Node','0D','Edge','Quad_Edge','Triangle','Quad_Triangle','BiQuad_Triangle','Quadrangle','Quad_Quadrangle','BiQuad_Quadrangle','Polygon','Quad_Polygon','Tetra','Quad_Tetra','Pyramid','Quad_Pyramid','Hexa','Quad_Hexa','TriQuad_Hexa','Penta','Quad_Penta','Hexagonal_Prism','Polyhedra','Quad_Polyhedra',)) - #self.setTypeField(('int','str','int','int','str','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int'),('id','idMaillage','idVersion','Machine')) - self.setField(('Groupe','Maillage','Version','Machine','Entite','NbEntite')) - self.setTypeField(('str','int','int','str','str','int'),('nomGroupe','idMaillage','idVersion','Machine','Entite')) + self.setField(('Groupe','Maillage','Version','Entite','NbEntite')) + self.setTypeField(('str','int','int','str','int'),('nomGroupe','idMaillage','idVersion','Entite')) def createSqlTable(self): query=QtSql.QSqlQuery() - #texteQuery ="create table Groupes( nomGroupe varchar(40),idMaillage int, idVersion int," - #texteQuery+="Machine varchar(10), Node int, " - #texteQuery+="0D int, Edge int, Quad_Edge int, Triangle int, Quad_Triangle int, BiQuad_Triangle int," - #texteQuery+="Quadrangle int, Quad_Quadrangle int, BiQuad_Quadrangle int, Polygon int," - #texteQuery+="Quad_Polygon int, Tetra int, Quad_Tetra int, Pyramid int, Quad_Pyramid int," - #texteQuery+="Hexa int, Quad_Hexa int, TriQuad_Hexa int, Penta int, Quad_Penta int," - #texteQuery+="Hexagonal_Prism int, Polyhedra int, Quad_Polyhedra int, " texteQuery ="create table Groupes( nomGroupe varchar(40),idMaillage int, idVersion int," - texteQuery+="Machine varchar(10), Entite var(40), NbEntite int," + texteQuery+="Entite var(40), NbEntite int," texteQuery+="foreign key (idMaillage) references Maillages(id)," texteQuery+="foreign key (idVersion) references Versions(id)," - texteQuery+="foreign key (Machine) references Machines(nomMachine)," - texteQuery+="primary key (nomGroupe,idMaillage,idVersion,Machine,Entite));" + texteQuery+="primary key (nomGroupe,idMaillage,idVersion,Entite));" print "Creation de TableGroupes : ", query.exec_(texteQuery) - def getVal(self,nomGroupe,idMaillage,idVersion,Machine,typeMaille): + def getVal(self,nomGroupe,idMaillage,idVersion,typeMaille): val=0 # Valeur si l enregistrement n existe pas query=QtSql.QSqlQuery() texteQuery ='select NbEntite from Groupes where nomGroupe ="' + nomGroupe +'"' texteQuery +=' and idMaillage=' + str(idMaillage) texteQuery +=' and idVersion = ' + str(idVersion) - texteQuery +=' and Machine ="' + Machine + '"' texteQuery +=' and Entite ="' + str(typeMaille) + '";' query.exec_(texteQuery) while (query.next()) : val=query.value(0).toInt()[0] while (query.next()) : - print "plusieurs enregistrements dans groupe pour ", nomGroupe," ",str(idMaillage)," ",str(idVersion)," ",Machine + print "plusieurs enregistrements dans groupe pour ", nomGroupe," ",str(idMaillage)," ",str(idVersion),"\n" return val diff --git a/src/Tools/Verima/Base/tableGroupesRef.py b/src/Tools/Verima/Base/tableGroupesRef.py index 736a64905..7155db6de 100644 --- a/src/Tools/Verima/Base/tableGroupesRef.py +++ b/src/Tools/Verima/Base/tableGroupesRef.py @@ -24,11 +24,18 @@ class TableGroupesRef (TableDeBase): return listeGroupes - def remplit(self): - self.insereLigne(('FRONT_07',2)) - self.insereLigne(('FOND_07',2)) - self.insereLigne(('PAROI_07',2)) - self.insereLigne(('ROCHE_07',2)) - self.insereLigne(('FOND_16',2)) - self.insereLigne(('PAROI_16',2)) - self.insereLigne(('ROCHE_16',2)) +# def remplit(self): + +# Groupe pour le script du tunnel (fiche 7566) +# self.insereLigne(('FRONT_07',1)) +# self.insereLigne(('FOND_07',1)) +# self.insereLigne(('PAROI_07',1)) +# self.insereLigne(('ROCHE_07',1)) +# self.insereLigne(('FOND_16',1)) +# self.insereLigne(('PAROI_16',1)) +# self.insereLigne(('ROCHE_16',1)) +# Groupe pour le script de l'attache d'une ailette (fiche 7957) +# self.insereLigne(('RAIN_JONC',2)) +# self.insereLigne(('EXT_CRAN',2)) +# self.insereLigne(('ENV_E',2)) +# self.insereLigne(('ENV_I',2)) diff --git a/src/Tools/Verima/Base/tableMaillages.py b/src/Tools/Verima/Base/tableMaillages.py index 28e9bbba3..c505c0671 100644 --- a/src/Tools/Verima/Base/tableMaillages.py +++ b/src/Tools/Verima/Base/tableMaillages.py @@ -40,9 +40,9 @@ class TableMaillages (TableDeBase): if self.dejaRemplie(): print "table Maillage deja initialisee" return - self.insereLigneAutoId(('tetra', 'Scripts/script1.py', '/tmp/tetra.med', 2,3,5,5,5,5, 'essaiPN')) - self.insereLigneAutoId(('MASSIF_M', 'Scripts/excavation.py', '/tmp/MASSIF.new.med', 1,3,5,5,5,5, 'essaiGN')) - + self.insereLigneAutoId(('Fiche_7566_TUNNEL', '/home/H77945/CAS_TEST/MAILLEUR/FICHE_7566_TUNNEL/Fiche_7566_TUNNEL.py', '/tmp/Fiche_7566_TUNNEL.med', 3,3,10,10,10,10, 'Maillage d un tunnel')) +# self.insereLigneAutoId(('Fiche_7957_AILETTE', '/home/H77945/CAS_TEST/MAILLEUR/FICHE_7957_AILETTE/Fiche_7957_AILETTE.py', '/tmp/Fiche_7957_AILETTE.med', 1,2,10,10,10,10, 'Maillage d une attache d aillette')) + def construitListeMaillages(self): maQuery=QtSql.QSqlQuery() texteQuery="select id, nomScript,medResultat from Maillages;" @@ -66,19 +66,35 @@ class TableMaillages (TableDeBase): print "impossible de traiter le maillage : ", idM return newListeMaillages - def getTousPourMaillage(self,idMailleur): - l1=[]; l2=[]; l3=[] - l4=[]; l5=[]; l6=[] - texteQuery="select id,nomMaillage,seuilCPU,seuilRatio,seuilTaille,seuilNbMaille from Maillages where idMailleur= "+ str(idMailleur) +" ;" + def getSeuilsPourMaillage(self,idMaillage): + texteQuery="select id,nomMaillage,seuilCPU,seuilRatio,seuilTaille,seuilNbMaille from Maillages where id = "+ str(idMaillage) +" ;" maQuery=QtSql.QSqlQuery() - #print texteQuery maQuery.exec_(texteQuery) while(maQuery.next()): - l1.append( maQuery.value(0).toInt()[0]) - l2.append( maQuery.value(1).toString()) - l3.append( maQuery.value(2).toInt()[0]) - l4.append( maQuery.value(3).toInt()[0]) - l5.append( maQuery.value(4).toInt()[0]) - l6.append( maQuery.value(5).toInt()[0]) + l1 = maQuery.value(0).toInt()[0] + l2 = maQuery.value(1).toString() + l3 = maQuery.value(2).toInt()[0] + l4 = maQuery.value(3).toInt()[0] + l5 = maQuery.value(4).toInt()[0] + l6 = maQuery.value(5).toInt()[0] return l1,l2,l3,l4,l5,l6 + def getTous(self): + maillagesIdListe=[]; maillagesNomListe=[] + texteQuery="select id,nomMaillage from Maillages order by id;" + maQuery=QtSql.QSqlQuery() + maQuery.exec_(texteQuery) + while(maQuery.next()): + maillagesIdListe.append( maQuery.value(0).toInt()[0]) + maillagesNomListe.append( maQuery.value(1).toString()) + return maillagesIdListe, maillagesNomListe + + def getMailleurId(self,idMaillage): + texteQuery="select idMailleur from Maillages where id = "+ str(idMaillage) +" ;" + maQuery=QtSql.QSqlQuery() + print texteQuery + print maQuery.exec_(texteQuery) + maQuery.exec_(texteQuery) + while(maQuery.next()): + idMailleur = maQuery.value(0).toInt()[0] + return idMailleur diff --git a/src/Tools/Verima/Base/tableMailles.py b/src/Tools/Verima/Base/tableMailles.py index 9d3f81d06..90ae30de4 100644 --- a/src/Tools/Verima/Base/tableMailles.py +++ b/src/Tools/Verima/Base/tableMailles.py @@ -4,36 +4,26 @@ from tableDeBase import TableDeBase class TableMailles (TableDeBase): def __init__(self): TableDeBase.__init__(self,"Mailles") - # self.setField(('Maillage','Version','Machine','Node','N0D','Edge','Quad_Edge','Triangle','Quad_Triangle','BiQuad_Triangle','Quadrangle','Quad_Quadrangle','BiQuad_Quadrangle','Polygon','Quad_Polygon','Tetra','Quad_Tetra','Pyramid','Quad_Pyramid','Hexa','Quad_Hexa','TriQuad_Hexa','Penta','Quad_Penta','Hexagonal_Prism','Polyhedra','Quad_Polyhedra',)) - # self.setTypeField(('int','int','str','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int','int'),('idMaillage','idVersion','Machine')) - self.setField(('Maillage','Version','Machine','Entite','NbEntite')) - self.setTypeField(('int','int','str','str','int'),('idMaillage','idVersion','Machine','Entite')) + self.setField(('Maillage','Version','Entite','NbEntite')) + self.setTypeField(('int','int','str','int'),('idMaillage','idVersion','Entite')) def createSqlTable(self): query=QtSql.QSqlQuery() - #texteQuery ="create table Mailles(idMaillage int, idVersion int,Machine var(10), Node int, " - #texteQuery+="N0D int, Edge int, Quad_Edge int, Triangle int, Quad_Triangle int, BiQuad_Triangle int," - #texteQuery+="Quadrangle int, Quad_Quadrangle int, BiQuad_Quadrangle int, Polygon int," - #texteQuery+="Quad_Polygon int, Tetra int, Quad_Tetra int, Pyramid int, Quad_Pyramid int," - #texteQuery+="Hexa int, Quad_Hexa int, TriQuad_Hexa int, Penta int, Quad_Penta int," - #texteQuery+="Hexagonal_Prism int, Polyhedra int, Quad_Polyhedra int, " - texteQuery ="create table Mailles(idMaillage int, idVersion int, Machine var(40), Entite var(40), NbEntite int, " + texteQuery ="create table Mailles(idMaillage int, idVersion int, Entite var(40), NbEntite int, " texteQuery+="foreign key (idMaillage) references Maillages(id)," texteQuery+="foreign key (idVersion) references Versions(id)," - texteQuery+="foreign key (Machine) references Machines(nomMachine)," - texteQuery+="primary key (idMaillage,idVersion,Machine,Entite));" + texteQuery+="primary key (idMaillage,idVersion,Entite));" print "Creation de TableMailles : " , query.exec_(texteQuery) - def getVal(self,idMaillage, idVersion, Machine, Entite): + def getVal(self,idMaillage, idVersion, Entite): query=QtSql.QSqlQuery() texteQuery ='select NbEntite from Mailles where idMaillage='+str(idMaillage) texteQuery+=' and idVersion='+str(idVersion) - texteQuery+=" and Machine='" + str(Machine) +"'" texteQuery+=" and Entite='" + str(Entite) +"';" query.exec_(texteQuery) nb=0 diff --git a/src/Tools/Verima/Base/tableMailleurs.py b/src/Tools/Verima/Base/tableMailleurs.py index c4283be6a..d13d03325 100644 --- a/src/Tools/Verima/Base/tableMailleurs.py +++ b/src/Tools/Verima/Base/tableMailleurs.py @@ -24,14 +24,18 @@ class TableMailleurs (TableDeBase): if self.dejaRemplie() : print "Table Mailleurs deja initialisee" return - self.insereLigneAutoId(('Blsurf+Ghs3D',)) - self.insereLigneAutoId(('Tetra',)) + self.insereLigneAutoId(('BLSURF',)) + self.insereLigneAutoId(('NETGEN1D2D',)) + self.insereLigneAutoId(('GHS3D+BLSURF',)) + self.insereLigneAutoId(('GHS3D+NETGEN1D2D',)) + self.insereLigneAutoId(('NETGEN1D2D3D',)) - def insereLigneAutoId(self,valeurs): + def insereLigneAutoId(self,valeurs,debug=False): # difficulte a construire le texte avec une seule valeur texteQuery='insert into Mailleurs (nomMailleur) values ("'+ str(valeurs[0])+ '");' maQuery=QtSql.QSqlQuery() - print texteQuery, " " , maQuery.exec_(texteQuery) + if debug : print texteQuery, " " , maQuery.exec_(texteQuery) + else : maQuery.exec_(texteQuery) def getTous(self): l1=[] @@ -43,3 +47,13 @@ class TableMailleurs (TableDeBase): l1.append( maQuery.value(0).toInt()[0]) l2.append( maQuery.value(1).toString()) return l1,l2 + + def getName(self,mailleurId): + texteQuery="select nomMailleur from Mailleurs where id = " + str(mailleurId) + " ;" + maQuery=QtSql.QSqlQuery() + maQuery.exec_(texteQuery) + while(maQuery.next()): + mailleurName=maQuery.value(0).toString() + return mailleurName + + diff --git a/src/Tools/Verima/Base/tablePerfs.py b/src/Tools/Verima/Base/tablePerfs.py index 8707711d6..e92fb50ba 100644 --- a/src/Tools/Verima/Base/tablePerfs.py +++ b/src/Tools/Verima/Base/tablePerfs.py @@ -4,8 +4,8 @@ from tableDeBase import TableDeBase class TablePerfs (TableDeBase): def __init__(self): TableDeBase.__init__(self,"Perfs") - self.setField(('Maillage','Version','Machine','NbSecCpu','Memoire')) - self.setTypeField(('int','int','str','int','int'),('idMaillage','idVersion','Machine')) + self.setField(('Maillage','Version','NbSecCpu','Memoire')) + self.setTypeField(('int','int','int','int'),('idMaillage','idVersion','Machine')) def createSqlTable(self): query=QtSql.QSqlQuery() diff --git a/src/Tools/Verima/Base/tableRatios.py b/src/Tools/Verima/Base/tableRatios.py index 2a54286ff..843975a7e 100644 --- a/src/Tools/Verima/Base/tableRatios.py +++ b/src/Tools/Verima/Base/tableRatios.py @@ -4,13 +4,13 @@ from tableDeBase import TableDeBase class TableRatios (TableDeBase): def __init__(self): TableDeBase.__init__(self,"Ratios") - self.setField(('Maillage','Version','Machine','RatioMax','RatioMin','Quartile1','Mediane','Quartile3','Moyenne')) - self.setTypeField(('int','int','str','float','float','float','float','float','float'),('idMaillage','idVersion','Machine')) + self.setField(('Maillage','Version','RatioMax','RatioMin','Quartile1','Mediane','Quartile3','Moyenne')) + self.setTypeField(('int','int','float','float','float','float','float','float'),('idMaillage','idVersion','Machine')) def createSqlTable(self): query=QtSql.QSqlQuery() - texteQuery ="create table Ratios(idMaillage int, idVersion int, Machine varchar(10)," + texteQuery ="create table Ratios(idMaillage int, idVersion int, " texteQuery+="RatioMax float, RatioMin float, " texteQuery+="Q1 float," texteQuery+="Mediane float," @@ -18,21 +18,19 @@ class TableRatios (TableDeBase): texteQuery+="Moyenne float," texteQuery+="foreign key (idMaillage) references Maillages(id)," texteQuery+="foreign key (idVersion) references Versions(id)," - texteQuery+="foreign key (Machine) references Machines(nomMachine)," - texteQuery+="primary key (idMaillage,idVersion,Machine));" + texteQuery+="primary key (idMaillage,idVersion));" print "Creation de TableRatios : " , query.exec_(texteQuery) - def getVal(self,idMaillage, idVersion, Machine, Entite): + def getVal(self,idMaillage, idVersion, Entite): query=QtSql.QSqlQuery() texteQuery ='select '+ str(Entite) + ' from Ratios where idMaillage='+str(idMaillage) texteQuery+=' and idVersion='+str(idVersion) - texteQuery+=" and Machine='" + str(Machine) +"';" query.exec_(texteQuery) nb=0 val=0 # Valeur si l enregistrement n existe pas while (query.next()) : - val=query.value(0).toInt()[0] + val=query.value(0).toFloat()[0] nb=nb+1 if nb > 1 : print "Double valeur de Reference dans la table des mailles" return val diff --git a/src/Tools/Verima/Base/tableTailles.py b/src/Tools/Verima/Base/tableTailles.py index c2763394f..559c5f232 100644 --- a/src/Tools/Verima/Base/tableTailles.py +++ b/src/Tools/Verima/Base/tableTailles.py @@ -4,13 +4,13 @@ from tableDeBase import TableDeBase class TableTailles (TableDeBase): def __init__(self): TableDeBase.__init__(self,"Tailles") - self.setField(('Maillage','Version','Machine','TailleMax','TailleMin','Quartile1','Mediane','Quartile3','Moyenne')) - self.setTypeField(('int','int','str','float','float','float','float','float','float'),('idMaillage','idVersion','Machine')) + self.setField(('Maillage','Version','TailleMax','TailleMin','Quartile1','Mediane','Quartile3','Moyenne')) + self.setTypeField(('int','int','str','float','float','float','float','float','float'),('idMaillage','idVersion')) def createSqlTable(self): query=QtSql.QSqlQuery() - texteQuery ="create table Tailles(idMaillage int, idVersion int, Machine varchar(10)," + texteQuery ="create table Tailles(idMaillage int, idVersion int, " texteQuery+="TailleMax float, TailleMin float, " texteQuery+="Q1 float, " texteQuery+="Mediane float, " @@ -18,21 +18,19 @@ class TableTailles (TableDeBase): texteQuery+="Moyenne float, " texteQuery+="foreign key (idMaillage) references Maillages(id)," texteQuery+="foreign key (idVersion) references Versions(id)," - texteQuery+="foreign key (Machine) references Machines(nomMachine)," - texteQuery+="primary key (idMaillage,idVersion,Machine));" + texteQuery+="primary key (idMaillage,idVersion));" print "Creation de TableTailles : " , query.exec_(texteQuery) - def getVal(self,idMaillage, idVersion, Machine, Entite): + def getVal(self,idMaillage, idVersion, Entite): query=QtSql.QSqlQuery() texteQuery ='select '+ str(Entite) + ' from Tailles where idMaillage='+str(idMaillage) texteQuery+=' and idVersion='+str(idVersion) - texteQuery+=" and Machine='" + str(Machine) +"';" query.exec_(texteQuery) nb=0 val=0 # Valeur si l enregistrement n existe pas while (query.next()) : - val=query.value(0).toInt()[0] + val=query.value(0).toFloat()[0] nb=nb+1 if nb > 1 : print "Double valeur de Reference dans la table des mailles" return val diff --git a/src/Tools/Verima/Base/tableVersions.py b/src/Tools/Verima/Base/tableVersions.py index 02d23516e..01efb0b46 100644 --- a/src/Tools/Verima/Base/tableVersions.py +++ b/src/Tools/Verima/Base/tableVersions.py @@ -4,34 +4,24 @@ from tableDeBase import TableDeBase class TableVersions (TableDeBase): def __init__(self): TableDeBase.__init__(self,"Versions") - self.setField(("id","nomVersion","Reference")) - self.setTypeField(('int','str','str'),("id")) - self.cols=" (nomVersion, ref) " + self.setField(("id","nomVersion","commentaire")) + self.setTypeField(('int','str','str'),('id',)) + self.cols=" (nomVersion, commentaire) " def createSqlTable(self): query=QtSql.QSqlQuery() texteQuery ="create table Versions(id integer primary key autoincrement, nomVersion varchar(10)," - texteQuery+="ref varchar(3));" + texteQuery+="commentaire varchar(30));" print "Creation de TableVersions : " , query.exec_(texteQuery) - def dejaRemplie(self): - texteQuery="select * from Versions where nomVersion='Salome6.6';" - maQuery=QtSql.QSqlQuery() - maQuery.exec_(texteQuery) - nb=0 - while(maQuery.next()): nb=nb+1 - return nb def remplit(self): -#PN pour tester - if self.dejaRemplie(): - print "Table des Versions deja initialisee" - return - self.insereLigneAutoId(('Salome6.6','non')) - self.insereLigneAutoId(('Salome7.3','oui')) + self.insereLigneAutoId(('Salome7.2.0','')) + self.insereLigneAutoId(('Salome7.3.0','')) + self.insereLigneAutoId(('Salome7.4.0','')) - def creeVersion(self,version): - self.insereLigneAutoId((version,'non')) + def creeVersion(self,version,commentaire=""): + self.insereLigneAutoId((version,commentaire)) def chercheVersion(self,version): @@ -50,24 +40,5 @@ class TableVersions (TableDeBase): if nb != 1 : return 0, 0, "" return 1, id, nom - def remplaceVersion(self,version): - bOk,versionId,versionName = self.chercheVersion(version) - if bOk == 0 : return "La version choisie comme version de reference n est pas dans la base" - query=QtSql.QSqlQuery() - texteQuery ='update Versions set ref="non" where ref="oui";' - query.exec_(texteQuery) - texteQuery ='update Versions set ref="oui"where id='+str(versionId)+";" - query.exec_(texteQuery) - return "changement effectue" - def getVersionRef(self): - query=QtSql.QSqlQuery() - texteQuery ='select id from Versions where ref="oui";' - query.exec_(texteQuery) - while (query.next()) : - id=query.value(0).toInt()[0] - while (query.next()) : - print "Base corrompue : plusieurs versions de reference" - exit() - return id diff --git a/src/Tools/Verima/CMakeLists.txt b/src/Tools/Verima/CMakeLists.txt index a71fe2997..6626f9d60 100644 --- a/src/Tools/Verima/CMakeLists.txt +++ b/src/Tools/Verima/CMakeLists.txt @@ -23,7 +23,6 @@ ADD_SUBDIRECTORY(CreeDocuments) IF(SALOME_BUILD_GUI) ADD_SUBDIRECTORY(Gui) ENDIF(SALOME_BUILD_GUI) -ADD_SUBDIRECTORY(Scripts) ADD_SUBDIRECTORY(Stats) ADD_SUBDIRECTORY(Base) @@ -32,7 +31,6 @@ ADD_SUBDIRECTORY(Base) # scripts / static SET(plugin_SCRIPTS ajoutEnreg.py - changeVersion.py compareVersions.py createDatabase.py lance.py @@ -41,4 +39,4 @@ SET(plugin_SCRIPTS # --- rules --- -SALOME_INSTALL_SCRIPTS("${plugin_SCRIPTS}" ${SALOME_SMESH_INSTALL_PLUGINS}) +SALOME_INSTALL_SCRIPTS("${plugin_SCRIPTS}" ${SALOME_SMESH_INSTALL_PLUGINS}/Verima) diff --git a/src/Tools/Verima/CreeDocuments/CMakeLists.txt b/src/Tools/Verima/CreeDocuments/CMakeLists.txt index e9c294b25..601f48ded 100644 --- a/src/Tools/Verima/CreeDocuments/CMakeLists.txt +++ b/src/Tools/Verima/CreeDocuments/CMakeLists.txt @@ -23,10 +23,10 @@ ADD_SUBDIRECTORY(templatesHtml) # scripts / static SET(plugin_SCRIPTS - creeHtml.py + __init__.py jobHtml.py ) # --- rules --- -SALOME_INSTALL_SCRIPTS("${plugin_SCRIPTS}" ${SALOME_SMESH_INSTALL_PLUGINS}) +SALOME_INSTALL_SCRIPTS("${plugin_SCRIPTS}" ${SALOME_SMESH_INSTALL_PLUGINS}/CreeDocuments) diff --git a/src/Tools/Verima/CreeDocuments/creeHtml.py b/src/Tools/Verima/CreeDocuments/creeHtml.py deleted file mode 100755 index a74817c71..000000000 --- a/src/Tools/Verima/CreeDocuments/creeHtml.py +++ /dev/null @@ -1,265 +0,0 @@ -#!/usr/bin/env python -# -*- coding: iso-8859-1 -*- - -import string - -FichierEntete='templatesHtml/entete.html' -FichierMailleur='templatesHtml/mailleur.html' -FichierJob='templatesHtml/job.html' -FichierTableau='templatesHtml/tableau.html' -FichierLigne='templatesHtml/ligne.html' -FichierFinTableau='templatesHtml/tableauFin.html' - -def compte_all(texte, subString): - start = 0 - compte=0 - while True: - trouve = texte.find(subString, start) - if trouve == -1: return compte - compte+=1 - start = trouve + len(subString) - -def FormateTexte(texte,dico): - for clef in dico.keys(): - texteARemplacer="%"+str(clef)+"%" - remplacement=dico[clef] - if texte.find(texteARemplacer) < 0 : - print "impossible de remplacer ",texteARemplacer, "Pas d'occurence" - print remplacement - continue - if compte_all(texte,texteARemplacer) != 1 : - print "impossible de remplacer ",texteARemplacer, "trop d'occurences" - continue - remplacement=str(remplacement) - texte=texte.replace(texteARemplacer,remplacement) - return texte - -def FormateLigne(texte,nb): - texteARemplacer="2%" - remplacement=str(nb)+"%" - texte=texte.replace(texteARemplacer,remplacement) - return texte - -def CreeEntete(dico): - texteIni=open(FichierEntete).read() - texteRetour=FormateTexte(texteIni,dico) - return texteRetour - -def CreeMailleur(dico): - texteIni=open(FichierMailleur).read() - texteRetour=FormateTexte(texteIni,dico) - return texteRetour - -def CreeJob(dico): - texte=open(FichierJob).read() - texteRetour=FormateTexte(texte,dico) - return texteRetour - -def CreeMailleOuGroupe(dico,nb): - texteIni=open(FichierTableau).read() - - texteLigneIni=open(FichierLigne).read() - for i in range (2,nb+1) : - texteLigne=FormateLigne(texteLigneIni,i) - texteIni=texteIni+texteLigne - - texteRetour=FormateTexte(texteIni,dico) - - finTexte=open(FichierFinTableau).read() - texteFinal=texteRetour+finTexte - - return texteFinal - - -def EcritFichier(texte,filename): - fp=open(filename,'w') - fp.write(texte) - fp.close() - - -if __name__=='__main__': - dicoEntete={} - dicoEntete["VERSIONTEST"]="V7.2" - dicoEntete["VERSIONREF"]="V6.6" - dicoEntete["MACHINE"]="dsp111002" - monTexte=CreeEntete(dicoEntete) - - dicoMailleur={} - dicoMailleur["MAILLEUR"]="GHS3D" - texteMailleur=CreeMailleur(dicoMailleur) - monTexte+=texteMailleur - - - dicoJob={} - dicoJob["NOM"]="MASSIF" - dicoJob["NBCPU"]="10" - dicoJob["REFCPU"]="11" - dicoJob["DIFCPU"]="1" - dicoJob["DIFREL"]="10%" - dicoJob["WARNING"]="WARNING" - dicoJob["RMAX"]=6.1 - dicoJob["RMAXREF"]=5.95 - dicoJob["WRMAX"]="WARNING" - dicoJob["RMOY"]=3.8 - dicoJob["RMOYREF"]=3.88 - dicoJob["WRMOY"]="" - dicoJob["R1Q"]=2.84 - dicoJob["R1QREF"]=2.84 - dicoJob["RMED"]=3.6 - dicoJob["RMEDREF"]=3.5 - dicoJob["R2Q"]=4.91 - dicoJob["R2QREF"]=4.92 - dicoJob["TMAX"]=34.5 - dicoJob["TMAXREF"]=35.5 - dicoJob["WTMAX"]="" - dicoJob["TMOY"]=17.4 - dicoJob["TMOYREF"]=17.5 - dicoJob["WTMOY"]="" - dicoJob["T1Q"]=8.9 - dicoJob["T1QREF"]=8.9 - dicoJob["TMED"]=17.3 - dicoJob["TMEDREF"]=17.8 - dicoJob["T2Q"]=26.4 - dicoJob["T2QREF"]=26.5 - texteMailleur=CreeJob(dicoJob) - monTexte+=texteMailleur - - dico={} - dico["TITRE"]="Nombre de Mailles dans le maillage entier" - dico["MAIL1"]="Quad_Edge" - dico["REF1"]=421 - dico["NB1"]=422 - dico["DIF1"]=1 - dico["REL1"]=0.2 - dico["WARN1"]="" - dico["MAIL2"]="Quad_Triangle" - dico["REF2"]=1068 - dico["NB2"]=1078 - dico["DIF2"]=8 - dico["REL2"]=0.9 - dico["WARN2"]="" - dico["MAIL3"]="Quad_Pyramid" - dico["NB3"]=5520 - dico["REF3"]=5484 - dico["DIF3"]=36 - dico["REL3"]="0.6" - dico["WARN3"]="WARNING" - texteMaille=CreeMailleOuGroupe(dico,3) - monTexte+=texteMaille - - fichierEssai="letter.html" - EcritFichier(monTexte,fichierEssai) - exit() - - dico={} - dico["TITRE"]="Nombre de Mailles dans le groupe FOND_07" - dico["MAIL1"]="Quad_Triangle" - dico["REF1"]=12 - dico["NB1"]=12 - dico["DIF1"]=0 - dico["REL1"]=0 - dico["WARN1"]="" - texteMaille=CreeMailleOuGroupe(dico,1) - monTexte+=texteMaille - - dico={} - dico["TITRE"]="Nombre de Mailles dans le groupe PAROI_07" - dico["MAIL1"]="Quad_Triangle" - dico["REF1"]=132 - dico["NB1"]=132 - dico["DIF1"]=0 - dico["REL1"]=0 - dico["WARN1"]="" - texteMaille=CreeMailleOuGroupe(dico,1) - monTexte+=texteMaille - - dico={} - dico["TITRE"]="Nombre de Mailles dans le groupe ROCHE_07" - dico["MAIL1"]="Pyramid" - dico["REF1"]=2326 - dico["NB1"]=2330 - dico["DIF1"]=4 - dico["REL1"]=0 - dico["WARN1"]="" - texteMaille=CreeMailleOuGroupe(dico,1) - monTexte+=texteMaille - - dicoJob={} - - dicoJob={} - dicoJob["NOM"]="CUBE" - dicoJob["NBCPU"]="1" - dicoJob["REFCPU"]="21" - dicoJob["DIFCPU"]="1" - dicoJob["DIFREL"]="100%" - dicoJob["WARNING"]="WARNING" - dicoJob["RMAX"]=7 - dicoJob["RMAXREF"]=6 - dicoJob["WRMAX"]="WARNING" - dicoJob["RMOY"]=2.7 - dicoJob["RMOYREF"]=1.8 - dicoJob["WRMOY"]="WARNING" - dicoJob["R1Q"]=1.3 - dicoJob["R1QREF"]=1.4 - dicoJob["RMED"]=2.6 - dicoJob["RMEDREF"]=2.6 - dicoJob["R2Q"]=3.9 - dicoJob["R2QREF"]=3.8 - dicoJob["TMAX"]=4 - dicoJob["TMAXREF"]=3.5 - dicoJob["WTMAX"]="WARNING" - dicoJob["TMOY"]=1.8 - dicoJob["TMOYREF"]=1.5 - dicoJob["WTMOY"]="WARNING" - dicoJob["T1Q"]=0.7 - dicoJob["T1QREF"]=0.7 - dicoJob["TMED"]=1.9 - dicoJob["TMEDREF"]=2 - dicoJob["T2Q"]=3.1 - dicoJob["T2QREF"]=3.2 - texteMailleur=CreeJob(dicoJob) - monTexte+=texteMailleur - - dico={} - dico["TITRE"]="Nombre de Mailles dans le maillage entier" - dico["MAIL1"]="Edge" - dico["REF1"]=12 - dico["NB1"]=13 - dico["DIF1"]=1 - dico["REL1"]="8.3%" - dico["WARN1"]="WARNING" - dico["MAIL2"]="Triangle" - dico["REF2"]=24 - dico["NB2"]=24 - dico["DIF2"]=0 - dico["REL2"]="0%" - dico["WARN2"]="" - dico["MAIL3"]="Pyramid" - dico["NB3"]=4 - dico["REF3"]=5 - dico["DIF3"]=1 - dico["REL3"]="25%" - dico["WARN3"]="WARNING" - texteMaille=CreeMailleOuGroupe(dico,3) - monTexte+=texteMaille - - dico={} - dico["TITRE"]="Nombre de Mailles dans le groupe SURFACE" - dico["MAIL1"]="Edge" - dico["REF1"]=12 - dico["NB1"]=13 - dico["DIF1"]=1 - dico["REL1"]="8.3%" - dico["WARN1"]="WARNING" - dico["MAIL2"]="Triangle" - dico["REF2"]=24 - dico["NB2"]=24 - dico["DIF2"]=0 - dico["REL2"]="0%" - dico["WARN2"]="" - texteMaille=CreeMailleOuGroupe(dico,2) - monTexte+=texteMaille - - fichierEssai="/tmp/letter.html" - EcritFichier(monTexte,fichierEssai) - diff --git a/src/Tools/Verima/CreeDocuments/jobHtml.py b/src/Tools/Verima/CreeDocuments/jobHtml.py index 6a0d830ab..b307fc3d1 100755 --- a/src/Tools/Verima/CreeDocuments/jobHtml.py +++ b/src/Tools/Verima/CreeDocuments/jobHtml.py @@ -6,13 +6,14 @@ import os dir=os.path.dirname(os.path.abspath(__file__)) FichierEntete=os.path.join(dir,'templatesHtml/entete.html') -FichierMailleur=os.path.join(dir,'templatesHtml/mailleur.html') +FichierMaillageEntete=os.path.join(dir,'templatesHtml/maillageEntete.html') FichierJob=os.path.join(dir,'templatesHtml/job.html') -#FichierJob=os.path.join(dir,'templatesHtml/jobIncomplet.html') FichierTableau=os.path.join(dir,'templatesHtml/tableau.html') FichierLigne=os.path.join(dir,'templatesHtml/ligne.html') FichierFinTableau=os.path.join(dir,'templatesHtml/tableauFin.html') FichierSansGroupe=os.path.join(dir,'templatesHtml/sansGroupe.html') +FichierGroupeRatio=os.path.join(dir,'templatesHtml/groupeRatio.html') +FichierGroupeTaille=os.path.join(dir,'templatesHtml/groupeTaille.html') def compte_all(texte, subString): @@ -50,8 +51,8 @@ def CreeEntete(dico): texteRetour=FormateTexte(texteIni,dico) return texteRetour -def CreeMailleur(dico): - texteIni=open(FichierMailleur).read() +def CreeMaillage(dico): + texteIni=open(FichierMaillageEntete).read() texteRetour=FormateTexte(texteIni,dico) return texteRetour @@ -60,9 +61,19 @@ def CreeJob(dico): texteRetour=FormateTexte(texte,dico) return texteRetour +def CreeGroupeTaille(dico): + texte=open(FichierGroupeTaille).read() + texteRetour=FormateTexte(texte,dico) + return texteRetour + +def CreeGroupeRatio(dico): + texte=open(FichierGroupeRatio).read() + texteRetour=FormateTexte(texte,dico) + return texteRetour + + def CreeMailleOuGroupe(dico,nb): texteIni=open(FichierTableau).read() - texteLigneIni=open(FichierLigne).read() for i in range (2,nb+1) : texteLigne=FormateLigne(texteLigneIni,i) @@ -91,17 +102,17 @@ class Document: def creeDocument(self,monFichier): EcritFichier(self.monTexte,monFichier) - def initEntete(self,version, versionRef,machine): + def initEntete(self,version, machine): self.dicoEntete["VERSIONTEST"]=version - self.dicoEntete["VERSIONREF"]=versionRef self.dicoEntete["MACHINE"]=machine self.monTexte=CreeEntete(self.dicoEntete) - def initMailleur(self,mailleurName): - dicoMailleur={} - dicoMailleur["MAILLEUR"]=mailleurName - texteMailleur=CreeMailleur(dicoMailleur) - self.monTexte+=texteMailleur + def initMaillage(self,maillageName,mailleurName,versionRefName,dicoMaillage): + dicoMaillage["MAILLEUR"]=mailleurName + dicoMaillage["MAILLAGE"]=maillageName + dicoMaillage["VERSIONREF"]=versionRefName + texteMaillageEntete=CreeMaillage(dicoMaillage) + self.monTexte+=texteMaillageEntete def initJob(self,dicoJob): texteMailleur=CreeJob(dicoJob) @@ -115,5 +126,12 @@ class Document: texteNoGroupe=open(FichierSansGroupe).read() self.monTexte+=texteNoGroupe + def CreeGroupeTaille(self,dico): + texteGroupeTaille=CreeGroupeTaille(dico) + self.monTexte+=texteGroupeTaille + + def CreeGroupeRatios(self,dico): + texteGroupeRatio=CreeGroupeRatio(dico) + self.monTexte+=texteGroupeRatio # diff --git a/src/Tools/Verima/CreeDocuments/templatesHtml/CMakeLists.txt b/src/Tools/Verima/CreeDocuments/templatesHtml/CMakeLists.txt index 3a2437b99..c3c31a197 100644 --- a/src/Tools/Verima/CreeDocuments/templatesHtml/CMakeLists.txt +++ b/src/Tools/Verima/CreeDocuments/templatesHtml/CMakeLists.txt @@ -22,16 +22,16 @@ # scripts / static SET(plugin_HTML_FILES entete.html + groupeRatio.html + groupeTaille.html job.html - jobIncomplet.html ligne.html - mailleur.html + maillageEntete.html sansGroupe.html - tableauComplet.html tableauFin.html tableau.html ) # --- rules --- -SALOME_INSTALL_SCRIPTS("${plugin_HTML_FILES}" ${SALOME_SMESH_INSTALL_PLUGINS}) +SALOME_INSTALL_SCRIPTS("${plugin_HTML_FILES}" ${SALOME_SMESH_INSTALL_PLUGINS}/CreeDocuments/templatesHtml) diff --git a/src/Tools/Verima/CreeDocuments/templatesHtml/entete.html b/src/Tools/Verima/CreeDocuments/templatesHtml/entete.html index 0035d174e..4bea1512f 100644 --- a/src/Tools/Verima/CreeDocuments/templatesHtml/entete.html +++ b/src/Tools/Verima/CreeDocuments/templatesHtml/entete.html @@ -5,53 +5,35 @@
-Synthèse
+ Synthèse
de l'exécution des scripts de test des mailleurs
-
+
-
-
-
-
- Version
+
+ Version
de Salomé testée : %VERSIONTEST%
- Version
- de Référence : %VERSIONREF%
- Machine
+
+ Machine
d'exécution : %MACHINE%
-
-
-
-
-
+
-
-
-
-
-
-