6 La règle A_CLASSER vérifie que ...
9 def __init__(self,*args):
11 print "Erreur à la création de la règle A_CLASSER(",args,")"
14 if type(args[0]) == types.TupleType:
16 elif type(args[0]) == types.StringType:
17 self.args0 = (args[0],)
19 print "Le premier argument de :",args," doit être un tuple ou une string"
20 if type(args[1]) == types.TupleType:
22 elif type(args[1]) == types.StringType:
23 self.args1 = (args[1],)
25 print "Le deuxième argument de :",args," doit être un tuple ou une string"
26 # création de la liste des mcs
28 for arg0 in self.args0:
30 for arg1 in self.args1:
33 self.init_couples_permis()
35 def init_couples_permis(self):
36 """ Crée la liste des couples permis parmi les self.args, càd pour chaque élément
37 de self.args0 crée tous les couples possibles avec un élément de self.args1"""
39 for arg0 in self.args0:
40 for arg1 in self.args1:
41 liste.append((arg0,arg1))
42 self.liste_couples = liste
47 args peut etre un dictionnaire ou une liste. Les éléments de args
48 sont soit les éléments de la liste soit les clés du dictionnaire.
50 # création de la liste des couples présents dans le fichier de commandes
59 l_couples.append(tuple(couple))
61 if nom not in self.args1:
64 l_couples.append(tuple(couple))
65 # l_couples peut être vide si l'on n'a pas réussi à trouver au moins un
67 if len(l_couples) == 0 :
68 message = "- Il faut qu'au moins un objet de la liste : "+`self.args0`+\
69 " soit suivi d'au moins un objet de la liste : "+`self.args1`
71 # A ce stade, on a trouvé des couples : il faut vérifier qu'ils sont
74 for couple in l_couples :
77 # on a un 'faux' couple
78 if couple[0] not in self.args1:
79 text = text+"- L'objet : "+couple[0]+" doit être suivi d'un objet de la liste : "+\
84 # ce n'est pas le seul couple --> licite
87 text = text+"- L'objet : "+couple[0]+" doit être précédé d'un objet de la liste : "+\
90 elif couple not in self.liste_couples :
91 text = text+"- L'objet : "+couple[0]+" ne peut être suivi de : "+couple[1]+'\n'