self.actif=1
self.state='undetermined'
self.register()
+ self.dict_valeur=[]
+ self.interprete_valeur(valeur)
+
+ def __getitem__(self,key):
+ param_item=ITEM_PARAMETRE(self,key)
+ return param_item
def interprete_valeur(self,val):
"""
valeur = eval(val)
except:
pass
+ #PN je n ose pas modifier je rajoute
if valeur != None :
if type(valeur) == types.TupleType:
l_new_val = []
#print "on a réussi à évaluer %s en autre chose qu'un tuple ..." %val
#print 'on trouve : ',str(valeur),' de type : ',type(valeur)
# on retourne val comme une string car on n'a pas su l'interpréter
+ if valeur != None :
+ if type(valeur).__name__ == 'list':
+ self.dict_valeur=[]
+ for i in range(len(valeur)):
+ self.dict_valeur.append(valeur[i])
return val
+ def get_valeurs(self):
+ valeurretour=[]
+ if self.dict_valeur != []:
+ for val in self.dict_valeur:
+ valeurretour.append(val)
+ else:
+ valeurretour.append(self.valeur)
+ return valeurretour
+
def set_valeur(self,new_valeur):
"""
Remplace la valeur de self par new_valeur interprétée
+class ITEM_PARAMETRE :
+ def __init__(self,param_pere,item=None):
+ self.param_pere = param_pere
+ self.item = item
+
+ def __repr__(self):
+ return self.param_pere.nom+'['+str(self.item)+']'
+
+
+ def isvalid(self):
+ isvalid = 1
+ if self.item < 0:
+ isvalid = 0
+ try:
+ longueur= len(self.param_pere.dict_valeur) - 1
+ except:
+ longueur=0
+ if self.item > longueur :
+ isvalid= 0
+ return isvalid
objet = eval(new_valeur,d)
return objet,1
except Exception:
+ itparam=self.cherche_item_parametre(new_valeur)
+ if itparam:
+ return itparam,1
if CONTEXT.debug : traceback.print_exc()
return None,0
+ def cherche_item_parametre (self,new_valeur):
+ try:
+ nomparam=new_valeur[0:new_valeur.find("[")]
+ indice=new_valeur[new_valeur.find("[")+1:new_valeur.find("]")]
+ for p in self.jdc.params:
+ if p.nom == nomparam :
+ if int(indice) < len(p.get_valeurs()):
+ itparam=parametre.ITEM_PARAMETRE(p,int(indice))
+ return itparam
+ return None
+ except:
+ return None
+
+
def delete_concept(self,sd):
"""
Inputs :
valid=0
# fin des validateurs
#
+ # cas d un item Parametre
+ if self.valeur.__class__.__name__ == 'ITEM_PARAMETRE':
+ valid=self.valeur.isvalid()
+ if valid == 0:
+ if cr == 'oui' :
+ self.cr.fatal(string.join( repr (self.valeur), " a un indice incorrect"))
self.set_valid(valid)
return self.valid
return 0
elif type(valeur) not in (types.IntType,types.FloatType,types.LongType):
# ce n'est pas un réel
- return 0
+ try :
+ valeur=valeur +1
+ return 1
+ except:
+ return 0
else:
return 1
# on a à faire à un PARAMETRE qui définit une liste d'items
# --> on teste sur la première car on n'accepte que les liste homogènes
valeur = valeur.valeur[0]
+
+ if valeur.__class__.__name__ == 'PARAMETRE' or valeur.__class__.__name__ == 'ITEM_PARAMETRE':
+ # on admet que c'est OK
+ return 1
+
if type_permis == 'R':
return self.is_reel(valeur)
elif type_permis == 'I':