if valeur.__class__.__name__ == 'CO':return 1
return 0
+ def is_param(self,valeur) :
+ for param in self.jdc.params:
+ if (repr(param) == valeur):
+ return 1
+ return 0
+
def traite_reel(self,valeur):
"""
Cette fonction a pour but de rajouter le '.' en fin de chaîne pour un réel
return valeur
if string.find(valeur,'.') == -1 :
# aucun '.' n'a été trouvé dans valeur --> on en rajoute un à la fin
- return valeur+'.'
+ if (self.is_param(valeur)):
+ return valeur
+ else:
+ return valeur+'.'
else:
return valeur
else :
l1_valeurs.append((valeur[0],valeur[1],valeur[2]))
self.Liste_valeurs.put_liste(l1_valeurs)
+
+
+ def display_valeur(self,val=None):
+ """
+ Affiche la valeur passée en argument dans l'entry de saisie.
+ Par défaut affiche la valeur du mot-clé simple
+ Doit être redéfinie pour un pb avec les parametres dans un tuple
+ """
+ if not val :
+ valeur = self.node.item.object.getval()
+ else:
+ valeur = val
+ if not valeur : return
+
+ try:
+ affiche="("
+ separe=""
+ for val in valeur:
+ print str(val)
+ affiche=affiche+separe+str(val)
+ separe=","
+ affiche=affiche+")"
+ self.entry.delete(0,END)
+ self.entry.insert(0,affiche)
+ except :
+ self.entry.delete(0,END)
+
Par défaut affiche la valeur du mot-clé simple
"""
if not val :
- #valeur = self.node.item.getval()
- #valeur = self.node.item.get_valeur()
valeur = self.node.item.object.getval()
else:
valeur = val
for type_permis in self.definition.type:
if self.compare_type(valeur,type_permis) : return 1
- # si on sort de la boucle précédente par ici c'est que l'on n'a trouvé aucun type valable --> valeur refusée
+ # si on sort de la boucle précédente par ici c'est qu'on n'a trouvé aucun type valable --> valeur refusée
+ # on essaie d evaluer si c est un parametre tordu : exemple a*b ou a et b sont definis
+ if valeur.__class__.__name__ in ('PARAMETRE_EVAL','PARAMETRE'):
+ try :
+
+ # On crée un dictionnaire qui servira de contexte aux evaluations
+ # Ce dictionnaire sera initialisé avec les paramètres du JDC
+ d={}
+ for param in self.jdc.params :
+ expression = param.nom+'='+repr(param.valeur)
+ # ici on enrichit le dictionnaire d
+ exec expression in d
+
+ obj=eval( valeur.valeur,d)
+
+ for type_permis in self.definition.type:
+ if self.compare_type(obj,type_permis) :
+ return 1
+ except Exception,e :
+ print "AAAAAAAAAAAAA"
+ print "e = ",str(e)
+ pass
+
if cr =='oui':
self.cr.fatal("%s n'est pas d'un type autorisé" %`valeur`)
return 0