+# -*- coding: utf-8 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
# import de modules Python
import string,types
+from math import *
# import de modules Eficas
from Noyau.N_CR import CR
+from Noyau import N_OBJECT
+from Ihm import I_OBJECT
-class PARAMETRE :
+class PARAMETRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT) :
"""
Cette classe permet de créer des objets de type PARAMETRE
cad des affectations directes dans le jeu de commandes (ex: a=10.)
def __init__(self,nom,valeur=None):
# parent ne peut être qu'un objet de type JDC
+ self.dict_valeur=[]
self.valeur = self.interprete_valeur(valeur)
self.val=valeur
self.nom = nom
self.state='undetermined'
self.register()
+ def __getitem__(self,key):
+ param_item=ITEM_PARAMETRE(self,key)
+ return param_item
+
+ def __neg__(self):
+ try:
+ return -1*self.valeur
+ except:
+ print "******* Probleme : pas de valeur négative"
+ return None
+
+ def __add__(self,a):
+ try :
+ return self.valeur+a.valeur
+ except :
+ print "******* Probleme : a l addition"
+ return None
+
+ def __radd__(self,a):
+ try :
+ return self.valeur+a.valeur
+ except :
+ print "******* Probleme : a l addition"
+ return None
+
+ def __sub__(self,a):
+ try :
+ return self.valeur - a.valeur
+ except :
+ print "******* Probleme : a la soustraction"
+ return None
+
+ def __rsub__(self,a):
+ try :
+ return a.valeur - self.valeur
+ except :
+ print "******* Probleme : a la soustraction"
+ return None
+
+ def __mul__(self,a):
+ try :
+ return self.valeur*a.valeur
+ except :
+ print "******* Probleme : a la multiplication"
+ return None
+
+ def __rmul__(self,a):
+ try :
+ return self.valeur*a.valeur
+ except :
+ print "******* Probleme : a la multiplication"
+ return None
+
+ def __mul__(self,a):
+ try :
+ return self.valeur*a.valeur
+ except :
+ print "******* Probleme : a la multiplication"
+ return None
+
+ def __rmul__(self,a):
+ try :
+ return self.valeur*a.valeur
+ except :
+ print "******* Probleme : a la multiplication"
+ return None
+
+ def __add__(self,other):
+ try :
+ return self.valeur+other
+ except :
+ print "******* Probleme : a l addition"
+ return None
+
+ def __radd__(self,other):
+ try :
+ return self.valeur+other
+ except :
+ print "******* Probleme : a l addition"
+ return None
+
+ def __sub__(self,other):
+ try :
+ return self.valeur - other
+ except :
+ print "******* Probleme : a la soustraction"
+ return None
+
+ def __rsub__(self,other):
+ try :
+ return other - self.valeur
+ except :
+ print "******* Probleme : a la soustraction"
+ return None
+
+ def __mul__ (self,other):
+ retour=None
+ try :
+ retour = eval(self.valeur) * other
+ except :
+ try :
+ retour = self.valeur * other
+ except :
+ print "******* Probleme : a la multiplication"
+ return retour
+
+ def __rmul__ (self,other):
+ retour=None
+ try :
+ retour = eval(self.valeur) * other
+ except :
+ try :
+ retour = self.valeur * other
+ except :
+ print "******* Probleme : a la multiplication"
+ return retour
+
+
def interprete_valeur(self,val):
"""
Essaie d'interpréter val (chaîne de caractères)comme :
valeur = eval(val)
except:
pass
+ #PN je n ose pas modifier je rajoute
if valeur != None :
if type(valeur) == types.TupleType:
l_new_val = []
return val
l_new_val.append(v)
return tuple(l_new_val)
- else:
+ # PN : commente le print
+ #else:
# on a réussi à évaluer val en autre chose qu'un tuple ...
- print "on a réussi à évaluer %s en autre chose qu'un tuple ..." %val
- print 'on trouve : ',str(valeur),' de type : ',type(valeur)
+ #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
"""
Retourne 1 si self est valide, 0 sinon
Un paramètre est considéré comme valide si :
- - il a un nom
- - il a une valeur
+ - il a un nom
+ - il a une valeur
"""
if self.nom == '' :
if cr == 'oui':
"""
Donne un echo de self sous la forme nom = valeur
"""
- return self.nom+' = '+str(self.valeur)+'\n'
+ return self.nom+' = '+str(self.valeur)
def __str__(self):
"""
def delete_concept(self,sd):
pass
+ def replace_concept(self,old_sd,sd):
+ pass
+
def verif_condition_bloc(self):
"""
Evalue les conditions de tous les blocs fils possibles
(en fonction du catalogue donc de la définition) de self et
retourne deux listes :
- - la première contient les noms des blocs à rajouter
- - la seconde contient les noms des blocs à supprimer
+ - la première contient les noms des blocs à rajouter
+ - la seconde contient les noms des blocs à supprimer
"""
return [],[]
+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