X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Noyau%2FN_REGLE.py;h=062230c86e4b92473dd4d0bfae7b30d1a8862d54;hb=87031195495e1fc70dd3f6b9f5a974673590dc30;hp=787b45dd8a3ec75b50656b61e104194a660b37bc;hpb=860a50d7df32b5c86f9ab536178d030ea882cae5;p=tools%2Feficas.git diff --git a/Noyau/N_REGLE.py b/Noyau/N_REGLE.py index 787b45dd..062230c8 100644 --- a/Noyau/N_REGLE.py +++ b/Noyau/N_REGLE.py @@ -1,30 +1,29 @@ -# -*- coding: utf-8 -*- -#@ MODIF N_REGLE Noyau DATE 27/03/2002 AUTEUR DURAND C.DURAND -# 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. +# coding=utf-8 +# Copyright (C) 2007-2021 EDF R&D # -# 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. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# 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. -# -# -# ====================================================================== +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com + + """ Ce module contient la classe mere pour les classes de definition des regles d exclusion. La classe REGLE est la classe de base : elle est virtuelle, elle ne doit pas etre instanciee. - Les classes regles dérivées qui seront instanciées doivent implementer la methode verif + Les classes regles dérivées qui seront instanciées doivent implementer la methode verif dont l argument est le dictionnaire des mots cles effectivement presents sur lesquels sera operee la verification de la regle @@ -32,52 +31,58 @@ Exemple :: - # Création de l'objet règle UNPARMI + # Création de l'objet règle UNPARMI r=UNPARMI("INFO","AFFE") - # Vérification de la règle r sur le dictionnaire passé en argument + # Vérification de la règle r sur le dictionnaire passé en argument r.verif({"INFO":v1,"AFFE":v2) """ +from __future__ import absolute_import +try : + from builtins import object +except : + pass import types -class REGLE: - def __init__(self,*args): - """ - Les classes dérivées peuvent utiliser cet initialiseur par défaut ou - le surcharger - """ - self.mcs=args - - def verif(self,args): - """ - Les classes dérivées doivent implémenter cette méthode - qui doit retourner une paire dont le premier élément est une chaine de caractère - et le deuxième un entier. - - L'entier peut valoir 0 ou 1. -- s'il vaut 1, la règle est vérifiée - s'il vaut 0, la règle n'est pas vérifiée et le texte joint contient - un commentaire de la non validité. - """ - raise "NotImplemented : class REGLE should be derived" - - def liste_to_dico(self,args): - """ - Cette méthode est utilitaire pour les seuls besoins - des classes dérivées. - - Elle transforme une liste de noms de mots clés en un - dictionnaire équivalent dont les clés sont les noms des mts-clés - - Ceci permet d'avoir un traitement identique pour les listes et les dictionnaires - """ - if type(args) == types.DictionaryType: - return args - elif type(args) == types.ListType: - dico={} - for arg in args : - dico[arg]=0 - return dico - else : - raise "Erreur ce n'est ni un dictionnaire ni une liste",args +class REGLE(object): + + def __init__(self, *args): + """ + Les classes dérivées peuvent utiliser cet initialiseur par défaut ou + le surcharger + """ + self.mcs = args + + def verif(self, args): + """ + Les classes dérivées doivent implémenter cette méthode + qui doit retourner une paire dont le premier élément est une chaine de caractère + et le deuxième un entier. + + L'entier peut valoir 0 ou 1. -- s'il vaut 1, la règle est vérifiée + s'il vaut 0, la règle n'est pas vérifiée et le texte joint contient + un commentaire de la non validité. + """ + raise NotImplementedError('class REGLE should be derived') + + def listeToDico(self, args): + """ + Cette méthode est utilitaire pour les seuls besoins + des classes dérivées. + + Elle transforme une liste de noms de mots clés en un + dictionnaire équivalent dont les clés sont les noms des mts-clés + Ceci permet d'avoir un traitement identique pour les listes et les dictionnaires + """ + if type(args) == dict: + return args + elif type(args) == list: + dico = {} + for arg in args: + dico[arg] = 0 + return dico + else: + raise Exception( + "Erreur ce n'est ni un dictionnaire ni une liste %s" % args)