self.indent1 = ' '
self.nomsDesVariablesInput2 = []
- print (jdc.code)
- if jdc.nature != 'JDC' :
+ #print (jdc.code)
+ if jdc.nature != 'JDC' or not jdc.isValid():
self.commentaire= 'il faut un JDC Valide'
return 0
self.jdc=jdc
return self.text
def creeNomsFichiers(self,fichier):
+ print ('creeNomsFichiers', fichier)
+ self.cheminFichierComm=os.path.dirname(fichier)
if fichier.endswith('.comm'):
self.fichierSansSuffixe=os.path.basename(fichier[:-5])
if self.fichierSansSuffixe.endswith('_UQ'):
def writeUQ(self,fichier):
# il manque le checksum
- if not self.writeFile(self.fichierUQComm) : return (0, 'impossible de sauvegarder le .comm')
+ fichierUQComm = os.path.join(self.cheminFichierComm,self.fichierUQComm)
+ fichierUQBalise = os.path.join(self.cheminFichierComm,self.fichierUQBalise)
+ fichierUQExe = os.path.join(self.cheminFichierComm,self.fichierUQExe)
+ if not self.writeFile(fichierUQComm) : return (0, 'impossible de sauvegarder le .comm')
try :
- with open(self.fichierUQBalise, "w") as fp:
+ with open(fichierUQBalise, "w") as fp:
fp.write(self.textUQ)
except : return (0,'impossible de sauvegarder le _UQ.py')
- #try :
- if 1 :
- with open(self.fichierUQExe, "w") as fp:
+ try :
+ #if 1 :
+ with open(fichierUQExe, "w") as fp:
fp.write(self.txtScriptPersalys)
- #except : return (0,'impossible de sauvegarder le _UQ.py')
+ except :
+ if self.txtScriptPersalys != '' : return (0,'impossible de sauvegarder le _UQ.py')
return (1, None)
def generPROC_ETAPE(self,obj):
# a refaire si on decide que les incertains sont sous des fact multiples
# ce qui ne me parait pas possible mais ?
if obj.etape.nature == 'OPERATEUR' :
- return '@'+obj.etape.sd.nom +'__' + obj.nom+'@'
+ return '@ '+obj.etape.sd.nom +'__' + obj.nom+' @'
else :
- return '@'+obj.nom+'@'
+ return '@ '+obj.nom+' @'
def analyseIncertitude(self) :
sectionPropagation = etapeIncertitude.getChildOrChildInBloc('Propagation')[0]
self.Methode = sectionPropagation.getChildOrChildInBloc('Methode').valeur
- self.Result = sectionPropagation.getChildOrChildInBloc('Result')[0]
+ if not sectionPropagation.getChildOrChildInBloc('Result') : self.Result=None
+ else : self.Result = sectionPropagation.getChildOrChildInBloc('Result')[0]
if (self.Methode == 'MonteCarlo'):
self.critereArret = sectionPropagation.getChildOrChildInBloc('CritereArret')[0]
# self.SimulationsNumber = self.critereArret.getChildOrChildInBloc('SimulationsNumber')[0]
sectionExecution = etapeIncertitude.getChildOrChildInBloc('Execution')[0]
- self.ExecutionMode = sectionExecution.getChildOrChildInBloc('ExecutionMode').valeur
- self.NbOfProcs = sectionExecution.getChildOrChildInBloc('NbOfProcs').valeur
self.NbDeBranches = sectionExecution.getChildOrChildInBloc('NbDeBranches').valeur
- self.JobName = sectionExecution.getChildOrChildInBloc('JobName').valeur
- self.ResourceName = sectionExecution.getChildOrChildInBloc('ResourceName').valeur
- self.Login = sectionExecution.getChildOrChildInBloc('Login').valeur
- self.WorkDirectory = sectionExecution.getChildOrChildInBloc('WorkDirectory').valeur
- self.ResultDirectory = sectionExecution.getChildOrChildInBloc('ResultDirectory').valeur
- MultiJobStudy=sectionExecution.getChildOrChildInBloc('MultiJobStudy')
- if (MultiJobStudy != None):
- self.MultiJobStudy = MultiJobStudy.valeur
-
- self.creeScriptPersalys()
+ if sectionExecution.getChildOrChildInBloc('ExecutionMode') != None :
+ self.ExecutionMode = sectionExecution.getChildOrChildInBloc('ExecutionMode').valeur
+ self.NbOfProcs = sectionExecution.getChildOrChildInBloc('NbOfProcs').valeur
+ self.JobName = sectionExecution.getChildOrChildInBloc('JobName').valeur
+ self.ResourceName = sectionExecution.getChildOrChildInBloc('ResourceName').valeur
+ self.Login = sectionExecution.getChildOrChildInBloc('Login').valeur
+ self.WorkDirectory = sectionExecution.getChildOrChildInBloc('WorkDirectory').valeur
+ self.ResultDirectory = sectionExecution.getChildOrChildInBloc('ResultDirectory').valeur
+ MultiJobStudy=sectionExecution.getChildOrChildInBloc('MultiJobStudy')
+ if (MultiJobStudy != None):
+ self.MultiJobStudy = MultiJobStudy.valeur
+ self.creeScriptPersalys()
+ #else :
+ # TODO : creer ici le script URANIE
return (1, '')
# listeDesVariables, nomDesVariables, dicoDesVariables)
return(0, "Impossible de gérer la méthode :",self.Methode)
result=""
- for mc in self.Result.mcListe:
+ if self.Result :
+ for mc in self.Result.mcListe:
# print('mc : ',mc)
# print('mc.nature : ',mc.nature)
# print('mc.valeur : ',mc.valeur)
- if mc.nom == 'EmpiricalQuantile' and mc.valeur == 'yes' :
- empiricalQuantile_Order = self.Result.getChildOrChildInBloc("EmpiricalQuantile_Order")
- result+= self.indent1+optionalResult[mc.nom].format(
- **{empiricalQuantile_Order.nom : empiricalQuantile_Order.valeur}
- ) + '\n'
- result+= self.indent1+optionalPrintResult["EmpiricalQuantile_Order"] + '\n'
- result+= self.indent1+optionalPrintResult[mc.nom] + '\n'
- elif mc.nature == 'MCSIMP' and mc.valeur == 'yes' :
- result+= self.indent1+optionalResult[mc.nom] + '\n'
- result+= self.indent1+optionalPrintResult[mc.nom] + '\n'
+ if mc.nom == 'EmpiricalQuantile' and mc.valeur == 'yes' :
+ empiricalQuantile_Order = self.Result.getChildOrChildInBloc("EmpiricalQuantile_Order")
+ result+= self.indent1+optionalResult[mc.nom].format(
+ **{empiricalQuantile_Order.nom : empiricalQuantile_Order.valeur}
+ ) + '\n'
+ result+= self.indent1+optionalPrintResult["EmpiricalQuantile_Order"] + '\n'
+ result+= self.indent1+optionalPrintResult[mc.nom] + '\n'
+ elif mc.nature == 'MCSIMP' and mc.valeur == 'yes' :
+ result+= self.indent1+optionalResult[mc.nom] + '\n'
+ result+= self.indent1+optionalPrintResult[mc.nom] + '\n'
# print('result:',result)
inFiles =[]
inFiles.append(os.path.join(generatorDir,'incertainty_tools.py'))
pyFile = self.fichierUQExe
- inFiles.append(os.path.join(os.getcwd(),pyFile))
+ inFiles.append(os.path.join(self.cheminFichierComm,pyFile))
pyFile = self.fichierUQBalise
- inFiles.append(os.path.join(os.getcwd(),pyFile))
+ inFiles.append(os.path.join(self.cheminFichierComm,pyFile))
scriptFile = "ib_test.sh"
- inFiles.append(os.path.join(os.getcwd(),scriptFile))
+ inFiles.append(os.path.join(self.cheminFichierComm,scriptFile))
postFile = "post_csv.py"
inFiles.append(os.path.join(os.getcwd(),postFile))
txtYacsJobParameters=yacsJobParameters.format(