+# -*- 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
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]*)')
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
"""
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()
"""
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):
"""
"""
if not val : return None
d={}
- d['EVAL'] = Accas.EVAL
+ val = string.strip(val)
+ if val[-1] == ';' : val = val[0:-1]
+ d['EVAL'] = self.Accas_EVAL
try:
valeur = eval(val,{},d)
return valeur
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'):
"""
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
"""
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