From: Jean-Philippe ARGAUD Date: Mon, 5 Sep 2016 08:37:43 +0000 (+0200) Subject: Compatibility correction of conversion from previous versions X-Git-Tag: V8_1_0~4 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=f2387e1e0e45bbd12116684b41fe12bcbd167c9d;p=modules%2Fadao.git Compatibility correction of conversion from previous versions --- diff --git a/doc/en/advanced.rst b/doc/en/advanced.rst index 1f75261..704c6ce 100644 --- a/doc/en/advanced.rst +++ b/doc/en/advanced.rst @@ -182,6 +182,111 @@ load the types catalog to avoid weird difficulties:: This method allows for example to edit the YACS XML scheme in TUI, or to gather results for further use. +.. _section_advanced_R: + +Running an ADAO calculation in R environment using the TUI ADAO interface +------------------------------------------------------------------------- + +.. index:: single: R +.. index:: single: rPython + +To extend the analysis and treatment capacities, it is possible to use ADAO +calculations in **R** environment (see [R]_ for more details). It is available +in SALOME by launching the R interpreter in the shell "``salome shell``". +Moreover, the package "*rPython*" has to be available, it can be installed by +the user if required by the following R command:: + + install.packages("rPython") + +One will refer to the [GilBellosta15]_ documentation for more information on +this package. + +The ADAO calculations defined in text interface (API/TUI, see +:ref:`section_tui`) can be interpreted from the R environment, using some data +and information from R. The approach is illustrated in the example +:ref:`subsection_tui_example`, suggested in the API/TUI interface description. +In the R interpreter, one can run the following commands, directly coming from +the simple example:: + + # + # IMPORTANT: to be run in R interpreter + # ------------------------------------- + library(rPython) + python.exec(" + from numpy import array + import adaoBuilder + case = adaoBuilder.New() + case.set( 'AlgorithmParameters', Algorithm='3DVAR' ) + case.set( 'Background', Vector=[0, 1, 2] ) + case.set( 'BackgroundError', ScalarSparseMatrix=1.0 ) + case.set( 'Observation', Vector=array([0.5, 1.5, 2.5]) ) + case.set( 'ObservationError', DiagonalSparseMatrix='1 1 1' ) + case.set( 'ObservationOperator', Matrix='1 0 0;0 2 0;0 0 3' ) + case.set( 'Observer', Variable='Analysis', Template='ValuePrinter' ) + case.execute() + ") + +giving the result:: + + Analysis [ 0.25000264 0.79999797 0.94999939] + +In writing the ADAO calculations run from R, one must take close attention to +the good use of single and double quotes, that should not collide between the +two languages. + +The data can come from the R environment and should be stored in properly +assigned variables to be used later in Python for ADAO. One will refer to the +[GilBellosta15]_ documentation for the implementation work. We can transform the +above example to use data from R to feed the three variables of background, +observation and observation operator. We get in the end the optimal state also +in a R variable. The other lines are identical. The example thus becomes:: + + # + # IMPORTANT: to be run in R interpreter + # ------------------------------------- + # + # R variables + # ----------- + xb <- 0:2 + yo <- c(0.5, 1.5, 2.5) + h <- '1 0 0;0 2 0;0 0 3' + # + # Python code + # ----------- + library(rPython) + python.assign( "xb", xb ) + python.assign( "yo", yo ) + python.assign( "h", h ) + python.exec(" + from numpy import array + import adaoBuilder + case = adaoBuilder.New() + case.set( 'AlgorithmParameters', Algorithm='3DVAR' ) + case.set( 'Background', Vector=xb ) + case.set( 'BackgroundError', ScalarSparseMatrix=1.0 ) + case.set( 'Observation', Vector=array(yo) ) + case.set( 'ObservationError', DiagonalSparseMatrix='1 1 1' ) + case.set( 'ObservationOperator', Matrix=str(h) ) + case.set( 'Observer', Variable='Analysis', Template='ValuePrinter' ) + case.execute() + xa = list(case.get('Analysis')[-1]) + ") + # + # R variables + # ----------- + xa <- python.get("xa") + +One notices the explicit ``str`` and ``list`` type conversions to ensure that +the data are transmitted as known standard types from "*rPython*" package. +Moreover, it is the data that can be transferred between the two languages, not +functions or methods. It is therefore necessary to prepare generically in Python +the functions to execute required by ADAO, and to forward them correctly the +data available in R. + +The most comprehensive cases, proposed in :ref:`subsection_tui_advanced`, can be +executed in the same way, and they give the same result as in the standard +Python interface. + .. _section_advanced_observer: Getting information on special variables during the ADAO calculation in YACS @@ -316,37 +421,15 @@ is not guaranteed for all the commands or keywords. In general also, an ADAO case file for one version can not be read by a previous minor or major version of the ADAO module. -Switching from 7.6 to 7.7 -+++++++++++++++++++++++++ - -There is no known incompatibility for the ADAO case files. The upgrade procedure -is to read the old ADAO case file with the new SALOME/ADAO module, and save it -with a new name. - -Switching from 7.5 to 7.6 -+++++++++++++++++++++++++ - -There is no known incompatibility for the ADAO case files. The upgrade procedure -is to read the old ADAO case file with the new SALOME/ADAO module, and save it -with a new name. This procedure proceed automatically to the required -modifications of the storage tree of the ADAO case file. - -Switching from 7.4 to 7.5 -+++++++++++++++++++++++++ - -There is no known incompatibility for the ADAO case files. The upgrade procedure -is to read the old ADAO case file with the new SALOME/ADAO module, and save it -with a new name. - -Switching from 7.3 to 7.4 +Switching from 7.8 to 8.1 +++++++++++++++++++++++++ There is no known incompatibility for the ADAO case files. The upgrade procedure is to read the old ADAO case file with the new SALOME/ADAO module, and save it with a new name. -Switching from 7.2 to 7.3 -+++++++++++++++++++++++++ +Switching from 7.x to 7.y with x < y +++++++++++++++++++++++++++++++++++++ There is no known incompatibility for the ADAO case files. The upgrade procedure is to read the old ADAO case file with the new SALOME/ADAO module, and save it @@ -375,29 +458,15 @@ object:: The post-processing scripts has to be modified. -Switching from 6.5 to 6.6 -+++++++++++++++++++++++++ +Switching from 6.x to 6.y with x < y +++++++++++++++++++++++++++++++++++++ There is no known incompatibility for the ADAO case file. The upgrade procedure is to read the old ADAO case file with the new SALOME/ADAO module, and save it with a new name. -There is one incompatibility introduced for the naming of operators used to for -the observation operator. The new mandatory names are "*DirectOperator*", -"*TangentOperator*" and "*AdjointOperator*", as described in the last subsection -of the chapter :ref:`section_reference`. The operator scripts has to be -modified. - -Switching from 6.4 to 6.5 -+++++++++++++++++++++++++ - -There is no known incompatibility for the ADAO case file or the accompanying -scripts. The upgrade procedure is to read the old ADAO case file with the new -SALOME/ADAO module, and save it with a new name. - -Switching from 6.3 to 6.4 -+++++++++++++++++++++++++ - -There is no known incompatibility for the ADAO case file or the accompanying -scripts. The upgrade procedure is to read the old ADAO case file with the new -SALOME/ADAO module, and save it with a new name. +There is one incompatibility introduced for the operator script files, in the +naming of operators used to for the observation operator. The new mandatory +names are "*DirectOperator*", "*TangentOperator*" and "*AdjointOperator*", as +described in the last subsection of the chapter :ref:`section_reference`. The +operator script files has to be modified. diff --git a/doc/fr/advanced.rst b/doc/fr/advanced.rst index cc9bbed..50d58f5 100644 --- a/doc/fr/advanced.rst +++ b/doc/fr/advanced.rst @@ -191,6 +191,114 @@ de types pour Cette démarche permet par exemple d'éditer le schéma YACS XML en mode texte TUI, ou de rassembler les résultats pour un usage ultérieur. +.. _section_advanced_R: + +Exécuter un calcul ADAO en environnement R en utilisant l'interface TUI ADAO +---------------------------------------------------------------------------- + +.. index:: single: R +.. index:: single: rPython + +Pour étendre les possibilités d'analyse et de traitement, il est possible +d'utiliser les calculs ADAO dans l'environnement **R** (voir [R]_ pour plus de +détails). Ce dernier est disponible dans SALOME en lançant l'interpréteur R dans +le shell "``salome shell``". Il faut de plus disposer, en R, du package +"*rPython*", qui peut si nécessaire être installé par l'utilisateur à l'aide de +la commande R suivante:: + + install.packages("rPython") + +On se reportera à la documentation [GilBellosta15]_ pour de plus amples +renseignements sur ce package. + +Les calculs ADAO définis en interface textuelle (API/TUI, voir la +:ref:`section_tui`) peuvent alors être interprétés depuis l'environnement R, en +utilisant des données et des informations depuis R. La démarche est illustrée +sur :ref:`subsection_tui_example`, proposé dans la description de l'interface +API/TUI. Dans l'interpréteur R, on peut exécuter les commandes suivantes, +directement issues de l'exemple simple:: + + # + # IMPORTANT : à exécuter dans l'interpréteur R + # -------------------------------------------- + library(rPython) + python.exec(" + from numpy import array + import adaoBuilder + case = adaoBuilder.New() + case.set( 'AlgorithmParameters', Algorithm='3DVAR' ) + case.set( 'Background', Vector=[0, 1, 2] ) + case.set( 'BackgroundError', ScalarSparseMatrix=1.0 ) + case.set( 'Observation', Vector=array([0.5, 1.5, 2.5]) ) + case.set( 'ObservationError', DiagonalSparseMatrix='1 1 1' ) + case.set( 'ObservationOperator', Matrix='1 0 0;0 2 0;0 0 3' ) + case.set( 'Observer', Variable='Analysis', Template='ValuePrinter' ) + case.execute() + ") + +dont le résultat est:: + + Analysis [ 0.25000264 0.79999797 0.94999939] + +Dans la rédaction des calculs ADAO exécutés depuis R, il convient d'être très +attentif au bon usage des guillemets simples et doubles, qui ne doivent pas +collisionner entre les deux langages. + +Les données peuvent venir l'environnement R et doivent être rangées dans des +variables correctement assignées, pour être utilisées ensuite en Python pour +ADAO. On se reportera à la documentation [GilBellosta15]_ pour la mise en +oeuvre. On peut transformer l'exemple ci-dessus pour utiliser des données +provenant de R pour alimenter les trois variables d'ébauche, d'observation et +d'opérateur d'observation. On récupère à la fin l'état optimal dans une variable +R aussi. Les autres lignes sont identiques. L'exemple devient ainsi:: + + # + # IMPORTANT : à exécuter dans l'interpréteur R + # -------------------------------------------- + # + # Variables R + # ----------- + xb <- 0:2 + yo <- c(0.5, 1.5, 2.5) + h <- '1 0 0;0 2 0;0 0 3' + # + # Code Python + # ----------- + library(rPython) + python.assign( "xb", xb ) + python.assign( "yo", yo ) + python.assign( "h", h ) + python.exec(" + from numpy import array + import adaoBuilder + case = adaoBuilder.New() + case.set( 'AlgorithmParameters', Algorithm='3DVAR' ) + case.set( 'Background', Vector=xb ) + case.set( 'BackgroundError', ScalarSparseMatrix=1.0 ) + case.set( 'Observation', Vector=array(yo) ) + case.set( 'ObservationError', DiagonalSparseMatrix='1 1 1' ) + case.set( 'ObservationOperator', Matrix=str(h) ) + case.set( 'Observer', Variable='Analysis', Template='ValuePrinter' ) + case.execute() + xa = list(case.get('Analysis')[-1]) + ") + # + # Variables R + # ----------- + xa <- python.get("xa") + +On remarquera les conversions explicite de type ``str`` et ``list`` pour +s'assurer que les données sont bien transmises en type standards connus du +package "*rPython*". De plus, ce sont les données qui peuvent être transférées +entre les deux langages, et pas des fonctions ou méthodes. Il convient donc +d'élaborer en Python de manière générique les fonctions d'exécution requises par +ADAO, et de leur transmettre ensuite de manière correcte les données disponibles +en R. + +Les cas plus complets, proposés dans les :ref:`subsection_tui_advanced`, peuvent +être exécutés de la même manière, et ils donnent le même résultat que dans +l'interface API/TUI en Python standard. + .. _section_advanced_observer: Obtenir des informations sur des variables spéciales au cours d'un calcul ADAO en YACS @@ -336,38 +444,15 @@ commandes ou tous les mots-cl version ne peut pas être lu par une précédente version mineure ou majeure du module ADAO. -Passer de la version 7.6 à la 7.7 -+++++++++++++++++++++++++++++++++ - -Il n'y a pas d'incompatibilité connue pour les fichiers de cas ADAO. La -procédure de montée en version consiste à lire l'ancien fichier de cas ADAO -avec le nouveau module SALOME/ADAO, et à l'enregistrer avec un nouveau nom. - -Passer de la version 7.5 à la 7.6 -+++++++++++++++++++++++++++++++++ - -Il n'y a pas d'incompatibilité connue pour les fichiers de cas ADAO. La -procédure de montée en version consiste à lire l'ancien fichier de cas ADAO avec -le nouveau module SALOME/ADAO, et à l'enregistrer avec un nouveau nom. Cette -procédure effectue automatiquement les modifications requises dans -l'arborescence de stockage du fichier de cas ADAO. - -Passer de la version 7.4 à la 7.5 -+++++++++++++++++++++++++++++++++ - -Il n'y a pas d'incompatibilité connue pour les fichiers de cas ADAO. La -procédure de montée en version consiste à lire l'ancien fichier de cas ADAO -avec le nouveau module SALOME/ADAO, et à l'enregistrer avec un nouveau nom. - -Passer de la version 7.3 à la 7.4 +Passer de la version 7.8 à la 8.1 +++++++++++++++++++++++++++++++++ Il n'y a pas d'incompatibilité connue pour les fichiers de cas ADAO. La procédure de montée en version consiste à lire l'ancien fichier de cas ADAO avec le nouveau module SALOME/ADAO, et à l'enregistrer avec un nouveau nom. -Passer de la version 7.2 à la 7.3 -+++++++++++++++++++++++++++++++++ +Passer de la version 7.x à la 7.y avec x < y +++++++++++++++++++++++++++++++++++++++++++++ Il n'y a pas d'incompatibilité connue pour les fichiers de cas ADAO. La procédure de montée en version consiste à lire l'ancien fichier de cas ADAO @@ -396,29 +481,16 @@ objets de type liste ou tuple:: Les scripts de post-processing doivent être modifiés. -Passer de la version 6.5 à la 6.6 -+++++++++++++++++++++++++++++++++ - -Il n'y a pas d'incompatibilité connue pour les fichiers de cas ADAO. La -procédure de montée en version consiste à lire l'ancien fichier de cas ADAO avec -le nouveau module SALOME/ADAO, et à l'enregistrer avec un nouveau nom. - -Il y a une incompatibilité introduite dans la dénomination des opérateurs -élémentaires utilisés pour l'opérateur d'observation par script. Les nouveaux -noms requis sont "*DirectOperator*", "*TangentOperator*" et "*AdjointOperator*", -comme décrit dans la quatrième partie du chapitre :ref:`section_reference`. Les -scripts d'opérateur doivent être modifiés. - -Passer de la version 6.4 à la 6.5 -+++++++++++++++++++++++++++++++++ +Passer de la version 6.x à la 6.y avec x < y +++++++++++++++++++++++++++++++++++++++++++++ Il n'y a pas d'incompatibilité connue pour les fichiers de cas ADAO. La procédure de montée en version consiste à lire l'ancien fichier de cas ADAO avec le nouveau module SALOME/ADAO, et à l'enregistrer avec un nouveau nom. -Passer de la version 6.3 à la 6.4 -+++++++++++++++++++++++++++++++++ - -Il n'y a pas d'incompatibilité connue pour les fichiers de cas ADAO. La -procédure de montée en version consiste à lire l'ancien fichier de cas ADAO avec -le nouveau module SALOME/ADAO, et à l'enregistrer avec un nouveau nom. +Il y a une incompatibilité introduite dans les fichiers de script d'opérateur, +lors de la dénomination des opérateurs élémentaires utilisés pour l'opérateur +d'observation par script. Les nouveaux noms requis sont "*DirectOperator*", +"*TangentOperator*" et "*AdjointOperator*", comme décrit dans la quatrième +partie du chapitre :ref:`section_reference`. Les fichiers de script d'opérateur +doivent être modifiés. diff --git a/src/daEficas/Makefile.am b/src/daEficas/Makefile.am index f7a41c4..78e5944 100644 --- a/src/daEficas/Makefile.am +++ b/src/daEficas/Makefile.am @@ -32,11 +32,12 @@ mypkgpython_PYTHON = \ __init__.py \ prefs_ADAO.py \ prefs.py \ - traduitADAOsansToV7_8_0.py \ - traduitADAOV7_4_0ToV7_8_0.py \ - traduitADAOV7_5_0ToV7_8_0.py \ - traduitADAOV7_5_1ToV7_8_0.py \ - traduitADAOV7_6_0ToV7_8_0.py \ - traduitADAOV7_7_0ToV7_8_0.py + traduitADAOsansToV8_1_0.py \ + traduitADAOV7_4_0ToV8_1_0.py \ + traduitADAOV7_5_0ToV8_1_0.py \ + traduitADAOV7_5_1ToV8_1_0.py \ + traduitADAOV7_6_0ToV8_1_0.py \ + traduitADAOV7_7_0ToV8_1_0.py \ + traduitADAOV7_8_0ToV8_1_0.py EXTRA_DIST = prefs_ADAO.py.in diff --git a/src/daEficas/traduitADAOV7_4_0ToV7_8_0.py b/src/daEficas/traduitADAOV7_4_0ToV7_8_0.py deleted file mode 100644 index c1099d7..0000000 --- a/src/daEficas/traduitADAOV7_4_0ToV7_8_0.py +++ /dev/null @@ -1,118 +0,0 @@ -#-*-coding:iso-8859-1-*- -# -# Copyright (C) 2008-2016 EDF R&D -# -# This file is part of SALOME ADAO module -# -# 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 -# -# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D - -import optparse -import sys -import re - -import Traducteur.log as log -from Traducteur.load import getJDC, getJDCFromTexte -from Traducteur.mocles import parseKeywords -from Traducteur.dictErreurs import GenereErreurPourCommande -from Traducteur.inseremocle import * -from Traducteur.movemocle import * -from Traducteur.renamemocle import * - -version_out = "V7_8_0" - -usage="""Usage: python %prog [options] - -Typical use is: - python %prog --infile=xxxx.comm --outfile=yyyy.comm""" - -atraiter = ( - "ASSIMILATION_STUDY", - "CHECKING_STUDY", - ) - -dict_erreurs = { - "ASSIMILATION_STUDY":"Changements dans l'arbre et dans les noms", - "CHECKING_STUDY":"Changements dans l'arbre et dans les noms", - } - -sys.dict_erreurs=dict_erreurs - -def traduc(infile=None,outfile=None,texte=None,flog=None): - hdlr = log.initialise(flog) - if infile is not None: - jdc = getJDC(infile,atraiter) - elif texte is not None: - jdc = getJDCFromTexte(texte,atraiter) - else: - raise ValueError("Traduction du JDC impossible") - - #Parse les mocles des commandes - parseKeywords(jdc.root) - GenereErreurPourCommande(jdc,('Algorithm','AlgorithmParameters','FunctionDict')) - # ========================================================================== - - for command in atraiter: - # Insere le MC s'il n'existe pas - chercheOperInsereFacteurSiRegle(jdc, command, "AlgorithmParameters",((("AlgorithmParameters",),"nexistepasMCFParmi"),)) - # Deplace le MC - moveMotClefInOperToFact(jdc, command, "Algorithm", "AlgorithmParameters", plusieursFois=False) - # Renomme le MC - renameMotCleInFact(jdc, command, "AlgorithmParameters", "INPUT_TYPE", "Parameters") - # Renomme le MC - renameMotCle(jdc, command, "Study_name", "StudyName") - renameMotCle(jdc, command, "Study_repertory", "StudyRepertory") - - # ========================================================================== - fsrc = jdc.getSource() - fsrc = re.sub( "FunctionDict", "ScriptWithSwitch", fsrc ) - fsrc = re.sub( "FUNCTIONDICT_FILE", "SCRIPTWITHSWITCH_FILE", fsrc ) - fsrc = re.sub( "#VERSION_CATALOGUE:.*:FIN VERSION_CATALOGUE", "#VERSION_CATALOGUE:%s:FIN VERSION_CATALOGUE"%version_out, fsrc) - fsrc = re.sub( "#CHECKSUM.*FIN CHECKSUM", "", fsrc ) - # - log.ferme(hdlr) - if outfile is not None: - f=open(outfile,'w') - f.write( fsrc ) - f.close() - else: - return fsrc - -class MonTraducteur: - def __init__(self,texte): - self.__texte = str(texte) - def traduit(self): - return traduc(infile=None,outfile=None,texte=self.__texte,flog=None) - -def main(): - parser = optparse.OptionParser(usage=usage) - - parser.add_option('-i','--infile', dest="infile", - help="Le fichier COMM en entree, a traduire") - parser.add_option('-o','--outfile', dest="outfile", default='out.comm', - help="Le fichier COMM en sortie, traduit") - - options, args = parser.parse_args() - if len(options.infile) == 0: - print - parser.print_help() - print - sys.exit(1) - - traduc(options.infile,options.outfile) - -if __name__ == '__main__': - main() diff --git a/src/daEficas/traduitADAOV7_4_0ToV8_1_0.py b/src/daEficas/traduitADAOV7_4_0ToV8_1_0.py new file mode 100644 index 0000000..6709ed7 --- /dev/null +++ b/src/daEficas/traduitADAOV7_4_0ToV8_1_0.py @@ -0,0 +1,118 @@ +#-*-coding:iso-8859-1-*- +# +# Copyright (C) 2008-2016 EDF R&D +# +# This file is part of SALOME ADAO module +# +# 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 +# +# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D + +import optparse +import sys +import re + +import Traducteur.log as log +from Traducteur.load import getJDC, getJDCFromTexte +from Traducteur.mocles import parseKeywords +from Traducteur.dictErreurs import GenereErreurPourCommande +from Traducteur.inseremocle import * +from Traducteur.movemocle import * +from Traducteur.renamemocle import * + +version_out = "V8_1_0" + +usage="""Usage: python %prog [options] + +Typical use is: + python %prog --infile=xxxx.comm --outfile=yyyy.comm""" + +atraiter = ( + "ASSIMILATION_STUDY", + "CHECKING_STUDY", + ) + +dict_erreurs = { + "ASSIMILATION_STUDY":"Changements dans l'arbre et dans les noms", + "CHECKING_STUDY":"Changements dans l'arbre et dans les noms", + } + +sys.dict_erreurs=dict_erreurs + +def traduc(infile=None,outfile=None,texte=None,flog=None): + hdlr = log.initialise(flog) + if infile is not None: + jdc = getJDC(infile,atraiter) + elif texte is not None: + jdc = getJDCFromTexte(texte,atraiter) + else: + raise ValueError("Traduction du JDC impossible") + + #Parse les mocles des commandes + parseKeywords(jdc.root) + GenereErreurPourCommande(jdc,('Algorithm','AlgorithmParameters','FunctionDict')) + # ========================================================================== + + for command in atraiter: + # Insere le MC s'il n'existe pas + chercheOperInsereFacteurSiRegle(jdc, command, "AlgorithmParameters",((("AlgorithmParameters",),"nexistepasMCFParmi"),)) + # Deplace le MC + moveMotClefInOperToFact(jdc, command, "Algorithm", "AlgorithmParameters", plusieursFois=False) + # Renomme le MC + renameMotCleInFact(jdc, command, "AlgorithmParameters", "INPUT_TYPE", "Parameters") + # Renomme le MC + renameMotCle(jdc, command, "Study_name", "StudyName") + renameMotCle(jdc, command, "Study_repertory", "StudyRepertory") + + # ========================================================================== + fsrc = jdc.getSource() + fsrc = re.sub( "FunctionDict", "ScriptWithSwitch", fsrc ) + fsrc = re.sub( "FUNCTIONDICT_FILE", "SCRIPTWITHSWITCH_FILE", fsrc ) + fsrc = re.sub( "#VERSION_CATALOGUE:.*:FIN VERSION_CATALOGUE", "#VERSION_CATALOGUE:%s:FIN VERSION_CATALOGUE"%version_out, fsrc) + fsrc = re.sub( "#CHECKSUM.*FIN CHECKSUM", "", fsrc ) + # + log.ferme(hdlr) + if outfile is not None: + f=open(outfile,'w') + f.write( fsrc ) + f.close() + else: + return fsrc + +class MonTraducteur: + def __init__(self,texte): + self.__texte = str(texte) + def traduit(self): + return traduc(infile=None,outfile=None,texte=self.__texte,flog=None) + +def main(): + parser = optparse.OptionParser(usage=usage) + + parser.add_option('-i','--infile', dest="infile", + help="Le fichier COMM en entree, a traduire") + parser.add_option('-o','--outfile', dest="outfile", default='out.comm', + help="Le fichier COMM en sortie, traduit") + + options, args = parser.parse_args() + if len(options.infile) == 0: + print + parser.print_help() + print + sys.exit(1) + + traduc(options.infile,options.outfile) + +if __name__ == '__main__': + main() diff --git a/src/daEficas/traduitADAOV7_5_0ToV7_8_0.py b/src/daEficas/traduitADAOV7_5_0ToV7_8_0.py deleted file mode 100644 index c1099d7..0000000 --- a/src/daEficas/traduitADAOV7_5_0ToV7_8_0.py +++ /dev/null @@ -1,118 +0,0 @@ -#-*-coding:iso-8859-1-*- -# -# Copyright (C) 2008-2016 EDF R&D -# -# This file is part of SALOME ADAO module -# -# 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 -# -# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D - -import optparse -import sys -import re - -import Traducteur.log as log -from Traducteur.load import getJDC, getJDCFromTexte -from Traducteur.mocles import parseKeywords -from Traducteur.dictErreurs import GenereErreurPourCommande -from Traducteur.inseremocle import * -from Traducteur.movemocle import * -from Traducteur.renamemocle import * - -version_out = "V7_8_0" - -usage="""Usage: python %prog [options] - -Typical use is: - python %prog --infile=xxxx.comm --outfile=yyyy.comm""" - -atraiter = ( - "ASSIMILATION_STUDY", - "CHECKING_STUDY", - ) - -dict_erreurs = { - "ASSIMILATION_STUDY":"Changements dans l'arbre et dans les noms", - "CHECKING_STUDY":"Changements dans l'arbre et dans les noms", - } - -sys.dict_erreurs=dict_erreurs - -def traduc(infile=None,outfile=None,texte=None,flog=None): - hdlr = log.initialise(flog) - if infile is not None: - jdc = getJDC(infile,atraiter) - elif texte is not None: - jdc = getJDCFromTexte(texte,atraiter) - else: - raise ValueError("Traduction du JDC impossible") - - #Parse les mocles des commandes - parseKeywords(jdc.root) - GenereErreurPourCommande(jdc,('Algorithm','AlgorithmParameters','FunctionDict')) - # ========================================================================== - - for command in atraiter: - # Insere le MC s'il n'existe pas - chercheOperInsereFacteurSiRegle(jdc, command, "AlgorithmParameters",((("AlgorithmParameters",),"nexistepasMCFParmi"),)) - # Deplace le MC - moveMotClefInOperToFact(jdc, command, "Algorithm", "AlgorithmParameters", plusieursFois=False) - # Renomme le MC - renameMotCleInFact(jdc, command, "AlgorithmParameters", "INPUT_TYPE", "Parameters") - # Renomme le MC - renameMotCle(jdc, command, "Study_name", "StudyName") - renameMotCle(jdc, command, "Study_repertory", "StudyRepertory") - - # ========================================================================== - fsrc = jdc.getSource() - fsrc = re.sub( "FunctionDict", "ScriptWithSwitch", fsrc ) - fsrc = re.sub( "FUNCTIONDICT_FILE", "SCRIPTWITHSWITCH_FILE", fsrc ) - fsrc = re.sub( "#VERSION_CATALOGUE:.*:FIN VERSION_CATALOGUE", "#VERSION_CATALOGUE:%s:FIN VERSION_CATALOGUE"%version_out, fsrc) - fsrc = re.sub( "#CHECKSUM.*FIN CHECKSUM", "", fsrc ) - # - log.ferme(hdlr) - if outfile is not None: - f=open(outfile,'w') - f.write( fsrc ) - f.close() - else: - return fsrc - -class MonTraducteur: - def __init__(self,texte): - self.__texte = str(texte) - def traduit(self): - return traduc(infile=None,outfile=None,texte=self.__texte,flog=None) - -def main(): - parser = optparse.OptionParser(usage=usage) - - parser.add_option('-i','--infile', dest="infile", - help="Le fichier COMM en entree, a traduire") - parser.add_option('-o','--outfile', dest="outfile", default='out.comm', - help="Le fichier COMM en sortie, traduit") - - options, args = parser.parse_args() - if len(options.infile) == 0: - print - parser.print_help() - print - sys.exit(1) - - traduc(options.infile,options.outfile) - -if __name__ == '__main__': - main() diff --git a/src/daEficas/traduitADAOV7_5_0ToV8_1_0.py b/src/daEficas/traduitADAOV7_5_0ToV8_1_0.py new file mode 100644 index 0000000..6709ed7 --- /dev/null +++ b/src/daEficas/traduitADAOV7_5_0ToV8_1_0.py @@ -0,0 +1,118 @@ +#-*-coding:iso-8859-1-*- +# +# Copyright (C) 2008-2016 EDF R&D +# +# This file is part of SALOME ADAO module +# +# 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 +# +# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D + +import optparse +import sys +import re + +import Traducteur.log as log +from Traducteur.load import getJDC, getJDCFromTexte +from Traducteur.mocles import parseKeywords +from Traducteur.dictErreurs import GenereErreurPourCommande +from Traducteur.inseremocle import * +from Traducteur.movemocle import * +from Traducteur.renamemocle import * + +version_out = "V8_1_0" + +usage="""Usage: python %prog [options] + +Typical use is: + python %prog --infile=xxxx.comm --outfile=yyyy.comm""" + +atraiter = ( + "ASSIMILATION_STUDY", + "CHECKING_STUDY", + ) + +dict_erreurs = { + "ASSIMILATION_STUDY":"Changements dans l'arbre et dans les noms", + "CHECKING_STUDY":"Changements dans l'arbre et dans les noms", + } + +sys.dict_erreurs=dict_erreurs + +def traduc(infile=None,outfile=None,texte=None,flog=None): + hdlr = log.initialise(flog) + if infile is not None: + jdc = getJDC(infile,atraiter) + elif texte is not None: + jdc = getJDCFromTexte(texte,atraiter) + else: + raise ValueError("Traduction du JDC impossible") + + #Parse les mocles des commandes + parseKeywords(jdc.root) + GenereErreurPourCommande(jdc,('Algorithm','AlgorithmParameters','FunctionDict')) + # ========================================================================== + + for command in atraiter: + # Insere le MC s'il n'existe pas + chercheOperInsereFacteurSiRegle(jdc, command, "AlgorithmParameters",((("AlgorithmParameters",),"nexistepasMCFParmi"),)) + # Deplace le MC + moveMotClefInOperToFact(jdc, command, "Algorithm", "AlgorithmParameters", plusieursFois=False) + # Renomme le MC + renameMotCleInFact(jdc, command, "AlgorithmParameters", "INPUT_TYPE", "Parameters") + # Renomme le MC + renameMotCle(jdc, command, "Study_name", "StudyName") + renameMotCle(jdc, command, "Study_repertory", "StudyRepertory") + + # ========================================================================== + fsrc = jdc.getSource() + fsrc = re.sub( "FunctionDict", "ScriptWithSwitch", fsrc ) + fsrc = re.sub( "FUNCTIONDICT_FILE", "SCRIPTWITHSWITCH_FILE", fsrc ) + fsrc = re.sub( "#VERSION_CATALOGUE:.*:FIN VERSION_CATALOGUE", "#VERSION_CATALOGUE:%s:FIN VERSION_CATALOGUE"%version_out, fsrc) + fsrc = re.sub( "#CHECKSUM.*FIN CHECKSUM", "", fsrc ) + # + log.ferme(hdlr) + if outfile is not None: + f=open(outfile,'w') + f.write( fsrc ) + f.close() + else: + return fsrc + +class MonTraducteur: + def __init__(self,texte): + self.__texte = str(texte) + def traduit(self): + return traduc(infile=None,outfile=None,texte=self.__texte,flog=None) + +def main(): + parser = optparse.OptionParser(usage=usage) + + parser.add_option('-i','--infile', dest="infile", + help="Le fichier COMM en entree, a traduire") + parser.add_option('-o','--outfile', dest="outfile", default='out.comm', + help="Le fichier COMM en sortie, traduit") + + options, args = parser.parse_args() + if len(options.infile) == 0: + print + parser.print_help() + print + sys.exit(1) + + traduc(options.infile,options.outfile) + +if __name__ == '__main__': + main() diff --git a/src/daEficas/traduitADAOV7_5_1ToV7_8_0.py b/src/daEficas/traduitADAOV7_5_1ToV7_8_0.py deleted file mode 100644 index c1099d7..0000000 --- a/src/daEficas/traduitADAOV7_5_1ToV7_8_0.py +++ /dev/null @@ -1,118 +0,0 @@ -#-*-coding:iso-8859-1-*- -# -# Copyright (C) 2008-2016 EDF R&D -# -# This file is part of SALOME ADAO module -# -# 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 -# -# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D - -import optparse -import sys -import re - -import Traducteur.log as log -from Traducteur.load import getJDC, getJDCFromTexte -from Traducteur.mocles import parseKeywords -from Traducteur.dictErreurs import GenereErreurPourCommande -from Traducteur.inseremocle import * -from Traducteur.movemocle import * -from Traducteur.renamemocle import * - -version_out = "V7_8_0" - -usage="""Usage: python %prog [options] - -Typical use is: - python %prog --infile=xxxx.comm --outfile=yyyy.comm""" - -atraiter = ( - "ASSIMILATION_STUDY", - "CHECKING_STUDY", - ) - -dict_erreurs = { - "ASSIMILATION_STUDY":"Changements dans l'arbre et dans les noms", - "CHECKING_STUDY":"Changements dans l'arbre et dans les noms", - } - -sys.dict_erreurs=dict_erreurs - -def traduc(infile=None,outfile=None,texte=None,flog=None): - hdlr = log.initialise(flog) - if infile is not None: - jdc = getJDC(infile,atraiter) - elif texte is not None: - jdc = getJDCFromTexte(texte,atraiter) - else: - raise ValueError("Traduction du JDC impossible") - - #Parse les mocles des commandes - parseKeywords(jdc.root) - GenereErreurPourCommande(jdc,('Algorithm','AlgorithmParameters','FunctionDict')) - # ========================================================================== - - for command in atraiter: - # Insere le MC s'il n'existe pas - chercheOperInsereFacteurSiRegle(jdc, command, "AlgorithmParameters",((("AlgorithmParameters",),"nexistepasMCFParmi"),)) - # Deplace le MC - moveMotClefInOperToFact(jdc, command, "Algorithm", "AlgorithmParameters", plusieursFois=False) - # Renomme le MC - renameMotCleInFact(jdc, command, "AlgorithmParameters", "INPUT_TYPE", "Parameters") - # Renomme le MC - renameMotCle(jdc, command, "Study_name", "StudyName") - renameMotCle(jdc, command, "Study_repertory", "StudyRepertory") - - # ========================================================================== - fsrc = jdc.getSource() - fsrc = re.sub( "FunctionDict", "ScriptWithSwitch", fsrc ) - fsrc = re.sub( "FUNCTIONDICT_FILE", "SCRIPTWITHSWITCH_FILE", fsrc ) - fsrc = re.sub( "#VERSION_CATALOGUE:.*:FIN VERSION_CATALOGUE", "#VERSION_CATALOGUE:%s:FIN VERSION_CATALOGUE"%version_out, fsrc) - fsrc = re.sub( "#CHECKSUM.*FIN CHECKSUM", "", fsrc ) - # - log.ferme(hdlr) - if outfile is not None: - f=open(outfile,'w') - f.write( fsrc ) - f.close() - else: - return fsrc - -class MonTraducteur: - def __init__(self,texte): - self.__texte = str(texte) - def traduit(self): - return traduc(infile=None,outfile=None,texte=self.__texte,flog=None) - -def main(): - parser = optparse.OptionParser(usage=usage) - - parser.add_option('-i','--infile', dest="infile", - help="Le fichier COMM en entree, a traduire") - parser.add_option('-o','--outfile', dest="outfile", default='out.comm', - help="Le fichier COMM en sortie, traduit") - - options, args = parser.parse_args() - if len(options.infile) == 0: - print - parser.print_help() - print - sys.exit(1) - - traduc(options.infile,options.outfile) - -if __name__ == '__main__': - main() diff --git a/src/daEficas/traduitADAOV7_5_1ToV8_1_0.py b/src/daEficas/traduitADAOV7_5_1ToV8_1_0.py new file mode 100644 index 0000000..6709ed7 --- /dev/null +++ b/src/daEficas/traduitADAOV7_5_1ToV8_1_0.py @@ -0,0 +1,118 @@ +#-*-coding:iso-8859-1-*- +# +# Copyright (C) 2008-2016 EDF R&D +# +# This file is part of SALOME ADAO module +# +# 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 +# +# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D + +import optparse +import sys +import re + +import Traducteur.log as log +from Traducteur.load import getJDC, getJDCFromTexte +from Traducteur.mocles import parseKeywords +from Traducteur.dictErreurs import GenereErreurPourCommande +from Traducteur.inseremocle import * +from Traducteur.movemocle import * +from Traducteur.renamemocle import * + +version_out = "V8_1_0" + +usage="""Usage: python %prog [options] + +Typical use is: + python %prog --infile=xxxx.comm --outfile=yyyy.comm""" + +atraiter = ( + "ASSIMILATION_STUDY", + "CHECKING_STUDY", + ) + +dict_erreurs = { + "ASSIMILATION_STUDY":"Changements dans l'arbre et dans les noms", + "CHECKING_STUDY":"Changements dans l'arbre et dans les noms", + } + +sys.dict_erreurs=dict_erreurs + +def traduc(infile=None,outfile=None,texte=None,flog=None): + hdlr = log.initialise(flog) + if infile is not None: + jdc = getJDC(infile,atraiter) + elif texte is not None: + jdc = getJDCFromTexte(texte,atraiter) + else: + raise ValueError("Traduction du JDC impossible") + + #Parse les mocles des commandes + parseKeywords(jdc.root) + GenereErreurPourCommande(jdc,('Algorithm','AlgorithmParameters','FunctionDict')) + # ========================================================================== + + for command in atraiter: + # Insere le MC s'il n'existe pas + chercheOperInsereFacteurSiRegle(jdc, command, "AlgorithmParameters",((("AlgorithmParameters",),"nexistepasMCFParmi"),)) + # Deplace le MC + moveMotClefInOperToFact(jdc, command, "Algorithm", "AlgorithmParameters", plusieursFois=False) + # Renomme le MC + renameMotCleInFact(jdc, command, "AlgorithmParameters", "INPUT_TYPE", "Parameters") + # Renomme le MC + renameMotCle(jdc, command, "Study_name", "StudyName") + renameMotCle(jdc, command, "Study_repertory", "StudyRepertory") + + # ========================================================================== + fsrc = jdc.getSource() + fsrc = re.sub( "FunctionDict", "ScriptWithSwitch", fsrc ) + fsrc = re.sub( "FUNCTIONDICT_FILE", "SCRIPTWITHSWITCH_FILE", fsrc ) + fsrc = re.sub( "#VERSION_CATALOGUE:.*:FIN VERSION_CATALOGUE", "#VERSION_CATALOGUE:%s:FIN VERSION_CATALOGUE"%version_out, fsrc) + fsrc = re.sub( "#CHECKSUM.*FIN CHECKSUM", "", fsrc ) + # + log.ferme(hdlr) + if outfile is not None: + f=open(outfile,'w') + f.write( fsrc ) + f.close() + else: + return fsrc + +class MonTraducteur: + def __init__(self,texte): + self.__texte = str(texte) + def traduit(self): + return traduc(infile=None,outfile=None,texte=self.__texte,flog=None) + +def main(): + parser = optparse.OptionParser(usage=usage) + + parser.add_option('-i','--infile', dest="infile", + help="Le fichier COMM en entree, a traduire") + parser.add_option('-o','--outfile', dest="outfile", default='out.comm', + help="Le fichier COMM en sortie, traduit") + + options, args = parser.parse_args() + if len(options.infile) == 0: + print + parser.print_help() + print + sys.exit(1) + + traduc(options.infile,options.outfile) + +if __name__ == '__main__': + main() diff --git a/src/daEficas/traduitADAOV7_6_0ToV7_8_0.py b/src/daEficas/traduitADAOV7_6_0ToV7_8_0.py deleted file mode 100644 index bb1f43c..0000000 --- a/src/daEficas/traduitADAOV7_6_0ToV7_8_0.py +++ /dev/null @@ -1,98 +0,0 @@ -#-*-coding:iso-8859-1-*- -# -# Copyright (C) 2008-2016 EDF R&D -# -# This file is part of SALOME ADAO module -# -# 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 -# -# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D - -import optparse -import sys -import re - -import Traducteur.log as log -from Traducteur.load import getJDC, getJDCFromTexte -from Traducteur.mocles import parseKeywords -from Traducteur.dictErreurs import GenereErreurPourCommande -from Traducteur.inseremocle import * -from Traducteur.movemocle import * -from Traducteur.renamemocle import * - -version_out = "V7_8_0" - -usage="""Usage: python %prog [options] - -Typical use is: - python %prog --infile=xxxx.comm --outfile=yyyy.comm""" - -atraiter = ( - ) - -dict_erreurs = { - } - -sys.dict_erreurs=dict_erreurs - -def traduc(infile=None,outfile=None,texte=None,flog=None): - hdlr = log.initialise(flog) - if infile is not None: - jdc = getJDC(infile,atraiter) - elif texte is not None: - jdc = getJDCFromTexte(texte,atraiter) - else: - raise ValueError("Traduction du JDC impossible") - # ========================================================================== - - - # ========================================================================== - fsrc = jdc.getSource() - fsrc = re.sub( "#VERSION_CATALOGUE:.*:FIN VERSION_CATALOGUE", "#VERSION_CATALOGUE:%s:FIN VERSION_CATALOGUE"%version_out, fsrc) - fsrc = re.sub( "#CHECKSUM.*FIN CHECKSUM", "", fsrc ) - # - log.ferme(hdlr) - if outfile is not None: - f=open(outfile,'w') - f.write( fsrc ) - f.close() - else: - return fsrc - -class MonTraducteur: - def __init__(self,texte): - self.__texte = str(texte) - def traduit(self): - return traduc(infile=None,outfile=None,texte=self.__texte,flog=None) - -def main(): - parser = optparse.OptionParser(usage=usage) - - parser.add_option('-i','--infile', dest="infile", - help="Le fichier COMM en entree, a traduire") - parser.add_option('-o','--outfile', dest="outfile", default='out.comm', - help="Le fichier COMM en sortie, traduit") - - options, args = parser.parse_args() - if len(options.infile) == 0: - print - parser.print_help() - print - sys.exit(1) - - traduc(options.infile,options.outfile) - -if __name__ == '__main__': - main() diff --git a/src/daEficas/traduitADAOV7_6_0ToV8_1_0.py b/src/daEficas/traduitADAOV7_6_0ToV8_1_0.py new file mode 100644 index 0000000..a252c68 --- /dev/null +++ b/src/daEficas/traduitADAOV7_6_0ToV8_1_0.py @@ -0,0 +1,98 @@ +#-*-coding:iso-8859-1-*- +# +# Copyright (C) 2008-2016 EDF R&D +# +# This file is part of SALOME ADAO module +# +# 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 +# +# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D + +import optparse +import sys +import re + +import Traducteur.log as log +from Traducteur.load import getJDC, getJDCFromTexte +from Traducteur.mocles import parseKeywords +from Traducteur.dictErreurs import GenereErreurPourCommande +from Traducteur.inseremocle import * +from Traducteur.movemocle import * +from Traducteur.renamemocle import * + +version_out = "V8_1_0" + +usage="""Usage: python %prog [options] + +Typical use is: + python %prog --infile=xxxx.comm --outfile=yyyy.comm""" + +atraiter = ( + ) + +dict_erreurs = { + } + +sys.dict_erreurs=dict_erreurs + +def traduc(infile=None,outfile=None,texte=None,flog=None): + hdlr = log.initialise(flog) + if infile is not None: + jdc = getJDC(infile,atraiter) + elif texte is not None: + jdc = getJDCFromTexte(texte,atraiter) + else: + raise ValueError("Traduction du JDC impossible") + # ========================================================================== + + + # ========================================================================== + fsrc = jdc.getSource() + fsrc = re.sub( "#VERSION_CATALOGUE:.*:FIN VERSION_CATALOGUE", "#VERSION_CATALOGUE:%s:FIN VERSION_CATALOGUE"%version_out, fsrc) + fsrc = re.sub( "#CHECKSUM.*FIN CHECKSUM", "", fsrc ) + # + log.ferme(hdlr) + if outfile is not None: + f=open(outfile,'w') + f.write( fsrc ) + f.close() + else: + return fsrc + +class MonTraducteur: + def __init__(self,texte): + self.__texte = str(texte) + def traduit(self): + return traduc(infile=None,outfile=None,texte=self.__texte,flog=None) + +def main(): + parser = optparse.OptionParser(usage=usage) + + parser.add_option('-i','--infile', dest="infile", + help="Le fichier COMM en entree, a traduire") + parser.add_option('-o','--outfile', dest="outfile", default='out.comm', + help="Le fichier COMM en sortie, traduit") + + options, args = parser.parse_args() + if len(options.infile) == 0: + print + parser.print_help() + print + sys.exit(1) + + traduc(options.infile,options.outfile) + +if __name__ == '__main__': + main() diff --git a/src/daEficas/traduitADAOV7_7_0ToV7_8_0.py b/src/daEficas/traduitADAOV7_7_0ToV7_8_0.py deleted file mode 100644 index bb1f43c..0000000 --- a/src/daEficas/traduitADAOV7_7_0ToV7_8_0.py +++ /dev/null @@ -1,98 +0,0 @@ -#-*-coding:iso-8859-1-*- -# -# Copyright (C) 2008-2016 EDF R&D -# -# This file is part of SALOME ADAO module -# -# 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 -# -# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D - -import optparse -import sys -import re - -import Traducteur.log as log -from Traducteur.load import getJDC, getJDCFromTexte -from Traducteur.mocles import parseKeywords -from Traducteur.dictErreurs import GenereErreurPourCommande -from Traducteur.inseremocle import * -from Traducteur.movemocle import * -from Traducteur.renamemocle import * - -version_out = "V7_8_0" - -usage="""Usage: python %prog [options] - -Typical use is: - python %prog --infile=xxxx.comm --outfile=yyyy.comm""" - -atraiter = ( - ) - -dict_erreurs = { - } - -sys.dict_erreurs=dict_erreurs - -def traduc(infile=None,outfile=None,texte=None,flog=None): - hdlr = log.initialise(flog) - if infile is not None: - jdc = getJDC(infile,atraiter) - elif texte is not None: - jdc = getJDCFromTexte(texte,atraiter) - else: - raise ValueError("Traduction du JDC impossible") - # ========================================================================== - - - # ========================================================================== - fsrc = jdc.getSource() - fsrc = re.sub( "#VERSION_CATALOGUE:.*:FIN VERSION_CATALOGUE", "#VERSION_CATALOGUE:%s:FIN VERSION_CATALOGUE"%version_out, fsrc) - fsrc = re.sub( "#CHECKSUM.*FIN CHECKSUM", "", fsrc ) - # - log.ferme(hdlr) - if outfile is not None: - f=open(outfile,'w') - f.write( fsrc ) - f.close() - else: - return fsrc - -class MonTraducteur: - def __init__(self,texte): - self.__texte = str(texte) - def traduit(self): - return traduc(infile=None,outfile=None,texte=self.__texte,flog=None) - -def main(): - parser = optparse.OptionParser(usage=usage) - - parser.add_option('-i','--infile', dest="infile", - help="Le fichier COMM en entree, a traduire") - parser.add_option('-o','--outfile', dest="outfile", default='out.comm', - help="Le fichier COMM en sortie, traduit") - - options, args = parser.parse_args() - if len(options.infile) == 0: - print - parser.print_help() - print - sys.exit(1) - - traduc(options.infile,options.outfile) - -if __name__ == '__main__': - main() diff --git a/src/daEficas/traduitADAOV7_7_0ToV8_1_0.py b/src/daEficas/traduitADAOV7_7_0ToV8_1_0.py new file mode 100644 index 0000000..a252c68 --- /dev/null +++ b/src/daEficas/traduitADAOV7_7_0ToV8_1_0.py @@ -0,0 +1,98 @@ +#-*-coding:iso-8859-1-*- +# +# Copyright (C) 2008-2016 EDF R&D +# +# This file is part of SALOME ADAO module +# +# 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 +# +# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D + +import optparse +import sys +import re + +import Traducteur.log as log +from Traducteur.load import getJDC, getJDCFromTexte +from Traducteur.mocles import parseKeywords +from Traducteur.dictErreurs import GenereErreurPourCommande +from Traducteur.inseremocle import * +from Traducteur.movemocle import * +from Traducteur.renamemocle import * + +version_out = "V8_1_0" + +usage="""Usage: python %prog [options] + +Typical use is: + python %prog --infile=xxxx.comm --outfile=yyyy.comm""" + +atraiter = ( + ) + +dict_erreurs = { + } + +sys.dict_erreurs=dict_erreurs + +def traduc(infile=None,outfile=None,texte=None,flog=None): + hdlr = log.initialise(flog) + if infile is not None: + jdc = getJDC(infile,atraiter) + elif texte is not None: + jdc = getJDCFromTexte(texte,atraiter) + else: + raise ValueError("Traduction du JDC impossible") + # ========================================================================== + + + # ========================================================================== + fsrc = jdc.getSource() + fsrc = re.sub( "#VERSION_CATALOGUE:.*:FIN VERSION_CATALOGUE", "#VERSION_CATALOGUE:%s:FIN VERSION_CATALOGUE"%version_out, fsrc) + fsrc = re.sub( "#CHECKSUM.*FIN CHECKSUM", "", fsrc ) + # + log.ferme(hdlr) + if outfile is not None: + f=open(outfile,'w') + f.write( fsrc ) + f.close() + else: + return fsrc + +class MonTraducteur: + def __init__(self,texte): + self.__texte = str(texte) + def traduit(self): + return traduc(infile=None,outfile=None,texte=self.__texte,flog=None) + +def main(): + parser = optparse.OptionParser(usage=usage) + + parser.add_option('-i','--infile', dest="infile", + help="Le fichier COMM en entree, a traduire") + parser.add_option('-o','--outfile', dest="outfile", default='out.comm', + help="Le fichier COMM en sortie, traduit") + + options, args = parser.parse_args() + if len(options.infile) == 0: + print + parser.print_help() + print + sys.exit(1) + + traduc(options.infile,options.outfile) + +if __name__ == '__main__': + main() diff --git a/src/daEficas/traduitADAOV7_8_0ToV8_1_0.py b/src/daEficas/traduitADAOV7_8_0ToV8_1_0.py new file mode 100644 index 0000000..a252c68 --- /dev/null +++ b/src/daEficas/traduitADAOV7_8_0ToV8_1_0.py @@ -0,0 +1,98 @@ +#-*-coding:iso-8859-1-*- +# +# Copyright (C) 2008-2016 EDF R&D +# +# This file is part of SALOME ADAO module +# +# 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 +# +# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D + +import optparse +import sys +import re + +import Traducteur.log as log +from Traducteur.load import getJDC, getJDCFromTexte +from Traducteur.mocles import parseKeywords +from Traducteur.dictErreurs import GenereErreurPourCommande +from Traducteur.inseremocle import * +from Traducteur.movemocle import * +from Traducteur.renamemocle import * + +version_out = "V8_1_0" + +usage="""Usage: python %prog [options] + +Typical use is: + python %prog --infile=xxxx.comm --outfile=yyyy.comm""" + +atraiter = ( + ) + +dict_erreurs = { + } + +sys.dict_erreurs=dict_erreurs + +def traduc(infile=None,outfile=None,texte=None,flog=None): + hdlr = log.initialise(flog) + if infile is not None: + jdc = getJDC(infile,atraiter) + elif texte is not None: + jdc = getJDCFromTexte(texte,atraiter) + else: + raise ValueError("Traduction du JDC impossible") + # ========================================================================== + + + # ========================================================================== + fsrc = jdc.getSource() + fsrc = re.sub( "#VERSION_CATALOGUE:.*:FIN VERSION_CATALOGUE", "#VERSION_CATALOGUE:%s:FIN VERSION_CATALOGUE"%version_out, fsrc) + fsrc = re.sub( "#CHECKSUM.*FIN CHECKSUM", "", fsrc ) + # + log.ferme(hdlr) + if outfile is not None: + f=open(outfile,'w') + f.write( fsrc ) + f.close() + else: + return fsrc + +class MonTraducteur: + def __init__(self,texte): + self.__texte = str(texte) + def traduit(self): + return traduc(infile=None,outfile=None,texte=self.__texte,flog=None) + +def main(): + parser = optparse.OptionParser(usage=usage) + + parser.add_option('-i','--infile', dest="infile", + help="Le fichier COMM en entree, a traduire") + parser.add_option('-o','--outfile', dest="outfile", default='out.comm', + help="Le fichier COMM en sortie, traduit") + + options, args = parser.parse_args() + if len(options.infile) == 0: + print + parser.print_help() + print + sys.exit(1) + + traduc(options.infile,options.outfile) + +if __name__ == '__main__': + main() diff --git a/src/daEficas/traduitADAOsansToV7_8_0.py b/src/daEficas/traduitADAOsansToV7_8_0.py deleted file mode 100644 index c1099d7..0000000 --- a/src/daEficas/traduitADAOsansToV7_8_0.py +++ /dev/null @@ -1,118 +0,0 @@ -#-*-coding:iso-8859-1-*- -# -# Copyright (C) 2008-2016 EDF R&D -# -# This file is part of SALOME ADAO module -# -# 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 -# -# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D - -import optparse -import sys -import re - -import Traducteur.log as log -from Traducteur.load import getJDC, getJDCFromTexte -from Traducteur.mocles import parseKeywords -from Traducteur.dictErreurs import GenereErreurPourCommande -from Traducteur.inseremocle import * -from Traducteur.movemocle import * -from Traducteur.renamemocle import * - -version_out = "V7_8_0" - -usage="""Usage: python %prog [options] - -Typical use is: - python %prog --infile=xxxx.comm --outfile=yyyy.comm""" - -atraiter = ( - "ASSIMILATION_STUDY", - "CHECKING_STUDY", - ) - -dict_erreurs = { - "ASSIMILATION_STUDY":"Changements dans l'arbre et dans les noms", - "CHECKING_STUDY":"Changements dans l'arbre et dans les noms", - } - -sys.dict_erreurs=dict_erreurs - -def traduc(infile=None,outfile=None,texte=None,flog=None): - hdlr = log.initialise(flog) - if infile is not None: - jdc = getJDC(infile,atraiter) - elif texte is not None: - jdc = getJDCFromTexte(texte,atraiter) - else: - raise ValueError("Traduction du JDC impossible") - - #Parse les mocles des commandes - parseKeywords(jdc.root) - GenereErreurPourCommande(jdc,('Algorithm','AlgorithmParameters','FunctionDict')) - # ========================================================================== - - for command in atraiter: - # Insere le MC s'il n'existe pas - chercheOperInsereFacteurSiRegle(jdc, command, "AlgorithmParameters",((("AlgorithmParameters",),"nexistepasMCFParmi"),)) - # Deplace le MC - moveMotClefInOperToFact(jdc, command, "Algorithm", "AlgorithmParameters", plusieursFois=False) - # Renomme le MC - renameMotCleInFact(jdc, command, "AlgorithmParameters", "INPUT_TYPE", "Parameters") - # Renomme le MC - renameMotCle(jdc, command, "Study_name", "StudyName") - renameMotCle(jdc, command, "Study_repertory", "StudyRepertory") - - # ========================================================================== - fsrc = jdc.getSource() - fsrc = re.sub( "FunctionDict", "ScriptWithSwitch", fsrc ) - fsrc = re.sub( "FUNCTIONDICT_FILE", "SCRIPTWITHSWITCH_FILE", fsrc ) - fsrc = re.sub( "#VERSION_CATALOGUE:.*:FIN VERSION_CATALOGUE", "#VERSION_CATALOGUE:%s:FIN VERSION_CATALOGUE"%version_out, fsrc) - fsrc = re.sub( "#CHECKSUM.*FIN CHECKSUM", "", fsrc ) - # - log.ferme(hdlr) - if outfile is not None: - f=open(outfile,'w') - f.write( fsrc ) - f.close() - else: - return fsrc - -class MonTraducteur: - def __init__(self,texte): - self.__texte = str(texte) - def traduit(self): - return traduc(infile=None,outfile=None,texte=self.__texte,flog=None) - -def main(): - parser = optparse.OptionParser(usage=usage) - - parser.add_option('-i','--infile', dest="infile", - help="Le fichier COMM en entree, a traduire") - parser.add_option('-o','--outfile', dest="outfile", default='out.comm', - help="Le fichier COMM en sortie, traduit") - - options, args = parser.parse_args() - if len(options.infile) == 0: - print - parser.print_help() - print - sys.exit(1) - - traduc(options.infile,options.outfile) - -if __name__ == '__main__': - main() diff --git a/src/daEficas/traduitADAOsansToV8_1_0.py b/src/daEficas/traduitADAOsansToV8_1_0.py new file mode 100644 index 0000000..6709ed7 --- /dev/null +++ b/src/daEficas/traduitADAOsansToV8_1_0.py @@ -0,0 +1,118 @@ +#-*-coding:iso-8859-1-*- +# +# Copyright (C) 2008-2016 EDF R&D +# +# This file is part of SALOME ADAO module +# +# 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 +# +# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D + +import optparse +import sys +import re + +import Traducteur.log as log +from Traducteur.load import getJDC, getJDCFromTexte +from Traducteur.mocles import parseKeywords +from Traducteur.dictErreurs import GenereErreurPourCommande +from Traducteur.inseremocle import * +from Traducteur.movemocle import * +from Traducteur.renamemocle import * + +version_out = "V8_1_0" + +usage="""Usage: python %prog [options] + +Typical use is: + python %prog --infile=xxxx.comm --outfile=yyyy.comm""" + +atraiter = ( + "ASSIMILATION_STUDY", + "CHECKING_STUDY", + ) + +dict_erreurs = { + "ASSIMILATION_STUDY":"Changements dans l'arbre et dans les noms", + "CHECKING_STUDY":"Changements dans l'arbre et dans les noms", + } + +sys.dict_erreurs=dict_erreurs + +def traduc(infile=None,outfile=None,texte=None,flog=None): + hdlr = log.initialise(flog) + if infile is not None: + jdc = getJDC(infile,atraiter) + elif texte is not None: + jdc = getJDCFromTexte(texte,atraiter) + else: + raise ValueError("Traduction du JDC impossible") + + #Parse les mocles des commandes + parseKeywords(jdc.root) + GenereErreurPourCommande(jdc,('Algorithm','AlgorithmParameters','FunctionDict')) + # ========================================================================== + + for command in atraiter: + # Insere le MC s'il n'existe pas + chercheOperInsereFacteurSiRegle(jdc, command, "AlgorithmParameters",((("AlgorithmParameters",),"nexistepasMCFParmi"),)) + # Deplace le MC + moveMotClefInOperToFact(jdc, command, "Algorithm", "AlgorithmParameters", plusieursFois=False) + # Renomme le MC + renameMotCleInFact(jdc, command, "AlgorithmParameters", "INPUT_TYPE", "Parameters") + # Renomme le MC + renameMotCle(jdc, command, "Study_name", "StudyName") + renameMotCle(jdc, command, "Study_repertory", "StudyRepertory") + + # ========================================================================== + fsrc = jdc.getSource() + fsrc = re.sub( "FunctionDict", "ScriptWithSwitch", fsrc ) + fsrc = re.sub( "FUNCTIONDICT_FILE", "SCRIPTWITHSWITCH_FILE", fsrc ) + fsrc = re.sub( "#VERSION_CATALOGUE:.*:FIN VERSION_CATALOGUE", "#VERSION_CATALOGUE:%s:FIN VERSION_CATALOGUE"%version_out, fsrc) + fsrc = re.sub( "#CHECKSUM.*FIN CHECKSUM", "", fsrc ) + # + log.ferme(hdlr) + if outfile is not None: + f=open(outfile,'w') + f.write( fsrc ) + f.close() + else: + return fsrc + +class MonTraducteur: + def __init__(self,texte): + self.__texte = str(texte) + def traduit(self): + return traduc(infile=None,outfile=None,texte=self.__texte,flog=None) + +def main(): + parser = optparse.OptionParser(usage=usage) + + parser.add_option('-i','--infile', dest="infile", + help="Le fichier COMM en entree, a traduire") + parser.add_option('-o','--outfile', dest="outfile", default='out.comm', + help="Le fichier COMM en sortie, traduit") + + options, args = parser.parse_args() + if len(options.infile) == 0: + print + parser.print_help() + print + sys.exit(1) + + traduc(options.infile,options.outfile) + +if __name__ == '__main__': + main()