]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
*** empty log message ***
authorPascale Noyret <pascale.noyret@edf.fr>
Tue, 5 Feb 2008 13:09:31 +0000 (13:09 +0000)
committerPascale Noyret <pascale.noyret@edf.fr>
Tue, 5 Feb 2008 13:09:31 +0000 (13:09 +0000)
generator/generator_openturns_from_Open_Cata_IDM_V5.py [new file with mode: 0644]

diff --git a/generator/generator_openturns_from_Open_Cata_IDM_V5.py b/generator/generator_openturns_from_Open_Cata_IDM_V5.py
new file mode 100644 (file)
index 0000000..a4d5f48
--- /dev/null
@@ -0,0 +1,135 @@
+# -*- coding: utf-8 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+"""
+    Ce module contient le plugin generateur de fichier au format 
+    openturns pour EFICAS.
+
+"""
+import traceback
+import types,string,re
+
+from generator_python import PythonGenerator
+from OpenturnsAster import XMLGenerateur 
+from OpenturnsAster import STDGenerateur 
+
+def entryPoint():
+   """
+       Retourne les informations necessaires pour le chargeur de plugins
+
+       Ces informations sont retournees dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 'openturns',
+        # La factory pour creer une instance du plugin
+          'factory' : OpenturnsGenerator,
+          }
+
+
+class OpenturnsGenerator(PythonGenerator):
+   """
+       Ce generateur parcourt un objet de type JDC et produit
+       un texte au format eficas et 
+       un texte au format xml 
+
+   """
+   # Les extensions de fichier permis?
+   extensions=('.comm',)
+
+   def initDico(self):
+       self.dictMCVal={}
+       self.listeVariables=[]
+       self.listeFichiers=[]
+       self.dictMCLois={}
+       self.dictTempo={}
+       self.TraiteMCSIMP=1
+
+   def gener(self,obj,format='brut'):
+       print "IDM: gener dans generator_openturns.py"
+       self.initDico()
+       self.text=PythonGenerator.gener(self,obj,format)
+       self.genereXML()
+       self.genereSTD()
+       return self.text
+
+   def generMCSIMP(self,obj) :
+       """
+       Convertit un objet MCSIMP en texte python
+       Remplit le dictionnaire des MCSIMP si nous ne sommes pas ni dans une loi, ni dans une variable
+       """
+       s=PythonGenerator.generMCSIMP(self,obj)
+       if self.TraiteMCSIMP == 1 : 
+          self.dictMCVal[obj.nom]=obj.val
+       else :
+          self.dictTempo[obj.nom]=obj.valeur
+       return s
+
+   def generMCFACT(self,obj):
+       # Il n est pas possible d utiliser obj.valeur qui n est pas 
+       # a jour pour les nouvelles variables ou les modifications 
+       if obj.nom == "Variables" or "Files":
+          self.TraiteMCSIMP=0
+         self.dictTempo={}
+       s=PythonGenerator.generMCFACT(self,obj)
+       if obj.nom == "Variables" :
+         self.listeVariables.append(self.dictTempo)
+         self.dictTempo={}
+       else :
+          self.listeFichiers.append(self.dictTempo)
+       self.TraiteMCSIMP=1
+       return s
+
+   def generETAPE(self,obj):
+       if obj.nom == "MarginalDistribution" :
+          self.TraiteMCSIMP=0
+         self.dictTempo={}
+       s=PythonGenerator.generETAPE(self,obj)
+       if obj.nom == "MarginalDistribution" :
+          self.dictMCLois[obj.sd]=self.dictTempo
+         self.dictTempo={}
+       self.TraiteMCSIMP=1
+       return s
+
+   def genereXML(self):
+       print "IDM: genereXML dans generator_openturns.py"
+       self.dictMCLois["exchange_file"]=self.listeFichiers
+       MonGenerateur=XMLGenerateur(self.dictMCVal, self.listeVariables, self.dictMCLois)
+       #try :
+       if 1== 1 :
+          self.texteXML=MonGenerateur.CreeXML()
+       #except :
+       else :
+         self.texteXML="Il y a un pb a la Creation du XML"
+
+   def genereSTD(self):
+       MonGenerateur=STDGenerateur(self.dictMCVal, self.listeVariables, self.dictMCLois)
+       #try :
+       if 1== 1 :
+          self.texteSTD=MonGenerateur.CreeSTD()
+       #except :
+       else :
+         self.texteSTD="Il y a un pb a la Creation du STD"
+
+   def getOpenturnsXML(self):
+       return self.texteXML
+
+   def getOpenturnsSTD(self):
+       return self.texteSTD