Salome HOME
Merge branch 'nouvelEficas' of http://git.forge-pleiade.der.edf.fr/git/eficas into...
[tools/eficas.git] / Extensions / parametre_eval.py
index b45546d90f8db2455eff47e23d96bf5e2399ce5a..ece9fed04e7abd0cb2a90caf2dba3ae2b6e77c2d 100644 (file)
@@ -1,22 +1,22 @@
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2013   EDF R&D
 #
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# 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.
 #
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# 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 la classe PARAMETRE_EVAL qui sert à définir
 des objets paramètres qui sont compréhensibles et donc affichables
@@ -29,9 +29,9 @@ import string,types,re
 import traceback
 
 # import modules Eficas
-import Accas
 import interpreteur_formule
 from Noyau.N_CR import CR
+from Extensions.i18n import tr
 import parametre
 
 pattern_eval       = re.compile(r'^(EVAL)([ \t\r\f\v]*)\(([\w\W]*)')
@@ -39,8 +39,7 @@ pattern_eval       = re.compile(r'^(EVAL)([ \t\r\f\v]*)\(([\w\W]*)')
 class PARAMETRE_EVAL(parametre.PARAMETRE) :
   """
   Cette classe permet de créer des objets de type PARAMETRE_EVAL
-  cad des affectations directes évaluées dans le jeu de commandes
-              (ex: a=EVAL('''10.*SQRT(25)'''))
+  cad des affectations directes évaluées dans le jeu de commandes (ex: a=EVAL('''10.*SQRT(25)'''))
   qui sont interprétées par le parseur de fichiers Python.
   Les objets ainsi créés constituent des paramètres évalués pour le jdc
   """
@@ -49,6 +48,8 @@ class PARAMETRE_EVAL(parametre.PARAMETRE) :
 
   def __init__(self,nom,valeur=None):
     # parent ne peut être qu'un objet de type JDC
+    import Accas
+    self.Accas_EVAL=Accas.EVAL
     self.valeur = self.interprete_valeur(valeur)
     self.val    = valeur
     self.nom = nom
@@ -56,6 +57,7 @@ class PARAMETRE_EVAL(parametre.PARAMETRE) :
     self.definition=self
     self.niveau = self.parent.niveau
     self.actif=1
+    self.state='undetermined'
     # Ceci est-il indispensable ???
     #self.appel = N_utils.callee_where(niveau=2)
     self.register()
@@ -64,7 +66,7 @@ class PARAMETRE_EVAL(parametre.PARAMETRE) :
     """
         Donne un echo de self sous la forme nom = valeur
     """
-    return self.nom+' = '+ repr(self.valeur) + '\n'
+    return self.nom+' = '+ repr(self.valeur) 
 
   def __str__(self):
     """
@@ -82,7 +84,7 @@ class PARAMETRE_EVAL(parametre.PARAMETRE) :
     d={}
     val = string.strip(val)
     if val[-1] == ';' : val = val[0:-1]
-    d['EVAL'] = Accas.EVAL
+    d['EVAL'] = self.Accas_EVAL
     try:
         valeur = eval(val,{},d)
         return valeur
@@ -144,8 +146,8 @@ class PARAMETRE_EVAL(parametre.PARAMETRE) :
     else:
         # pas d'expression EVAL --> self non valide
         if cr == 'oui' : 
-           self.cr.fatal("Le paramètre EVAL %s ne peut valoir None" % self.nom)
-        return 0,"Le paramètre EVAL ne peut valoir None"
+           self.cr.fatal(tr("Le parametre EVAL %s ne peut valoir None") , self.nom)
+        return 0,tr("Le parametre EVAL ne peut valoir None")
 
   def verif_nom(self,nom=None,cr='non'):
     """
@@ -158,22 +160,21 @@ class PARAMETRE_EVAL(parametre.PARAMETRE) :
     if not nom :
         nom = self.nom
     if nom == "" :
-        if cr == 'oui' : self.cr.fatal("Pas de nom donné au paramètre EVAL")
+        if cr == 'oui' : self.cr.fatal(tr("Pas de nom donne au parametre EVAL"))
         return 0,"Pas de nom donné au paramètre EVAL"
     if len(nom) > 8 :
-        if cr == 'oui' : self.cr.fatal("Un nom de paramètre ne peut dépasser 8 caractères")
-        return 0,"Un nom de paramètre ne peut dépasser 8 caractères"
+        if cr == 'oui' : self.cr.fatal(tr("Un nom de parametre ne peut depasser 8 caracteres"))
+        return 0,"Un nom de parametre ne peut dépasser 8 caracteres"
     sd = self.parent.get_sd_autour_etape(nom,self)
     if sd :
-        if cr == 'oui' : self.cr.fatal("Un concept de nom %s existe déjà !" %nom)
+        if cr == 'oui' : self.cr.fatal(tr("Un concept de nom %s existe déjà !"), nom)
         return 0,"Un concept de nom %s existe déjà !" %nom
     return 1,''
 
   def verif_parametre_eval(self,param=None,cr='non'):
     """
     Vérifie la validité du paramètre EVAL passé en argument.
-    Ce nouveau paramètre est passé sous la forme d'un tuple :
-                (nom,valeur)
+    Ce nouveau paramètre est passé sous la forme d'un tuple : (nom,valeur)
     Si aucun tuple passé, prend les valeurs courantes de l'objet
     Retourne :
             - un booléen, qui vaut 1 si EVAL licite, 0 sinon
@@ -210,8 +211,8 @@ class PARAMETRE_EVAL(parametre.PARAMETRE) :
     """
     Retourne 1 si self est valide, 0 sinon
     Un paramètre évalué est considéré comme valide si :
-    - il a un nom
-    - il a une valeur qui est interprétable par l'interpréteur de FORMULEs
+      - il a un nom
+      - il a une valeur qui est interprétable par l'interpréteur de FORMULEs
     """
     resu,erreur= self.verif_parametre_eval(cr=cr)
     return resu