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
 """
 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 traceback
 
 # import modules Eficas
-import Accas
 import interpreteur_formule
 from Noyau.N_CR import CR
 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]*)')
 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
 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
   """
   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
 
   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.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()
     # 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
     """
     """
         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):
     """
 
   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={}
     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
     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' : 
     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'):
     """
 
   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 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 :
         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 :
     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.
         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
     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 :
     """
     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
     """
     resu,erreur= self.verif_parametre_eval(cr=cr)
     return resu