1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2013 EDF R&D
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 Ce module contient le plugin generateur de fichier au format
22 openturns pour EFICAS.
26 import types,string,re
27 from Extensions.i18n import tr
30 from generator_python import PythonGenerator
31 from OpenturnsBase import Generateur
32 #from OpenturnsXML import XMLGenerateur
33 #from OpenturnsSTD import STDGenerateur
37 Retourne les informations necessaires pour le chargeur de plugins
39 Ces informations sont retournees dans un dictionnaire
43 'name' : 'openturns_study',
44 # La factory pour creer une instance du plugin
45 'factory' : OpenturnsGenerator,
49 class OpenturnsGenerator(PythonGenerator):
51 Ce generateur parcourt un objet de type JDC et produit
52 un texte au format eficas et
53 un texte au format xml
56 # Les extensions de fichier permis?
61 self.listeVariables=[]
66 self.texteSTD="""#!/usr/bin/env python
68 print "Invalid file. Check build process."
72 def gener(self,obj,format='brut',config=None):
73 print "IDM: gener dans generator_openturns_study.py"
75 self.text=PythonGenerator.gener(self,obj,format)
79 def generMCSIMP(self,obj) :
81 Convertit un objet MCSIMP en texte python
82 Remplit le dictionnaire des MCSIMP si nous ne sommes ni dans une loi, ni dans une variable
84 s=PythonGenerator.generMCSIMP(self,obj)
85 if self.TraiteMCSIMP == 1 :
86 self.dictMCVal[obj.nom]=obj.valeur
88 self.dictTempo[obj.nom]=obj.valeur
92 def generETAPE(self,obj):
93 print "IDM: generETAPE dans generator_openturns_study.py"
94 print "IDM: obj.nom=", obj.nom
95 if obj.nom in ( "DISTRIBUTION", ) :
98 s=PythonGenerator.generETAPE(self,obj)
99 if obj.nom in ( "DISTRIBUTION", ) :
100 self.dictMCLois[obj.sd]=self.dictTempo
105 def generPROC_ETAPE(self,obj):
106 print "IDM: generPROC_ETAPE dans generator_openturns_study.py"
107 print "IDM: obj.nom=", obj.nom
108 if obj.nom in ( "VARIABLE", ) :
111 s=PythonGenerator.generPROC_ETAPE(self,obj)
112 if obj.nom in ( "VARIABLE", ) :
113 self.listeVariables.append(self.dictTempo)
119 print "IDM: genereSTD dans generator_openturns_study.py"
120 print "IDM: self.listeVariables=", self.listeVariables
121 MonGenerateur=self.getGenerateur()
124 self.texteSTD=MonGenerateur.CreeSTD()
127 self.texteSTD=tr("Il y a un pb a la Creation du STD")
129 def writeDefault(self, fn):
130 fileSTD = fn[:fn.rfind(".")] + '.py'
131 with open(fileSTD, 'w') as f:
132 f.write(self.texteSTD)
134 def getGenerateur (self):
135 print "IDM: getGenerateur dans generator_openturns_study.py"
136 print "IDM: self.dictMCVal=", self.dictMCVal
137 print "IDM: self.listeVariables=", self.listeVariables
138 print "IDM: self.dictMCLois=", self.dictMCLois
139 MonBaseGenerateur=Generateur(self.appli,self.dictMCVal, self.listeVariables, self.dictMCLois)
140 MonGenerateur=MonBaseGenerateur.getSTDGenerateur()