2 # -*- coding: utf-8 -*-
3 #Author: Pierre Ratinaud
4 #Copyright (c) 2013 Pierre Ratinaud
11 from uuid import uuid4
12 from chemins import PathOut
13 from functions import exec_rcode, check_Rresult, DoConf, progressbar
14 from time import time, sleep
15 from openanalyse import OpenAnalyse
19 def __init__(self, ira, tableau, parametres = None, dlg = None) :
20 self.tableau = tableau
21 if self.tableau.csvtable is None :
26 self.parametres = parametres
29 if not 'pathout' in self.parametres :
30 self.parametres['pathout'] = PathOut(tableau.parametres['originalpath'], analyse_type = self.parametres['type'], dirout = tableau.parametres['pathout']).mkdirout()
32 self.pathout = PathOut(analyse_type = self.parametres['type'], dirout = self.parametres['pathout'])
33 print self.pathout.dirout
35 self.pathout = PathOut(filename = tableau.parametres['originalpath'], dirout = self.parametres['pathout'], analyse_type = self.parametres['type'])
37 #self.parametres['pathout'] = self.pathout.dirout
38 self.parametres['uuid'] = str(uuid4())
39 self.parametres['name'] = os.path.split(self.parametres['pathout'])[1]
40 self.parametres['encoding'] = self.ira.syscoding
41 self.parametres['matrix'] = self.tableau.parametres['uuid']
42 self.tableau.pathout.dirout = self.parametres['pathout']
43 self.doparametres(dlg = dlg)
44 if self.dlg is not None :
45 self.dlg = progressbar(self.ira, self.dlg)
46 if self.parametres is not None :
48 if not os.path.exists(self.parametres['pathout']) :
49 self.pathout.createdir(self.parametres['pathout'])
50 result_analyse = self.doanalyse()
52 result_analyse = False
53 if result_analyse is None :
54 if self.parametres.get('tohistory', True) :
55 self.time = time() - self.t1
56 minutes, seconds = divmod(self.time, 60)
57 hours, minutes = divmod(minutes, 60)
58 self.parametres['time'] = '%.0fh %.0fm %.0fs' % (hours, minutes, seconds)
59 self.parametres['ira'] = self.pathout['Analyse.ira']
60 DoConf().makeoptions([self.parametres['type']], [self.parametres], self.pathout['Analyse.ira'])
61 self.ira.history.addMatrixAnalyse(self.parametres)
62 if self.dlg is not None :
64 if self.parametres.get('tohistory', True) :
65 OpenAnalyse(self.parent, self.parametres['ira'])
66 self.ira.tree.AddMatAnalyse(self.parametres)
70 if self.dlg is not None :
76 def doparametres(self, dlg = None):
79 def doR(self, Rscript, wait = False, dlg = None, message = '') :
80 #log.info('R code...')
81 pid = exec_rcode(self.ira.RPath, Rscript, wait = wait)
82 while pid.poll() is None :
84 self.dlg.Pulse(message)
88 return check_Rresult(self.ira, pid)