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