X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=generator%2FOpenturnsXML.py;h=860508deb46026004d06f07e2c3c680ceb3dabd4;hb=3fd4828d38ccea805a15c45e0517bf15b4e8f828;hp=7972a4bf3d90426f883084cffdde1c1ec6bcbe05;hpb=7e72a676f0cd6fcb60eb9515ba411fdc6dfabc1a;p=tools%2Feficas.git diff --git a/generator/OpenturnsXML.py b/generator/OpenturnsXML.py index 7972a4bf..860508de 100644 --- a/generator/OpenturnsXML.py +++ b/generator/OpenturnsXML.py @@ -1,12 +1,28 @@ -#@ AJOUT OpenturnsSolver Macro -# -*- coding: iso-8859-1 -*- -# RESPONSABLE - +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# """ Ce module contient le generateur XML pour Openturns """ import sys print sys.path +from Extensions.i18n import tr import openturns # Dictionnaires de conversion des valeurs lues dans EFICAS @@ -49,7 +65,7 @@ WrapperDataTransferByName = { "pipe" : openturns.WrapperDataTransfer.PIPE, "arguments" : openturns.WrapperDataTransfer.ARGUMENTS, "socket" : openturns.WrapperDataTransfer.SOCKET, - "CORBA" : openturns.WrapperDataTransfer.CORBA, + "corba" : openturns.WrapperDataTransfer.CORBA, None : openturns.WrapperDataTransfer.FILES, } @@ -79,6 +95,7 @@ class XMLGenerateur : data.setHessianDescription( self.HessianDefinition() ) data.setFileList( self.FileList() ) data.setParameters( self.Parameters() ) + #data.setFrameworkData( self.FrameworkData() ) wrapper=openturns.WrapperFile() wrapper.setWrapperData( data ) @@ -86,12 +103,19 @@ class XMLGenerateur : return wrapper + class __variable_ordering: + def __init__ (self, dictVar) : + self.dictVar = dictVar + + def __call__(self, a, b): + return self.dictVar[a]['numOrdre'] - self.dictVar[b]['numOrdre'] + def VariableList (self) : ''' Ecrit la liste des variables ''' - varList = openturns.WrapperDataVariableList() - for var in self.DictVariables.keys() : + varList = openturns.WrapperDataVariableCollection() + for var in sorted( self.DictVariables.keys(), self.__variable_ordering( self.DictVariables ) ) : varList.add( self.Variable( var, self.DictVariables[var] ) ) return varList @@ -142,7 +166,7 @@ class XMLGenerateur : ''' Ecrit la liste des fichiers ''' - fileList = openturns.WrapperDataFileList() + fileList = openturns.WrapperDataFileCollection() for dictFile in self.GetMCVal('Files', []) : fileList.add( self.File( dictFile ) ) return fileList @@ -168,12 +192,26 @@ class XMLGenerateur : ''' parameters = openturns.WrapperParameter() parameters.mode_ = WrapperModeByName[ self.GetMCVal('WrapCouplingMode') ] + if (parameters.mode_ == openturns.WrapperMode.FORK ): + parameters.command_ = self.GetMCVal('Command') + userPrefix = self.GetMCVal('UserPrefix', None) + if userPrefix != None : parameters.userPrefix_ = userPrefix parameters.state_ = WrapperStateByName[ self.GetMCVal('State') ] parameters.in_ = WrapperDataTransferByName[ self.GetMCVal('InDataTransfer') ] parameters.out_ = WrapperDataTransferByName[ self.GetMCVal('OutDataTransfer') ] return parameters - + def FrameworkData (self) : + ''' + Ecrit les donnees liees a l utilisation d un framework englobant + ''' + framework = openturns.WrapperFrameworkData() +# framework.studycase_ = "12:23:34" +# framework.componentname_ = self.GetMCVal('SolverComponentName', 'UNDEFINED') + CN = self.GetMCVal('SolverComponentName', 'UNDEFINED') + print 'CN = %s', CN + framework.componentname_ = CN + return framework # --------------------------------------------------------------------------------- @@ -187,7 +225,7 @@ class XMLGenerateur : if ( dictTagsXML.has_key(tag) ) : return dictTagsXML[tag] else : - raise KeyError, "Tag '%s' is undefined. This is an internal bug. Report bug to developers" % tag + raise KeyError, tr("Tag %s non-defini. Ceci est un bogue interne. en informer les developpeurs.", tag) pass def GetMCVal (self, MC, default = None, mandatory = False) : @@ -199,7 +237,7 @@ class XMLGenerateur : return self.DictMCVal[MC] else : if ( mandatory ) : - raise KeyError, "Keyword '%s' is mandatory" % MC + raise KeyError, tr(" Le mot-cle %s est obligatoire.", MC) else : return default pass