From: André Ribes <> Date: Wed, 23 Mar 2011 17:54:00 +0000 (+0000) Subject: Ajout d'une nouvelle regle MEME_NOMBRE X-Git-Tag: LOGILAB~327 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=94b27621cc80daeedd42f0e775de7425ea11e029;p=tools%2Feficas.git Ajout d'une nouvelle regle MEME_NOMBRE --- diff --git a/Accas/A_MEME_NOMBRE.py b/Accas/A_MEME_NOMBRE.py new file mode 100644 index 00000000..9574f3a2 --- /dev/null +++ b/Accas/A_MEME_NOMBRE.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +from Noyau import N_REGLE +from Validation import V_MEME_NOMBRE +from Ihm import I_REGLE + +class MEME_NOMBRE(V_MEME_NOMBRE.MEME_NOMBRE,I_REGLE.REGLE,N_REGLE.REGLE): + """ + La classe utilise l'initialiseur de REGLE. Il n'est pas + nécessaire d'expliciter son initialiseur car + V_MEME_NOMBRE.MEME_NOMBRE n'en a pas + """ diff --git a/Accas/__init__.py b/Accas/__init__.py index 4897f586..0961bbfa 100644 --- a/Accas/__init__.py +++ b/Accas/__init__.py @@ -58,6 +58,7 @@ from A_MCSIMP import MCSIMP # Les règles from A_AU_MOINS_UN import AU_MOINS_UN +from A_MEME_NOMBRE import MEME_NOMBRE from A_AU_PLUS_UN import AU_PLUS_UN from A_UN_PARMI import UN_PARMI from A_PRESENT_PRESENT import PRESENT_PRESENT diff --git a/Accas/__init__NonAster.py b/Accas/__init__NonAster.py index 324ed712..554b454f 100644 --- a/Accas/__init__NonAster.py +++ b/Accas/__init__NonAster.py @@ -58,6 +58,7 @@ from A_MCSIMP import MCSIMP # Les règles from A_AU_MOINS_UN import AU_MOINS_UN +from A_MEME_NOMBRE import MEME_NOMBRE from A_AU_PLUS_UN import AU_PLUS_UN from A_UN_PARMI import UN_PARMI from A_PRESENT_PRESENT import PRESENT_PRESENT diff --git a/Validation/V_MEME_NOMBRE.py b/Validation/V_MEME_NOMBRE.py new file mode 100644 index 00000000..e07bb302 --- /dev/null +++ b/Validation/V_MEME_NOMBRE.py @@ -0,0 +1,66 @@ +#@ MODIF V_MEME_NOMBRE Validation DATE 07/09/2009 AUTEUR COURTOIS M.COURTOIS +# -*- coding: iso-8859-1 -*- +# RESPONSABLE COURTOIS M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== + + + +class MEME_NOMBRE: + """ + La règle MEME_NOMBRE vérifie que l'on trouve au moins un des mots-clés + de la règle parmi les arguments d'un OBJECT. + + Ces arguments sont transmis à la règle pour validation sous la forme + d'une liste de noms de mots-clés ou d'un dictionnaire dont + les clés sont des noms de mots-clés. + """ + def verif(self,args): + """ + La méthode verif vérifie que l'on trouve au moins un des mos-clés + de la liste self.mcs parmi les éléments de args + + args peut etre un dictionnaire ou une liste. Les éléments de args + sont soit les éléments de la liste soit les clés du dictionnaire. + """ + # on compte le nombre de mots cles presents + text ='' + args = self.liste_to_dico(args) + size = -1 + + for mc in self.mcs: + if mc not in args.keys(): + text = "Une clé dans la régle n'existe pas %s" % mc + return text,0 + + val = args[mc].valeur + len_val = 0 + if not isinstance(val,type([])): + len_val = 1 + else: + len_val = len(val) + + if size == -1: + size = len_val + elif size != len_val: + text = "Pas la même longeur" + return text,0 + return text,1 +