Salome HOME
mse a jour du 07/03/2016 pour sauvegarde
[tools/eficas.git] / Extensions / parametre_eval.py
index a968549868e33822ef99f8bb01b9971537918b1f..ece9fed04e7abd0cb2a90caf2dba3ae2b6e77c2d 100644 (file)
@@ -1,3 +1,22 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2013   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
 """
 Ce module contient la classe PARAMETRE_EVAL qui sert à définir
 des objets paramètres qui sont compréhensibles et donc affichables
@@ -10,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]*)')
@@ -20,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
   """
@@ -30,12 +48,16 @@ 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
     self.jdc = self.parent = CONTEXT.get_current_step()
     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()
@@ -44,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):
     """
@@ -62,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
@@ -124,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'):
     """
@@ -138,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
@@ -190,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