Salome HOME
update of plugin Verima
[modules/smesh.git] / src / Tools / Verima / Stats / job.py
1 import os
2 import subprocess
3 import time
4 from PyQt4.QtGui import *
5 from PyQt4.QtCore import *
6
7
8 class Job:
9   def __init__(self,listeParamMaillage,salomePath,versionId,mesGroupesRef):    
10       self.id=listeParamMaillage[0]
11       self.script=str(listeParamMaillage[1])
12       self.fichierMedResult=str(listeParamMaillage[2])
13       self.fichierStatResult=str(listeParamMaillage[2]).replace('.med','.res')
14       self.fichierGroupe=self.fichierMedResult.replace('.med','_groupesRef.res')
15       self.salomePath=salomePath
16       self.versionId=versionId
17       self.mesGroupesRef=mesGroupesRef
18       self.CPU=3 # Quand on n appelle pas execute
19       self.fichiersADetruire=[self.fichierMedResult,self.fichierStatResult,self.fichierGroupe]
20
21       
22   def execute(self):
23       home=os.environ['HOME']
24       commande=os.path.abspath(os.path.join(home,self.salomePath,"runAppli"))
25       script= os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',self.script)) 
26
27       debut=time.time()
28       #a=os.system(commande+" -t "+script+" > /tmp/Exec 2>&1")
29       a=os.system(commande+" -t "+script)
30       fin=time.time()
31       self.CPU=fin-debut
32       print "  Temps d execution : ",  self.CPU
33
34       #stdout, stderr = p.communicate() 
35
36      
37   def getStatSurMailles(self):
38       try:
39          text=open(self.fichierStatResult).read()
40       except:
41          print "Impossible d'ouvrir le fichier: ", str(self.fichierStatResult)
42          exit(1)
43       liste=text.split()
44       i=0
45       listeColonnes=[]
46       listeValues=[]
47       while i < len(liste) :
48          listeColonnes.append(liste[i])
49          listeValues.append(liste[i+1])
50          i=i+2
51       return listeColonnes,listeValues
52
53
54   def getStatSurRatiosGroupes(self,groupe):
55       extension="_"+groupe+'_Ratio.res'
56       fichier=self.fichierMedResult.replace('.med',extension)
57       self.fichiersADetruire.append(fichier)
58       try:
59          text=open(fichier).read()
60       except:
61          print "Impossible d'ouvrir le fichier: ", str(fichier)
62          exit(1)
63       liste=text.split(",")
64       return liste
65
66   def getStatSurTaillesGroupes(self,groupe):
67       extension="_"+groupe+'_Taille.res'
68       fichier=self.fichierMedResult.replace('.med',extension)
69       self.fichiersADetruire.append(fichier)
70       try:
71          text=open(fichier).read()
72       except:
73          print "Impossible d'ouvrir le fichier: ", str(fichier)
74          exit(1)
75       liste=text.split(",")
76       return liste
77
78
79   def getStatSurGroupes(self,groupe):
80       extension="_"+groupe+'.res'
81       fichier=self.fichierMedResult.replace('.med',extension)
82       self.fichiersADetruire.append(fichier)
83       try:
84          text=open(fichier).read()
85       except:
86          print "Impossible d'ouvrir le fichier: ", str(fichier)
87          exit(1)
88       liste=text.split()
89       i=0
90       listeColonnes=[]
91       listeValues=[]
92       while i < len(liste) :
93          listeColonnes.append(liste[i])
94          listeValues.append(liste[i+1])
95          i=i+2
96       return listeColonnes,listeValues
97
98   def getStatSurTailles(self):
99       fichier=self.fichierMedResult.replace('.med','.taille')
100       self.fichiersADetruire.append(fichier)
101       try:
102          text=open(fichier).read()
103       except:
104          print "Impossible d'ouvrir le fichier: ", str(fichier)
105          exit(1)
106       liste=text.split(",")
107 #      print "taille",liste
108       return liste
109
110   def getStatSurRatios(self):
111       fichier=self.fichierMedResult.replace('.med','.ratio')
112       self.fichiersADetruire.append(fichier)
113       try:
114          text=open(fichier).read()
115       except:
116          print "Impossible d'ouvrir le fichier: ", str(fichier)
117          exit(1)
118       liste=text.split(",")
119       return liste
120
121   def getCPU(self):
122       return self.CPU
123
124
125   def menage(self):
126       for fichier in self.fichiersADetruire:
127         try :
128           os.remove(fichier)
129         except :
130           pass
131