From f2387e1e0e45bbd12116684b41fe12bcbd167c9d Mon Sep 17 00:00:00 2001 From: Jean-Philippe ARGAUD Date: Mon, 5 Sep 2016 10:37:43 +0200 Subject: [PATCH] Compatibility correction of conversion from previous versions --- doc/en/advanced.rst | 161 ++++++++++++----- doc/fr/advanced.rst | 166 +++++++++++++----- src/daEficas/Makefile.am | 13 +- ...V7_8_0.py => traduitADAOV7_4_0ToV8_1_0.py} | 2 +- ...V7_8_0.py => traduitADAOV7_5_0ToV8_1_0.py} | 2 +- ...V7_8_0.py => traduitADAOV7_5_1ToV8_1_0.py} | 2 +- ...V7_8_0.py => traduitADAOV7_6_0ToV8_1_0.py} | 2 +- ...V7_8_0.py => traduitADAOV7_7_0ToV8_1_0.py} | 2 +- src/daEficas/traduitADAOV7_8_0ToV8_1_0.py | 98 +++++++++++ ...ToV7_8_0.py => traduitADAOsansToV8_1_0.py} | 2 +- 10 files changed, 345 insertions(+), 105 deletions(-) rename src/daEficas/{traduitADAOV7_4_0ToV7_8_0.py => traduitADAOV7_4_0ToV8_1_0.py} (99%) rename src/daEficas/{traduitADAOV7_5_0ToV7_8_0.py => traduitADAOV7_5_0ToV8_1_0.py} (99%) rename src/daEficas/{traduitADAOV7_5_1ToV7_8_0.py => traduitADAOV7_5_1ToV8_1_0.py} (99%) rename src/daEficas/{traduitADAOV7_7_0ToV7_8_0.py => traduitADAOV7_6_0ToV8_1_0.py} (99%) rename src/daEficas/{traduitADAOV7_6_0ToV7_8_0.py => traduitADAOV7_7_0ToV8_1_0.py} (99%) create mode 100644 src/daEficas/traduitADAOV7_8_0ToV8_1_0.py rename src/daEficas/{traduitADAOsansToV7_8_0.py => traduitADAOsansToV8_1_0.py} (99%) 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_0ToV8_1_0.py similarity index 99% rename from src/daEficas/traduitADAOV7_4_0ToV7_8_0.py rename to src/daEficas/traduitADAOV7_4_0ToV8_1_0.py index c1099d7..6709ed7 100644 --- a/src/daEficas/traduitADAOV7_4_0ToV7_8_0.py +++ b/src/daEficas/traduitADAOV7_4_0ToV8_1_0.py @@ -32,7 +32,7 @@ from Traducteur.inseremocle import * from Traducteur.movemocle import * from Traducteur.renamemocle import * -version_out = "V7_8_0" +version_out = "V8_1_0" usage="""Usage: python %prog [options] diff --git a/src/daEficas/traduitADAOV7_5_0ToV7_8_0.py b/src/daEficas/traduitADAOV7_5_0ToV8_1_0.py similarity index 99% rename from src/daEficas/traduitADAOV7_5_0ToV7_8_0.py rename to src/daEficas/traduitADAOV7_5_0ToV8_1_0.py index c1099d7..6709ed7 100644 --- a/src/daEficas/traduitADAOV7_5_0ToV7_8_0.py +++ b/src/daEficas/traduitADAOV7_5_0ToV8_1_0.py @@ -32,7 +32,7 @@ from Traducteur.inseremocle import * from Traducteur.movemocle import * from Traducteur.renamemocle import * -version_out = "V7_8_0" +version_out = "V8_1_0" usage="""Usage: python %prog [options] diff --git a/src/daEficas/traduitADAOV7_5_1ToV7_8_0.py b/src/daEficas/traduitADAOV7_5_1ToV8_1_0.py similarity index 99% rename from src/daEficas/traduitADAOV7_5_1ToV7_8_0.py rename to src/daEficas/traduitADAOV7_5_1ToV8_1_0.py index c1099d7..6709ed7 100644 --- a/src/daEficas/traduitADAOV7_5_1ToV7_8_0.py +++ b/src/daEficas/traduitADAOV7_5_1ToV8_1_0.py @@ -32,7 +32,7 @@ from Traducteur.inseremocle import * from Traducteur.movemocle import * from Traducteur.renamemocle import * -version_out = "V7_8_0" +version_out = "V8_1_0" usage="""Usage: python %prog [options] diff --git a/src/daEficas/traduitADAOV7_7_0ToV7_8_0.py b/src/daEficas/traduitADAOV7_6_0ToV8_1_0.py similarity index 99% rename from src/daEficas/traduitADAOV7_7_0ToV7_8_0.py rename to src/daEficas/traduitADAOV7_6_0ToV8_1_0.py index bb1f43c..a252c68 100644 --- a/src/daEficas/traduitADAOV7_7_0ToV7_8_0.py +++ b/src/daEficas/traduitADAOV7_6_0ToV8_1_0.py @@ -32,7 +32,7 @@ from Traducteur.inseremocle import * from Traducteur.movemocle import * from Traducteur.renamemocle import * -version_out = "V7_8_0" +version_out = "V8_1_0" usage="""Usage: python %prog [options] diff --git a/src/daEficas/traduitADAOV7_6_0ToV7_8_0.py b/src/daEficas/traduitADAOV7_7_0ToV8_1_0.py similarity index 99% rename from src/daEficas/traduitADAOV7_6_0ToV7_8_0.py rename to src/daEficas/traduitADAOV7_7_0ToV8_1_0.py index bb1f43c..a252c68 100644 --- a/src/daEficas/traduitADAOV7_6_0ToV7_8_0.py +++ b/src/daEficas/traduitADAOV7_7_0ToV8_1_0.py @@ -32,7 +32,7 @@ from Traducteur.inseremocle import * from Traducteur.movemocle import * from Traducteur.renamemocle import * -version_out = "V7_8_0" +version_out = "V8_1_0" usage="""Usage: python %prog [options] 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/traduitADAOsansToV8_1_0.py similarity index 99% rename from src/daEficas/traduitADAOsansToV7_8_0.py rename to src/daEficas/traduitADAOsansToV8_1_0.py index c1099d7..6709ed7 100644 --- a/src/daEficas/traduitADAOsansToV7_8_0.py +++ b/src/daEficas/traduitADAOsansToV8_1_0.py @@ -32,7 +32,7 @@ from Traducteur.inseremocle import * from Traducteur.movemocle import * from Traducteur.renamemocle import * -version_out = "V7_8_0" +version_out = "V8_1_0" usage="""Usage: python %prog [options] -- 2.39.2