1 #@ MODIF V_A_CLASSER Validation DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS
2 # -*- coding: iso-8859-1 -*-
3 # CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
6 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9 # (AT YOUR OPTION) ANY LATER VERSION.
11 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
17 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
18 # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
21 # ======================================================================
29 La règle A_CLASSER vérifie que ...
32 def __init__(self,*args):
34 print "Erreur à la création de la règle A_CLASSER(",args,")"
37 if type(args[0]) == types.TupleType:
39 elif type(args[0]) == types.StringType:
40 self.args0 = (args[0],)
42 print "Le premier argument de :",args," doit etre un tuple ou une string"
43 if type(args[1]) == types.TupleType:
45 elif type(args[1]) == types.StringType:
46 self.args1 = (args[1],)
48 print "Le deuxième argument de :",args," doit etre un tuple ou une string"
49 # création de la liste des mcs
51 for arg0 in self.args0:
53 for arg1 in self.args1:
56 self.init_couples_permis()
58 def init_couples_permis(self):
59 """ Crée la liste des couples permis parmi les self.args, càd pour chaque élément
60 de self.args0 crée tous les couples possibles avec un élément de self.args1"""
62 for arg0 in self.args0:
63 for arg1 in self.args1:
64 liste.append((arg0,arg1))
65 self.liste_couples = liste
70 args peut etre un dictionnaire ou une liste. Les éléments de args
71 sont soit les éléments de la liste soit les clés du dictionnaire.
73 # création de la liste des couples présents dans le fichier de commandes
82 l_couples.append(tuple(couple))
84 if nom not in self.args1:
87 l_couples.append(tuple(couple))
88 # l_couples peut etre vide si l'on n'a pas réussi à trouver au moins un
90 if len(l_couples) == 0 :
91 message = "- Il faut qu'au moins un objet de la liste : "+`self.args0`+\
92 " soit suivi d'au moins un objet de la liste : "+`self.args1`
94 # A ce stade, on a trouvé des couples : il faut vérifier qu'ils sont
97 for couple in l_couples :
100 # on a un 'faux' couple
101 if couple[0] not in self.args1:
102 text = text+"- L'objet : "+couple[0]+" doit etre suivi d'un objet de la liste : "+\
107 # ce n'est pas le seul couple --> licite
110 text = text+"- L'objet : "+couple[0]+" doit etre précédé d'un objet de la liste : "+\
113 elif couple not in self.liste_couples :
114 text = text+"- L'objet : "+couple[0]+" ne peut etre suivi de : "+couple[1]+'\n'