X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Extensions%2Fparametre_eval.py;h=ece9fed04e7abd0cb2a90caf2dba3ae2b6e77c2d;hb=42895950e564e837c445896b5bac263370bdf37b;hp=a968549868e33822ef99f8bb01b9971537918b1f;hpb=5c55dadf5fcfbfa04b7362b28d510cbb6b523f8d;p=tools%2Feficas.git diff --git a/Extensions/parametre_eval.py b/Extensions/parametre_eval.py index a9685498..ece9fed0 100644 --- a/Extensions/parametre_eval.py +++ b/Extensions/parametre_eval.py @@ -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