1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2012 EDF R&D
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 from Noyau.strfunc import convert, ufmt
24 La règle A_CLASSER vérifie que ...
27 def __init__(self,*args):
29 print convert(ufmt(_(u"Erreur à la création de la règle A_CLASSER(%s)"),
33 if type(args[0]) == tuple:
35 elif type(args[0]) == str:
36 self.args0 = (args[0],)
38 print convert(ufmt(_(u"Le premier argument de : %s doit etre un "
39 u"tuple ou une chaine"), args))
40 if type(args[1]) == tuple:
42 elif type(args[1]) == str:
43 self.args1 = (args[1],)
45 print convert(ufmt(_(u"Le deuxième argument de :%s doit etre un "
46 u"tuple ou une chaine"), args))
47 # création de la liste des mcs
49 liste.extend(self.args0)
50 liste.extend(self.args1)
52 self.init_couples_permis()
54 def init_couples_permis(self):
55 """ Crée la liste des couples permis parmi les self.args, càd pour chaque élément
56 de self.args0 crée tous les couples possibles avec un élément de self.args1"""
58 for arg0 in self.args0:
59 for arg1 in self.args1:
60 liste.append((arg0,arg1))
61 self.liste_couples = liste
65 args peut etre un dictionnaire ou une liste. Les éléments de args
66 sont soit les éléments de la liste soit les clés du dictionnaire.
68 # création de la liste des couples présents dans le fichier de commandes
77 l_couples.append(tuple(couple))
80 l_couples.append(tuple(couple))
81 # l_couples peut etre vide si l'on n'a pas réussi à trouver au moins un
83 if len(l_couples) == 0 :
84 message = ufmt(_(u"- Il faut qu'au moins un objet de la liste : %r"
85 u" soit suivi d'au moins un objet de la liste : %r"),
86 self.args0, self.args1)
88 # A ce stade, on a trouvé des couples : il faut vérifier qu'ils sont
91 for couple in l_couples :
94 # on a un 'faux' couple
95 if couple[0] not in self.args1:
96 text = text + ufmt(_(u"- L'objet : %s doit être suivi d'un objet de la liste : %r\n"),
97 couple[0], self.args1)
101 # ce n'est pas le seul couple --> licite
104 text = text + ufmt(_(u"- L'objet : %s doit être précédé d'un objet de la liste : %r\n"),
105 couple[0], self.args0)
107 elif couple not in self.liste_couples :
108 text = text + ufmt(_(u"- L'objet : %s ne peut être suivi de : %s\n"),
109 couple[0], couple[1])