Salome HOME
IMP: Verima / New Plugin: Added a plugin for meshers quality testing (work done at...
[modules/smesh.git] / src / Tools / Verima / Stats / job.py
1 import os
2 import subprocess
3 import time
4 from ref import Ref
5 from PyQt4.QtGui import *
6 from PyQt4.QtCore import *
7
8
9 class Job:
10   def __init__(self,listeParamMaillage,salomePath,versionId,nomMachine,mesGroupesRef):    
11       self.id=listeParamMaillage[0]
12       self.script=str(listeParamMaillage[1])
13       self.fichierMedResult=str(listeParamMaillage[2])
14       self.fichierStatResult=str(listeParamMaillage[2]).replace('.med','.res')
15       self.salomePath=salomePath
16       self.versionId=versionId
17       self.nomMachine=nomMachine
18       self.mesGroupesRef=mesGroupesRef
19       self.CPU=3 # Quand on n appelle pas execute
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 getStatSurGroupes(self,groupe):
55       extension="_"+groupe+'.res'
56       fichier=self.fichierMedResult.replace('.med',extension)
57      
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       i=0
65       listeColonnes=[]
66       listeValues=[]
67       while i < len(liste) :
68          listeColonnes.append(liste[i])
69          listeValues.append(liste[i+1])
70          i=i+2
71       return listeColonnes,listeValues
72
73   def getStatSurTailles(self):
74       fichier=self.fichierMedResult.replace('.med','.taille')
75       from mean import getMean
76       return getMean(fichier)
77
78   def getStatSurRatios(self):
79       fichier=self.fichierMedResult.replace('.med','.ratio')
80       from mean import getMean
81       return getMean(fichier)
82
83   def getCPU(self):
84       return self.CPU
85