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_wrapper',
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?
66 self.texteSTD="""#!/usr/bin/env python
68 print "Invalid file. Check build process."
73 def gener(self,obj,format='brut',config=None):
74 #print "IDM: gener dans generator_openturns_wrapper.py"
76 self.text=PythonGenerator.gener(self,obj,format)
81 def generMCSIMP(self,obj) :
83 Convertit un objet MCSIMP en texte python
84 Remplit le dictionnaire des MCSIMP si nous ne sommes ni dans une loi, ni dans une variable
86 s=PythonGenerator.generMCSIMP(self,obj)
87 if not( type(obj.valeur) in (list, tuple)) and (obj.get_min_max()[1] != 1):
91 if self.traiteMCSIMP == 1 :
92 self.dictMCVal[obj.nom]=valeur
94 self.dictTempo[obj.nom]=valeur
97 def generETAPE(self,obj):
98 #print "generETAPE" , obj.nom
99 if obj.nom == "VARIABLE" :
102 s=PythonGenerator.generETAPE(self,obj)
103 if obj.nom == "VARIABLE" :
104 self.dictTempo["numOrdre"]=self.numOrdre
105 self.numOrdre = self.numOrdre +1
107 self.dictVariables["SansNom"]=self.dictTempo
109 self.dictVariables[obj.sd.nom]=self.dictTempo
114 def generMCFACT(self,obj):
115 # Il n est pas possible d utiliser obj.valeur qui n est pas
116 # a jour pour les nouvelles variables ou les modifications
117 if obj.nom in ( "Files", ) :
120 s=PythonGenerator.generMCFACT(self,obj)
121 self.listeFichiers.append(self.dictTempo)
126 print "IDM: genereXML dans generator_openturns_wrapper.py"
127 #print "appli.CONFIGURATION=",self.appli.CONFIGURATION.__dict__
128 if self.listeFichiers != [] :
129 self.dictMCVal["Files"]=self.listeFichiers
130 print "dictMCVal", self.dictMCVal, "dictVariables", self.dictVariables
131 MonBaseGenerateur=Generateur(self.appli,self.dictMCVal, [], {} ,self.dictVariables)
132 MonGenerateur=MonBaseGenerateur.getXMLGenerateur()
135 self.wrapperXML=MonGenerateur.CreeXML()
140 def writeDefault(self, filename):
141 fileXML = filename[:filename.rfind(".")] + '.xml'
142 self.wrapperXML.writeFile( str(fileXML) )