From 89764aa6a88580ac1df0ea52746b437a7cee66d1 Mon Sep 17 00:00:00 2001 From: eficas <> Date: Mon, 2 Sep 2002 17:01:01 +0000 Subject: [PATCH] Version Aster 6.3.14 --- Noyau/N_ASSD.py | 20 ++++ Noyau/N_BLOC.py | 40 +++++-- Noyau/N_CO.py | 28 ++++- Noyau/N_CR.py | 40 +++++-- Noyau/N_ENTITE.py | 20 ++++ Noyau/N_ETAPE.py | 33 +++++- Noyau/N_EVAL.py | 20 ++++ Noyau/N_Exception.py | 20 ++++ Noyau/N_FACT.py | 30 ++++- Noyau/N_FONCTION.py | 20 ++++ Noyau/N_FORM.py | 20 ++++ Noyau/N_FORM_ETAPE.py | 20 ++++ Noyau/N_GEOM.py | 20 ++++ Noyau/N_JDC.py | 40 ++++++- Noyau/N_JDC_CATA.py | 22 +++- Noyau/N_MACRO.py | 36 ++++-- Noyau/N_MACRO_ETAPE.py | 101 +++++++++++++---- Noyau/N_MCBLOC.py | 20 ++++ Noyau/N_MCCOMPO.py | 32 +++++- Noyau/N_MCFACT.py | 20 ++++ Noyau/N_MCLIST.py | 24 +++- Noyau/N_MCSIMP.py | 20 ++++ Noyau/N_OBJECT.py | 22 +++- Noyau/N_OPER.py | 34 ++++-- Noyau/N_PROC.py | 34 ++++-- Noyau/N_PROC_ETAPE.py | 22 +++- Noyau/N_REGLE.py | 20 ++++ Noyau/N_SIMP.py | 28 ++++- Noyau/N__F.py | 20 ++++ Noyau/N_utils.py | 24 +++- Noyau/__init__.py | 20 ++++ Noyau/context.py | 20 ++++ Noyau/nommage.py | 20 ++++ Noyau/properties.py | 27 ++++- Validation/V_AU_MOINS_UN.py | 20 ++++ Validation/V_A_CLASSER.py | 32 +++++- Validation/V_ENSEMBLE.py | 22 +++- Validation/V_ETAPE.py | 49 ++++++-- Validation/V_EXCLUS.py | 20 ++++ Validation/V_JDC.py | 24 +++- Validation/V_MACRO_ETAPE.py | 50 +++++++-- Validation/V_MCBLOC.py | 20 ++++ Validation/V_MCCOMPO.py | 24 +++- Validation/V_MCFACT.py | 20 ++++ Validation/V_MCLIST.py | 26 ++++- Validation/V_MCSIMP.py | 190 ++++++++++++++++++-------------- Validation/V_PRESENT_ABSENT.py | 20 ++++ Validation/V_PRESENT_PRESENT.py | 20 ++++ Validation/V_PROC_ETAPE.py | 20 ++++ Validation/V_UN_PARMI.py | 20 ++++ Validation/__init__.py | 20 ++++ 51 files changed, 1324 insertions(+), 210 deletions(-) diff --git a/Noyau/N_ASSD.py b/Noyau/N_ASSD.py index 51d8a7ab..3c9a488d 100644 --- a/Noyau/N_ASSD.py +++ b/Noyau/N_ASSD.py @@ -1,3 +1,23 @@ +#@ MODIF N_ASSD 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. +# +# 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. +# +# +# ====================================================================== """ """ diff --git a/Noyau/N_BLOC.py b/Noyau/N_BLOC.py index 49aef06c..f00a8b54 100644 --- a/Noyau/N_BLOC.py +++ b/Noyau/N_BLOC.py @@ -1,9 +1,29 @@ +#@ MODIF N_BLOC Noyau DATE 29/05/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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe de definition BLOC qui permet de spécifier les caractéristiques des blocs de mots clés """ -import types,string +import types,string,sys import traceback import N_ENTITE @@ -73,21 +93,21 @@ class BLOC(N_ENTITE.ENTITE): Les éventuels messages d'erreur sont écrits dans l'objet compte-rendu (self.cr). """ if type(self.fr) != types.StringType : - self.cr.fatal("L'attribut 'fr' doit être une chaîne de caractères : %s" %`self.fr`) + self.cr.fatal("L'attribut 'fr' doit etre une chaine de caractères : %s" %`self.fr`) if type(self.docu) != types.StringType : - self.cr.fatal("L'attribut 'docu' doit être une chaîne de caractères : %s" %`self.docu`) + self.cr.fatal("L'attribut 'docu' doit etre une chaine de caractères : %s" %`self.docu`) if type(self.regles) != types.TupleType : - self.cr.fatal("L'attribut 'regles' doit être un tuple : %s" %`self.regles` ) + self.cr.fatal("L'attribut 'regles' doit etre un tuple : %s" %`self.regles` ) if self.statut not in ['f','o'] : self.cr.fatal("L'attribut 'statut' doit valoir 'o' ou 'f' : %s" %`self.statut` ) if self.condition != None : if type(self.condition) != types.StringType : - self.cr.fatal("L'attribut 'condition' doit être une chaîne de caractères : %s" %`self.condition`) + self.cr.fatal("L'attribut 'condition' doit etre une chaine de caractères : %s" %`self.condition`) else: self.cr.fatal("La condition ne doit pas valoir None !") self.verif_cata_regles() - def verif_presence(self,dict): + def verif_presence(self,dict,globs): """ Cette méthode vérifie si le dictionnaire passé en argument (dict) est susceptible de contenir un bloc de mots-clés conforme à la @@ -102,15 +122,15 @@ class BLOC(N_ENTITE.ENTITE): """ # On recopie le dictionnaire pour protéger l'original dico=dict.copy() - # XXX on ajoute AsType pour permettre les évaluations - # XXX pour le moment en commentaire. Voir si on ne peut pas faire autrement. - #dico['AsType']=AsType if self.condition != None : try: - test = eval(self.condition,dico) + test = eval(self.condition,globs,dico) return test except NameError: # erreur 'normale' : un mot-clé n'est pas présent et on veut l'évaluer dans la condition + if CONTEXT.debug: + l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2]) + print "WARNING : Erreur a l'evaluation de la condition "+string.join(l) return 0 except SyntaxError: # le texte de la condition n'est pas du Python correct --> faute de catalogue diff --git a/Noyau/N_CO.py b/Noyau/N_CO.py index 7f922300..60b8b6fe 100644 --- a/Noyau/N_CO.py +++ b/Noyau/N_CO.py @@ -1,4 +1,26 @@ +#@ MODIF N_CO Noyau DATE 29/05/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. +# +# 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 N_ASSD import ASSD +from N_Exception import AsException +import N_utils class CO(ASSD): def __init__(self,nom): @@ -7,7 +29,11 @@ class CO(ASSD): # On demande le nommage du concept # if self.parent : - self.parent.NommerSdprod(self,nom) + try: + self.parent.NommerSdprod(self,nom) + except AsException,e: + appel=N_utils.callee_where(niveau=2) + raise AsException("Concept CO, fichier: ",appel[1]," ligne : ",appel[0],'\n',e) else: self.nom=nom diff --git a/Noyau/N_CR.py b/Noyau/N_CR.py index 9c511aa1..a3e231eb 100644 --- a/Noyau/N_CR.py +++ b/Noyau/N_CR.py @@ -1,3 +1,23 @@ +#@ MODIF N_CR Noyau DATE 29/05/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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe compte-rendu de validation """ @@ -99,14 +119,14 @@ class CR : def __str__(self): """ - Retourne une chaîne de caractères décorée et représentative de self + Retourne une chaine de caractères décorée et représentative de self """ s='' self.beautifie_messages() - s=s+string.join(self.crok_belle) - s=s+string.join(self.crwarn_belle) - s=s+string.join(self.crfatal_belle) - s=s+string.join(self.crexception_belle) + s=s+string.join(self.crok_belle,'') + s=s+string.join(self.crwarn_belle,'') + s=s+string.join(self.crfatal_belle,'') + s=s+string.join(self.crexception_belle,'') for subcr in self.subcr: if self.verbeux == 'oui': s=s+str(subcr)+'\n' @@ -121,7 +141,7 @@ class CR : def report(self,decalage = 2): """ - Retourne une chaîne de caractères non encadrée mais représentative de self + Retourne une chaine de caractères non encadrée mais représentative de self """ s='' # on stocke dans s les messages de premier niveau @@ -145,7 +165,7 @@ class CR : def get_mess_fatal(self): """ - Retourne une chaîne de caractères contenant les messages de + Retourne une chaine de caractères contenant les messages de la liste crfatal (du dernier au premier) """ self.crfatal.reverse() @@ -157,7 +177,7 @@ class CR : def get_mess_exception(self): """ - Retourne une chaîne de caractères contenant les messages + Retourne une chaine de caractères contenant les messages de la liste crexception (du dernier au premier) """ self.crexception.reverse() @@ -172,7 +192,7 @@ class CR : def justify_text(texte='',cesure=50): """ - Prend la chaîne de caractères 'texte' et la retourne avec un retour chariot + Prend la chaine de caractères 'texte' et la retourne avec un retour chariot tous les 'cesure' caractères s'il y a lieu (le retour chariot est placé dans un blanc et non au milieu d'un mot """ @@ -201,7 +221,7 @@ def justify_text(texte='',cesure=50): def encadre_message(texte,motif): """ - Retourne la chaîne de caractères texte entourée d'un cadre formés + Retourne la chaine de caractères texte entourée d'un cadre formés d'éléments 'motif' """ texte = justify_text(texte,cesure=80) diff --git a/Noyau/N_ENTITE.py b/Noyau/N_ENTITE.py index 2279dda0..b5b9d875 100644 --- a/Noyau/N_ENTITE.py +++ b/Noyau/N_ENTITE.py @@ -1,3 +1,23 @@ +#@ MODIF N_ENTITE 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe ENTITE qui est la classe de base de toutes les classes de definition d'EFICAS. diff --git a/Noyau/N_ETAPE.py b/Noyau/N_ETAPE.py index b441d41e..c7c5335d 100644 --- a/Noyau/N_ETAPE.py +++ b/Noyau/N_ETAPE.py @@ -1,3 +1,23 @@ +#@ MODIF N_ETAPE Noyau DATE 26/06/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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe ETAPE qui sert à vérifier et à exécuter une commande @@ -94,6 +114,7 @@ class ETAPE(N_MCCOMPO.MCCOMPO): """ if not self.isactif():return + self.sdnom=nom try: if self.parent: sd= self.parent.create_sdprod(self,nom) @@ -162,13 +183,15 @@ class ETAPE(N_MCCOMPO.MCCOMPO): sd_prod=self.definition.sd_prod # on teste maintenant si la SD est réutilisée ou s'il faut la créer if self.reuse: - if AsType(self.reuse) != sd_prod: - raise AsException("type de concept reutilise incompatible avec type produit") + # Il est preferable de traiter cette erreur ultérieurement : ce n'est pas une erreur fatale + #if AsType(self.reuse) != sd_prod: + # raise AsException("type de concept reutilise incompatible avec type produit") self.sd=self.reuse else: self.sd= sd_prod(etape=self) - if self.definition.reentrant == 'o': - self.reuse = self.sd + # Si reuse n'a pas ete donné, c'est une erreur. Ne pas corriger afin de la detecter ensuite + #if self.definition.reentrant == 'o': + # self.reuse = self.sd return self.sd def get_type_produit(self): @@ -205,7 +228,7 @@ class ETAPE(N_MCCOMPO.MCCOMPO): def supprime(self): """ Méthode qui supprime toutes les références arrières afin que l'objet puisse - être correctement détruit par le garbage collector + etre correctement détruit par le garbage collector """ N_MCCOMPO.MCCOMPO.supprime(self) self.jdc=None diff --git a/Noyau/N_EVAL.py b/Noyau/N_EVAL.py index d3dff1bf..6398dd83 100644 --- a/Noyau/N_EVAL.py +++ b/Noyau/N_EVAL.py @@ -1,3 +1,23 @@ +#@ MODIF N_EVAL 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. +# +# 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. +# +# +# ====================================================================== """ """ diff --git a/Noyau/N_Exception.py b/Noyau/N_Exception.py index ae3b4ad3..48ae9f79 100644 --- a/Noyau/N_Exception.py +++ b/Noyau/N_Exception.py @@ -1,3 +1,23 @@ +#@ MODIF N_Exception 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe AsException """ diff --git a/Noyau/N_FACT.py b/Noyau/N_FACT.py index 0cf02895..2d9455c0 100644 --- a/Noyau/N_FACT.py +++ b/Noyau/N_FACT.py @@ -1,3 +1,23 @@ +#@ MODIF N_FACT 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe de definition FACT qui permet de spécifier les caractéristiques des mots clés facteurs """ @@ -113,19 +133,19 @@ class FACT(N_ENTITE.ENTITE): def verif_cata(self): if type(self.min) != types.IntType : if self.min != '**': - self.cr.fatal("L'attribut 'min' doit être un entier : %s" %`self.min`) + self.cr.fatal("L'attribut 'min' doit etre un entier : %s" %`self.min`) if type(self.max) != types.IntType : if self.max != '**': - self.cr.fatal("L'attribut 'max' doit être un entier : %s" %`self.max`) + self.cr.fatal("L'attribut 'max' doit etre un entier : %s" %`self.max`) if self.min > self.max : self.cr.fatal("Nombres d'occurrence min et max invalides : %s %s" %(`self.min`,`self.max`)) if type(self.fr) != types.StringType : - self.cr.fatal("L'attribut 'fr' doit être une chaîne de caractères : %s" %`self.fr`) + self.cr.fatal("L'attribut 'fr' doit etre une chaine de caractères : %s" %`self.fr`) if type(self.regles) != types.TupleType : - self.cr.fatal("L'attribut 'regles' doit être un tuple : %s" %`self.regles`) + self.cr.fatal("L'attribut 'regles' doit etre un tuple : %s" %`self.regles`) if self.statut not in ['f','o','c','d'] : self.cr.fatal("L'attribut 'statut' doit valoir 'o','f','c' ou 'd' : %s" %`self.statut`) if type(self.docu) != types.StringType : - self.cr.fatal("L'attribut 'docu' doit être une chaîne de caractères : %s" %`self.docu`) + self.cr.fatal("L'attribut 'docu' doit etre une chaine de caractères : %s" %`self.docu`) self.verif_cata_regles() diff --git a/Noyau/N_FONCTION.py b/Noyau/N_FONCTION.py index a38526ef..5d0c8c5c 100644 --- a/Noyau/N_FONCTION.py +++ b/Noyau/N_FONCTION.py @@ -1,3 +1,23 @@ +#@ MODIF N_FONCTION 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. +# +# 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 N_ASSD import ASSD class FONCTION(ASSD):pass diff --git a/Noyau/N_FORM.py b/Noyau/N_FORM.py index f7026372..4ce7136c 100644 --- a/Noyau/N_FORM.py +++ b/Noyau/N_FORM.py @@ -1,3 +1,23 @@ +#@ MODIF N_FORM 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. +# +# 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. +# +# +# ====================================================================== import N_MACRO import N_FORM_ETAPE diff --git a/Noyau/N_FORM_ETAPE.py b/Noyau/N_FORM_ETAPE.py index 264edc75..7668688d 100644 --- a/Noyau/N_FORM_ETAPE.py +++ b/Noyau/N_FORM_ETAPE.py @@ -1,3 +1,23 @@ +#@ MODIF N_FORM_ETAPE 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. +# +# 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. +# +# +# ====================================================================== import N_MACRO_ETAPE class FORM_ETAPE(N_MACRO_ETAPE.MACRO_ETAPE): diff --git a/Noyau/N_GEOM.py b/Noyau/N_GEOM.py index c6d62b63..c52260be 100644 --- a/Noyau/N_GEOM.py +++ b/Noyau/N_GEOM.py @@ -1,3 +1,23 @@ +#@ MODIF N_GEOM 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. +# +# 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. +# +# +# ====================================================================== """ """ diff --git a/Noyau/N_JDC.py b/Noyau/N_JDC.py index 82568d23..95581464 100644 --- a/Noyau/N_JDC.py +++ b/Noyau/N_JDC.py @@ -1,3 +1,23 @@ +#@ MODIF N_JDC Noyau DATE 26/06/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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe JDC qui sert à interpréter un jeu de commandes """ @@ -30,6 +50,7 @@ from Accas import _F from Accas import * NONE = None """ + from N_utils import SEP def __init__(self,definition=None,procedure=None,cata=None, @@ -69,10 +90,14 @@ NONE = None self.cr = self.CR(debut = "CR phase d'initialisation", fin = "fin CR phase d'initialisation") self.g_context={} + # Liste pour stocker tous les concepts produits dans le JDC self.sds=[] + # Dictionnaire pour stocker tous les concepts du JDC (acces rapide par le nom) + self.sds_dict={} self.etapes=[] self.mc_globaux={} self.current_context={} + self.condition_context={} self.index_etape_courante=0 def compile(self): @@ -111,6 +136,11 @@ NONE = None if type(obj_cata) == types.ModuleType : init2 = "from "+obj_cata.__name__+" import *" exec init2 in self.g_context + + # Initialisation du contexte global pour l'évaluation des conditions de BLOC + # On utilise une copie de l'initialisation du contexte du jdc + self.condition_context=self.g_context.copy() + # Si l'attribut context_ini n'est pas vide, on ajoute au contexte global # le contexte initial (--> permet d'évaluer un JDC en récupérant un contexte # d'un autre par exemple) @@ -216,7 +246,7 @@ NONE = None self.NommerSdprod(sd,nomsd) return sd - def NommerSdprod(self,sd,sdnom): + def NommerSdprod(self,sd,sdnom,restrict='non'): """ Nomme la SD apres avoir verifie que le nommage est possible : nom non utilise @@ -224,15 +254,19 @@ NONE = None Met le concept créé dans le concept global g_context """ if CONTEXT.debug : print "JDC.NommerSdprod ",sd,sdnom - o=self.g_context.get(sdnom,None) + o=self.sds_dict.get(sdnom,None) if isinstance(o,ASSD): raise AsException("Nom de concept deja defini : %s" % sdnom) # ATTENTION : Il ne faut pas ajouter sd dans sds car il s y trouve deja. # Ajoute a la creation (appel de reg_sd). - self.g_context[sdnom]=sd + self.sds_dict[sdnom]=sd sd.nom=sdnom + # En plus si restrict vaut 'non', on insere le concept dans le contexte du JDC + if restrict == 'non': + self.g_context[sdnom]=sd + def reg_sd(self,sd): """ Methode appelee dans l __init__ d un ASSD lors de sa creation diff --git a/Noyau/N_JDC_CATA.py b/Noyau/N_JDC_CATA.py index ffb36d15..4bb371a6 100644 --- a/Noyau/N_JDC_CATA.py +++ b/Noyau/N_JDC_CATA.py @@ -1,3 +1,23 @@ +#@ MODIF N_JDC_CATA 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe de definition JDC_CATA qui permet de spécifier les caractéristiques d'un JDC @@ -70,7 +90,7 @@ class JDC_CATA(N_ENTITE.ENTITE): Méthode de vérification des attributs de définition """ if type(self.regles) != types.TupleType : - self.cr.fatal("L'attribut 'regles' doit être un tuple : %s" %`self.regles`) + self.cr.fatal("L'attribut 'regles' doit etre un tuple : %s" %`self.regles`) self.verif_cata_regles() def verif_cata_regles(self): diff --git a/Noyau/N_MACRO.py b/Noyau/N_MACRO.py index f34051ef..5aa38361 100644 --- a/Noyau/N_MACRO.py +++ b/Noyau/N_MACRO.py @@ -1,3 +1,23 @@ +#@ MODIF N_MACRO 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe de definition MACRO qui permet de spécifier les caractéristiques d'une macro-commande @@ -39,7 +59,7 @@ class MACRO(N_ENTITE.ENTITE): non répétable ne doit apparaitre qu'une fois dans une exécution. C'est du ressort de l'objet gérant le contexte d'exécution de vérifier cette contrainte. - - fr : commentaire associé en français + - fr : commentaire associé en francais - ang : commentaire associé en anglais @@ -50,7 +70,7 @@ class MACRO(N_ENTITE.ENTITE): - op_init : cet attribut vaut None ou une fonction. Si cet attribut ne vaut pas None, cette fonction est exécutée lors des phases d'initialisation de l'étape associée. - - niveau : indique le niveau dans lequel est rangé l'opérateur. Les opérateurs peuvent être + - niveau : indique le niveau dans lequel est rangé l'opérateur. Les opérateurs peuvent etre rangés par niveau. Ils apparaissent alors exclusivement dans leur niveau de rangement. Si niveau vaut None, l'opérateur est rangé au niveau global. @@ -134,17 +154,17 @@ class MACRO(N_ENTITE.ENTITE): Méthode de vérification des attributs de définition """ if self.op is not None and (type(self.op) != types.IntType or self.op > 0) : - self.cr.fatal("L'attribut 'op' doit être un entier signé : %s" %`self.op`) + self.cr.fatal("L'attribut 'op' doit etre un entier signé : %s" %`self.op`) if self.proc is not None and type(self.proc) != types.FunctionType: - self.cr.fatal("L'attribut op doit être une fonction Python : %s" % `self.proc`) + self.cr.fatal("L'attribut op doit etre une fonction Python : %s" % `self.proc`) if type(self.regles) != types.TupleType : - self.cr.fatal("L'attribut 'regles' doit être un tuple : %s" %`self.regles`) + self.cr.fatal("L'attribut 'regles' doit etre un tuple : %s" %`self.regles`) if type(self.fr) != types.StringType : - self.cr.fatal("L'attribut 'fr' doit être une chaîne de caractères : %s" %`self.fr`) + self.cr.fatal("L'attribut 'fr' doit etre une chaine de caractères : %s" %`self.fr`) if type(self.docu) != types.StringType : - self.cr.fatal("L'attribut 'docu' doit être une chaîne de caractères : %s" %`self.docu` ) + self.cr.fatal("L'attribut 'docu' doit etre une chaine de caractères : %s" %`self.docu` ) if type(self.nom) != types.StringType : - self.cr.fatal("L'attribut 'nom' doit être une chaîne de caractères : %s" %`self.nom`) + self.cr.fatal("L'attribut 'nom' doit etre une chaine de caractères : %s" %`self.nom`) if self.reentrant not in ('o','n','f'): self.cr.fatal("L'attribut 'reentrant' doit valoir 'o','n' ou 'f' : %s" %`self.reentrant`) self.verif_cata_regles() diff --git a/Noyau/N_MACRO_ETAPE.py b/Noyau/N_MACRO_ETAPE.py index 40559108..4a883f8f 100644 --- a/Noyau/N_MACRO_ETAPE.py +++ b/Noyau/N_MACRO_ETAPE.py @@ -1,3 +1,23 @@ +#@ MODIF N_MACRO_ETAPE Noyau DATE 26/06/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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe MACRO_ETAPE qui sert à vérifier et à exécuter une commande @@ -87,6 +107,7 @@ class MACRO_ETAPE(N_ETAPE.ETAPE): """ if not self.isactif():return + self.sdnom=nom try: # On positionne la macro self en tant que current_step pour que les # étapes créées lors de l'appel à sd_prod et à op_init aient la macro @@ -155,8 +176,9 @@ class MACRO_ETAPE(N_ETAPE.ETAPE): # on teste maintenant si la SD est réutilisée ou s'il faut la créer if self.reuse: - if AsType(self.reuse) != sd_prod: - raise AsException("type de concept reutilise incompatible avec type produit") + # Il est preferable de traiter cette erreur ultérieurement : ce n'est pas une erreur fatale + #if AsType(self.reuse) != sd_prod: + # raise AsException("type de concept reutilise incompatible avec type produit") self.sd=self.reuse else: if sd_prod == None: @@ -164,8 +186,9 @@ class MACRO_ETAPE(N_ETAPE.ETAPE): else: self.sd= sd_prod(etape=self) self.typret=sd_prod - if self.definition.reentrant == 'o': - self.reuse = self.sd + # Si reuse n'a pas ete donné, c'est une erreur. Ne pas corriger afin de la detecter ensuite + #if self.definition.reentrant == 'o': + # self.reuse = self.sd return self.sd def get_type_produit(self,force=0): @@ -206,7 +229,11 @@ class MACRO_ETAPE(N_ETAPE.ETAPE): # mémorisée dans self.index_etape_courante # Si on insère des commandes (par ex, dans EFICAS), il faut # préalablement remettre ce pointeur à 0 - index_etape=self.etapes.index(etape) + if etape: + index_etape=self.etapes.index(etape) + else: + index_etape=len(self.etapes) + if index_etape >= self.index_etape_courante: # On calcule le contexte en partant du contexte existant d=self.current_context @@ -226,7 +253,7 @@ class MACRO_ETAPE(N_ETAPE.ETAPE): def supprime(self): """ Méthode qui supprime toutes les références arrières afin que - l'objet puisse être correctement détruit par le garbage collector + l'objet puisse etre correctement détruit par le garbage collector """ N_MCCOMPO.MCCOMPO.supprime(self) self.jdc=None @@ -332,31 +359,60 @@ class MACRO_ETAPE(N_ETAPE.ETAPE): raise AsException("Le type du concept produit %s devrait etre une sur classe de %s" %(sd.__class__,sdprod)) # La propriete du concept est transferee a l'etape avec le type attendu par l'étape etape.sd=sd - #sd.__call__=sdprod - #XXX Il semble plus logique que ce soit class et non pas call ??? - sd.__class__=sdprod sd.etape=etape + # On donne au concept le type produit par la sous commande. + # Le principe est le suivant : apres avoir verifie que le type deduit par la sous commande + # est bien coherent avec celui initialement affecte par la macro (voir ci dessus) + # on affecte au concept ce type car il peut etre plus precis (derive, en general) + sd.__class__=sdprod + # On force également le nom stocké dans l'attribut sdnom : on lui donne le nom + # du concept associé à nomsd + etape.sdnom=sd.nom + elif etape.reuse != None: + # On est dans le cas d'une commande avec reutilisation d'un concept existant + # get_sd_prod fait le necessaire : verifications, associations, etc. mais ne cree + # pas un nouveau concept. Il retourne le concept reutilise + sd= etape.get_sd_prod() + # Dans le cas d'un concept nomme automatiquement : _xxx, __xxx, + # On force le nom stocke dans l'attribut sdnom de l'objet etape : on lui donne le nom + # du concept reutilise (sd ou etape.reuse c'est pareil) + # Ceci est indispensable pour eviter des erreurs lors des verifications des macros + # En effet une commande avec reutilisation d'un concept verifie que le nom de + # la variable a gauche du signe = est le meme que celui du concept reutilise. + # Lorsqu'une telle commande apparait dans une macro, on supprime cette verification. + if etape.sdnom[0] == '_': + etape.sdnom=sd.nom else: + # On est dans le cas de la creation d'un nouveau concept sd= etape.get_sd_prod() - if sd != None and etape.reuse == None: - # ATTENTION : On ne nomme la SD que dans le cas de non reutilisation d un concept + if sd != None : self.NommerSdprod(sd,nomsd) return sd - def NommerSdprod(self,sd,sdnom): + def NommerSdprod(self,sd,sdnom,restrict='non'): """ Cette methode est appelee par les etapes internes de la macro La macro appelle le JDC pour valider le nommage On considere que l espace de nom est unique et géré par le JDC Si le nom est deja utilise, l appel leve une exception + Si restrict=='non', on insere le concept dans le contexte de la macro + Si restrict=='oui', on n'insere pas le concept dans le contexte de la macro """ + # Normalement, lorsqu'on appelle cette methode, on ne veut nommer que des concepts nouvellement crees. + # Le filtrage sur les concepts a creer ou a ne pas creer est fait dans la methode + # create_sdprod. La seule chose a verifier apres conversion eventuelle du nom + # est de verifier que le nom n'est pas deja attribue. Ceci est fait en delegant + # au JDC par l'intermediaire du parent. + #XXX attention inconsistence : prefix et gcncon ne sont pas # définis dans le package Noyau. La methode NommerSdprod pour # les macros devrait peut etre etre déplacée dans Build ??? + if CONTEXT.debug : print "MACRO.NommerSdprod: ",sd,sdnom if hasattr(self,'prefix'): # Dans le cas de l'include_materiau on ajoute un prefixe au nom du concept if sdnom != self.prefix:sdnom=self.prefix+sdnom + if self.Outputs.has_key(sdnom): # Il s'agit d'un concept de sortie de la macro produit par une sous commande sdnom=self.Outputs[sdnom].nom @@ -377,14 +433,21 @@ class MACRO_ETAPE(N_ETAPE.ETAPE): sdnom=self.gcncon('.') else: sdnom=self.gcncon('_') - if self.sd != None and self.sd.nom == sdnom : - # Il s'agit du concept produit par la macro, il a deja ete nomme. - # On se contente de donner le meme nom au concept produit par la sous commande - # sans passer par la routine de nommage - sd.nom=sdnom else: - # On propage le nommage au contexte superieur - self.parent.NommerSdprod(sd,sdnom) + # On est dans le cas d'un nom de concept global. + pass + + if restrict == 'non': + # On demande le nommage au parent mais sans ajout du concept dans le contexte du parent + # car on va l'ajouter dans le contexte de la macro + self.parent.NommerSdprod(sd,sdnom,restrict='oui') + # On ajoute dans le contexte de la macro les concepts nommes + # Ceci est indispensable pour les CO (macro) dans un INCLUDE + self.g_context[sdnom]=sd + else: + # La demande de nommage vient probablement d'une macro qui a mis + # le concept dans son contexte. On ne traite plus que le nommage (restrict="oui") + self.parent.NommerSdprod(sd,sdnom,restrict='oui') def delete_concept_after_etape(self,etape,sd): """ diff --git a/Noyau/N_MCBLOC.py b/Noyau/N_MCBLOC.py index 9792b2c7..0b05c2de 100644 --- a/Noyau/N_MCBLOC.py +++ b/Noyau/N_MCBLOC.py @@ -1,3 +1,23 @@ +#@ MODIF N_MCBLOC 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe MCBLOC qui sert à controler la valeur d'un bloc de mots-clés par rapport à sa définition portée par un objet diff --git a/Noyau/N_MCCOMPO.py b/Noyau/N_MCCOMPO.py index 402c0b3e..da0d0b6a 100644 --- a/Noyau/N_MCCOMPO.py +++ b/Noyau/N_MCCOMPO.py @@ -1,3 +1,23 @@ +#@ MODIF N_MCCOMPO Noyau DATE 29/05/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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe MCCOMPO qui sert à factoriser les comportements des OBJECT composites @@ -60,7 +80,9 @@ class MCCOMPO(N_OBJECT.OBJECT): dico_valeurs = self.cree_dict_valeurs(mc_liste) for k,v in self.definition.entites.items(): if v.label != 'BLOC':continue - if v.verif_presence(dico_valeurs): + # condition and a or b : Equivalent de l'expression : condition ? a : b du langage C + globs= self.jdc and self.jdc.condition_context or {} + if v.verif_presence(dico_valeurs,globs): # Si le bloc existe : # 1- on le construit # 2- on l'ajoute à mc_liste @@ -157,8 +179,10 @@ class MCCOMPO(N_OBJECT.OBJECT): # Il nous reste à évaluer la présence des blocs en fonction du contexte qui a changé for k,v in self.definition.entites.items(): if v.label != 'BLOC' : continue - if v.verif_presence(dico): - # le bloc k doit être présent : on crée temporairement l'objet MCBLOC correspondant + # condition and a or b : Equivalent de l'expression : condition ? a : b du langage C + globs= self.jdc and self.jdc.condition_context or {} + if v.verif_presence(dico,globs): + # le bloc k doit etre présent : on crée temporairement l'objet MCBLOC correspondant # on lui passe un parent égal à None pour qu'il ne soit pas enregistré bloc = v(nom=k,val=None,parent=None) dico_bloc = bloc.cree_dict_valeurs() @@ -203,7 +227,7 @@ class MCCOMPO(N_OBJECT.OBJECT): def supprime(self): """ Méthode qui supprime toutes les références arrières afin que l'objet puisse - être correctement détruit par le garbage collector + etre correctement détruit par le garbage collector """ N_OBJECT.OBJECT.supprime(self) for child in self.mc_liste : diff --git a/Noyau/N_MCFACT.py b/Noyau/N_MCFACT.py index a312edbb..6cc2eca7 100644 --- a/Noyau/N_MCFACT.py +++ b/Noyau/N_MCFACT.py @@ -1,3 +1,23 @@ +#@ MODIF N_MCFACT 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe MCFACT qui sert à controler la valeur d'un mot-clé facteur par rapport à sa définition portée par un objet diff --git a/Noyau/N_MCLIST.py b/Noyau/N_MCLIST.py index 43f267f0..88fc4ac1 100644 --- a/Noyau/N_MCLIST.py +++ b/Noyau/N_MCLIST.py @@ -1,3 +1,23 @@ +#@ MODIF N_MCLIST 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe MCList qui sert à controler la valeur d'une liste de mots-clés facteur par rapport à sa définition portée par un objet @@ -44,7 +64,7 @@ class MCList(UserList.UserList): def supprime(self): """ Méthode qui supprime toutes les références arrières afin que l'objet puisse - être correctement détruit par le garbage collector + etre correctement détruit par le garbage collector """ self.parent = None self.etape = None @@ -73,7 +93,7 @@ class MCList(UserList.UserList): if k == name: if v.defaut != None : return v(None,k,None) # si on passe ici, c'est que l'on demande un fils qui n'est pas possible --> erreur - #print "Erreur : %s ne peut être un descendant de %s" %(name,self.nom) + #print "Erreur : %s ne peut etre un descendant de %s" %(name,self.nom) return None def isBLOC(self): diff --git a/Noyau/N_MCSIMP.py b/Noyau/N_MCSIMP.py index 4816f482..fc940f7d 100644 --- a/Noyau/N_MCSIMP.py +++ b/Noyau/N_MCSIMP.py @@ -1,3 +1,23 @@ +#@ MODIF N_MCSIMP 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe MCSIMP qui sert à controler la valeur d'un mot-clé simple par rapport à sa définition portée par un objet diff --git a/Noyau/N_OBJECT.py b/Noyau/N_OBJECT.py index fde96fa0..48712790 100644 --- a/Noyau/N_OBJECT.py +++ b/Noyau/N_OBJECT.py @@ -1,3 +1,23 @@ +#@ MODIF N_OBJECT 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe OBJECT classe mère de tous les objets servant à controler les valeurs par rapport aux définitions @@ -27,7 +47,7 @@ class OBJECT: def supprime(self): """ Méthode qui supprime les références arrières suffisantes pour - que l'objet puisse être correctement détruit par le + que l'objet puisse etre correctement détruit par le garbage collector """ self.parent = None diff --git a/Noyau/N_OPER.py b/Noyau/N_OPER.py index f7daa99a..dd9812e8 100644 --- a/Noyau/N_OPER.py +++ b/Noyau/N_OPER.py @@ -1,3 +1,23 @@ +#@ MODIF N_OPER 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe de definition OPER qui permet de spécifier les caractéristiques d'un opérateur @@ -39,7 +59,7 @@ class OPER(N_ENTITE.ENTITE): non répétable ne doit apparaitre qu'une fois dans une exécution. C'est du ressort de l'objet gérant le contexte d'exécution de vérifier cette contrainte. - - fr : commentaire associé en français + - fr : commentaire associé en francais - ang : commentaire associé en anglais @@ -50,7 +70,7 @@ class OPER(N_ENTITE.ENTITE): - op_init : cet attribut vaut None ou une fonction. Si cet attribut ne vaut pas None, cette fonction est exécutée lors des phases d'initialisation de l'étape associée. - - niveau : indique le niveau dans lequel est rangé l'opérateur. Les opérateurs peuvent être + - niveau : indique le niveau dans lequel est rangé l'opérateur. Les opérateurs peuvent etre rangés par niveau. Ils apparaissent alors exclusivement dans leur niveau de rangement. Si niveau vaut None, l'opérateur est rangé au niveau global. @@ -120,17 +140,17 @@ class OPER(N_ENTITE.ENTITE): Méthode de vérification des attributs de définition """ if type(self.regles) != types.TupleType : - self.cr.fatal("L'attribut 'regles' doit être un tuple : %s" %`self.regles`) + self.cr.fatal("L'attribut 'regles' doit etre un tuple : %s" %`self.regles`) if type(self.fr) != types.StringType : - self.cr.fatal("L'attribut 'fr' doit être une chaîne de caractères : %s" %`self.fr`) + self.cr.fatal("L'attribut 'fr' doit etre une chaine de caractères : %s" %`self.fr`) if self.reentrant not in ('o','n','f'): self.cr.fatal("L'attribut 'reentrant' doit valoir 'o','n' ou 'f' : %s" %`self.reentrant`) if type(self.docu) != types.StringType : - self.cr.fatal("L'attribut 'docu' doit être une chaîne de caractères : %s" %`self.docu` ) + self.cr.fatal("L'attribut 'docu' doit etre une chaine de caractères : %s" %`self.docu` ) if type(self.nom) != types.StringType : - self.cr.fatal("L'attribut 'nom' doit être une chaîne de caractères : %s" %`self.nom`) + self.cr.fatal("L'attribut 'nom' doit etre une chaine de caractères : %s" %`self.nom`) if type(self.op) != types.IntType : - self.cr.fatal("L'attribut 'op' doit être un entier signé : %s" %`self.op`) + self.cr.fatal("L'attribut 'op' doit etre un entier signé : %s" %`self.op`) self.verif_cata_regles() def supprime(self): diff --git a/Noyau/N_PROC.py b/Noyau/N_PROC.py index 3a35d98f..173070fb 100644 --- a/Noyau/N_PROC.py +++ b/Noyau/N_PROC.py @@ -1,3 +1,23 @@ +#@ MODIF N_PROC 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe de definition PROC qui permet de spécifier les caractéristiques d'une procédure @@ -34,7 +54,7 @@ class PROC(N_ENTITE.ENTITE): non répétable ne doit apparaitre qu'une fois dans une exécution. C'est du ressort de l'objet gérant le contexte d'exécution de vérifier cette contrainte. - - fr : commentaire associé en français + - fr : commentaire associé en francais - ang : commentaire associé en anglais @@ -45,7 +65,7 @@ class PROC(N_ENTITE.ENTITE): - op_init : cet attribut vaut None ou une fonction. Si cet attribut ne vaut pas None, cette fonction est exécutée lors des phases d'initialisation de l'étape associée. - - niveau : indique le niveau dans lequel est rangé l'opérateur. Les opérateurs peuvent être + - niveau : indique le niveau dans lequel est rangé l'opérateur. Les opérateurs peuvent etre rangés par niveau. Ils apparaissent alors exclusivement dans leur niveau de rangement. Si niveau vaut None, l'opérateur est rangé au niveau global. @@ -112,17 +132,17 @@ class PROC(N_ENTITE.ENTITE): Méthode de vérification des attributs de définition """ if type(self.regles) != types.TupleType : - self.cr.fatal("L'attribut 'regles' doit être un tuple : %s" %`self.regles`) + self.cr.fatal("L'attribut 'regles' doit etre un tuple : %s" %`self.regles`) if type(self.fr) != types.StringType : - self.cr.fatal("L'attribut 'fr' doit être une chaîne de caractères : %s" %`self.fr`) + self.cr.fatal("L'attribut 'fr' doit etre une chaine de caractères : %s" %`self.fr`) if self.reentrant not in ('o','n','f'): self.cr.fatal("L'attribut 'reentrant' doit valoir 'o','n' ou 'f' : %s" %`self.reentrant`) if type(self.docu) != types.StringType : - self.cr.fatal("L'attribut 'docu' doit être une chaîne de caractères : %s" %`self.docu` ) + self.cr.fatal("L'attribut 'docu' doit etre une chaine de caractères : %s" %`self.docu` ) if type(self.nom) != types.StringType : - self.cr.fatal("L'attribut 'nom' doit être une chaîne de caractères : %s" %`self.nom`) + self.cr.fatal("L'attribut 'nom' doit etre une chaine de caractères : %s" %`self.nom`) if type(self.op) != types.IntType : - self.cr.fatal("L'attribut 'op' doit être un entier signé : %s" %`self.op`) + self.cr.fatal("L'attribut 'op' doit etre un entier signé : %s" %`self.op`) self.verif_cata_regles() def supprime(self): diff --git a/Noyau/N_PROC_ETAPE.py b/Noyau/N_PROC_ETAPE.py index 3ebc123c..c055c246 100644 --- a/Noyau/N_PROC_ETAPE.py +++ b/Noyau/N_PROC_ETAPE.py @@ -1,3 +1,23 @@ +#@ MODIF N_PROC_ETAPE 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe PROC_ETAPE qui sert à vérifier et à exécuter une procédure @@ -94,7 +114,7 @@ class PROC_ETAPE(N_ETAPE.ETAPE): def supprime(self): """ Méthode qui supprime toutes les références arrières afin que l'objet puisse - être correctement détruit par le garbage collector + etre correctement détruit par le garbage collector """ N_MCCOMPO.MCCOMPO.supprime(self) self.jdc=None diff --git a/Noyau/N_REGLE.py b/Noyau/N_REGLE.py index c1e64735..e3d6878d 100644 --- a/Noyau/N_REGLE.py +++ b/Noyau/N_REGLE.py @@ -1,3 +1,23 @@ +#@ 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe mere pour les classes de definition des regles d exclusion. diff --git a/Noyau/N_SIMP.py b/Noyau/N_SIMP.py index f605ebb1..abcccfd6 100644 --- a/Noyau/N_SIMP.py +++ b/Noyau/N_SIMP.py @@ -1,3 +1,23 @@ +#@ MODIF N_SIMP 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe de definition SIMP qui permet de spécifier les caractéristiques des mots clés simples """ @@ -82,21 +102,21 @@ class SIMP(N_ENTITE.ENTITE): """ if type(self.min) != types.IntType : if self.min != '**': - self.cr.fatal("L'attribut 'min' doit être un entier : "+`self.min`) + self.cr.fatal("L'attribut 'min' doit etre un entier : "+`self.min`) if type(self.max) != types.IntType : if self.max != '**' : - self.cr.fatal("L'attribut 'max' doit être un entier : "+`self.max`) + self.cr.fatal("L'attribut 'max' doit etre un entier : "+`self.max`) if self.min > self.max : self.cr.fatal("Nombres d'occurrence min et max invalides : %s %s" %(`self.min`,`self.max`)) if type(self.fr) != types.StringType : - self.cr.fatal("L'attribut 'fr' doit être une chaîne de caractères : %s" +`self.fr`) + self.cr.fatal("L'attribut 'fr' doit etre une chaine de caractères : %s" +`self.fr`) if self.statut not in ['o','f','c','d']: self.cr.fatal("L'attribut 'statut' doit valoir 'o','f','c' ou 'd' : %s" %`self.statut`) if self.homo != 0 and self.homo != 1 : self.cr.fatal("L'attribut 'homo' doit valoir 0 ou 1 : %s" %`self.homo`) if self.into != None : if type(self.into) != types.TupleType : - self.cr.fatal("L'attribut 'into' doit être un tuple : %s" %`self.into`) + self.cr.fatal("L'attribut 'into' doit etre un tuple : %s" %`self.into`) if self.position not in ['local','global','global_jdc']: self.cr.fatal("L'attribut 'position' doit valoir 'local','global' ou 'global_jdc' : %s" %`self.position`) diff --git a/Noyau/N__F.py b/Noyau/N__F.py index 4833ced7..8b98f02c 100644 --- a/Noyau/N__F.py +++ b/Noyau/N__F.py @@ -1,3 +1,23 @@ +#@ MODIF N__F 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. +# +# 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. +# +# +# ====================================================================== import UserDict class _F(UserDict.UserDict): diff --git a/Noyau/N_utils.py b/Noyau/N_utils.py index dab93bab..0909cfab 100644 --- a/Noyau/N_utils.py +++ b/Noyau/N_utils.py @@ -1,3 +1,23 @@ +#@ MODIF N_utils 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient des fonctions utilitaires """ @@ -64,10 +84,10 @@ def prbanner(s): def repr_float(valeur): """ - Cette fonction représente le réel valeur comme une chaîne de caractères + Cette fonction représente le réel valeur comme une chaine de caractères sous forme mantisse exposant si nécessaire cad si le nombre contient plus de 5 caractères - NB : valeur est un réel au format Python ou une chaîne de caractères représentant un réel + NB : valeur est un réel au format Python ou une chaine de caractères représentant un réel """ if type(valeur) == types.StringType : valeur = eval(valeur) if valeur == 0. : return '0.0' diff --git a/Noyau/__init__.py b/Noyau/__init__.py index 13f30aa5..7a9e6429 100644 --- a/Noyau/__init__.py +++ b/Noyau/__init__.py @@ -1,3 +1,23 @@ +#@ MODIF __init__ 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. +# +# 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. +# +# +# ====================================================================== """ Ce package fournit les classes de base d'EFICAS. Ces classes permettent d'effectuer quelques opérations basiques : diff --git a/Noyau/context.py b/Noyau/context.py index 8c5006b1..104dc80a 100644 --- a/Noyau/context.py +++ b/Noyau/context.py @@ -1,3 +1,23 @@ +#@ MODIF context 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. +# +# 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. +# +# +# ====================================================================== _root=None _cata=None debug=0 diff --git a/Noyau/nommage.py b/Noyau/nommage.py index 566a52ff..057badd4 100644 --- a/Noyau/nommage.py +++ b/Noyau/nommage.py @@ -1,3 +1,23 @@ +#@ MODIF nommage 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. +# +# 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. +# +# +# ====================================================================== """ Ce module sert à nommer les concepts produits par les commandes. Le nom du concept est obtenu en appelant la fonction GetNomConceptResultat diff --git a/Noyau/properties.py b/Noyau/properties.py index d57cca8b..41ab579d 100644 --- a/Noyau/properties.py +++ b/Noyau/properties.py @@ -1,3 +1,24 @@ -version = "6.2.24" -date = "15/03/2002" - +#@ MODIF properties Accas DATE 29/08/2002 AUTEUR gcbhhhh M.ADMINISTRATEUR +# CONFIGURATION MANAGEMENT OF EDF VERSION +# RESPONSABLE D6BHHHH J-P.LEFEBVRE +# ====================================================================== +# COPYRIGHT (C) 1991 - 2001 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. +# ====================================================================== +# IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR +# DE LA VERSION DU CODE_ASTER ASSOCIE +#---------------------------------------------------------------------- +version = "6.3.14" +date = "29/08/2002" diff --git a/Validation/V_AU_MOINS_UN.py b/Validation/V_AU_MOINS_UN.py index fb404197..20fe1438 100644 --- a/Validation/V_AU_MOINS_UN.py +++ b/Validation/V_AU_MOINS_UN.py @@ -1,3 +1,23 @@ +#@ MODIF V_AU_MOINS_UN Validation 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. +# +# 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 AU_MOINS_UN: """ diff --git a/Validation/V_A_CLASSER.py b/Validation/V_A_CLASSER.py index 6c7439a7..ca4fc4bc 100644 --- a/Validation/V_A_CLASSER.py +++ b/Validation/V_A_CLASSER.py @@ -1,3 +1,23 @@ +#@ MODIF V_A_CLASSER Validation 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. +# +# 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. +# +# +# ====================================================================== import types @@ -16,13 +36,13 @@ class A_CLASSER: elif type(args[0]) == types.StringType: self.args0 = (args[0],) else : - print "Le premier argument de :",args," doit être un tuple ou une string" + print "Le premier argument de :",args," doit etre un tuple ou une string" if type(args[1]) == types.TupleType: self.args1 = args[1] elif type(args[1]) == types.StringType: self.args1 = (args[1],) else : - print "Le deuxième argument de :",args," doit être un tuple ou une string" + print "Le deuxième argument de :",args," doit etre un tuple ou une string" # création de la liste des mcs liste = [] for arg0 in self.args0: @@ -62,7 +82,7 @@ class A_CLASSER: couple.append(nom) if len(couple) > 0 : l_couples.append(tuple(couple)) - # l_couples peut être vide si l'on n'a pas réussi à trouver au moins un + # l_couples peut etre vide si l'on n'a pas réussi à trouver au moins un # élément de self.mcs if len(l_couples) == 0 : message = "- Il faut qu'au moins un objet de la liste : "+`self.args0`+\ @@ -76,7 +96,7 @@ class A_CLASSER: if len(couple) == 1 : # on a un 'faux' couple if couple[0] not in self.args1: - text = text+"- L'objet : "+couple[0]+" doit être suivi d'un objet de la liste : "+\ + text = text+"- L'objet : "+couple[0]+" doit etre suivi d'un objet de la liste : "+\ `self.args1`+'\n' test = 0 else : @@ -84,11 +104,11 @@ class A_CLASSER: # ce n'est pas le seul couple --> licite break else : - text = text+"- L'objet : "+couple[0]+" doit être précédé d'un objet de la liste : "+\ + text = text+"- L'objet : "+couple[0]+" doit etre précédé d'un objet de la liste : "+\ `self.args0`+'\n' test = 0 elif couple not in self.liste_couples : - text = text+"- L'objet : "+couple[0]+" ne peut être suivi de : "+couple[1]+'\n' + text = text+"- L'objet : "+couple[0]+" ne peut etre suivi de : "+couple[1]+'\n' test = 0 return text,test diff --git a/Validation/V_ENSEMBLE.py b/Validation/V_ENSEMBLE.py index d672232a..86665652 100644 --- a/Validation/V_ENSEMBLE.py +++ b/Validation/V_ENSEMBLE.py @@ -1,3 +1,23 @@ +#@ MODIF V_ENSEMBLE Validation 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. +# +# 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 ENSEMBLE: """ @@ -28,7 +48,7 @@ class ENSEMBLE: for mc in self.mcs: if mc != pivot : if not args.has_key(mc): - text = text + "- "+ pivot + " étant présent, "+mc+" doit être présent"+'\n' + text = text + "- "+ pivot + " étant présent, "+mc+" doit etre présent"+'\n' test = 0 return text,test diff --git a/Validation/V_ETAPE.py b/Validation/V_ETAPE.py index 1152f81f..904333d5 100644 --- a/Validation/V_ETAPE.py +++ b/Validation/V_ETAPE.py @@ -1,3 +1,23 @@ +#@ MODIF V_ETAPE Validation DATE 26/06/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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe mixin ETAPE qui porte les méthodes nécessaires pour réaliser la validation d'un objet de type ETAPE @@ -7,7 +27,7 @@ utilisée par héritage multiple pour composer les traitements. """ # Modules Python -import string,types +import string,types,sys import traceback # Modules EFICAS @@ -57,7 +77,7 @@ class ETAPE(V_MCCOMPO.MCCOMPO): else : if cr == 'oui' : self.cr.fatal("Concept retourné non défini") valid = 0 - # on teste, si elle existe, le nom de la sd (sa longueur doit être <= 8 caractères) + # on teste, si elle existe, le nom de la sd (sa longueur doit etre <= 8 caractères) if self.sd != None : # la SD existe déjà : on regarde son nom if self.sd.nom != None : @@ -118,15 +138,24 @@ class ETAPE(V_MCCOMPO.MCCOMPO): # Erreur pendant le calcul du type retourné if CONTEXT.debug:traceback.print_exc() self.sd=None - if cr == 'oui' : self.cr.fatal('Impossible d affecter un type au résultat') + if cr == 'oui' : + l=traceback.format_exception(sys.exc_info()[0], + sys.exc_info()[1], + sys.exc_info()[2]) + self.cr.fatal('Impossible d affecter un type au résultat\n'+string.join(l[2:])) return 0 # on teste maintenant si la SD est r\351utilis\351e ou s'il faut la cr\351er + valid=1 if self.reuse: if AsType(self.reuse) != sd_prod: if cr == 'oui' : self.cr.fatal('Type de concept reutilise incompatible avec type produit') - return 0 - self.sd=self.reuse - return 1 + valid= 0 + if self.sdnom[0] != '_' and self.reuse.nom != self.sdnom: + # Le nom de la variable de retour (self.sdnom) doit etre le meme que celui du concept reutilise (self.reuse.nom) + if cr == 'oui' : + self.cr.fatal('Concept reutilise : le nom de la variable de retour devrait etre %s et non %s' %(self.reuse.nom,self.sdnom)) + valid= 0 + if valid:self.sd=self.reuse else: if sd_prod == None:# Pas de concept retourné # Que faut il faire de l eventuel ancien sd ? @@ -138,10 +167,12 @@ class ETAPE(V_MCCOMPO.MCCOMPO): else: # Le sd n existait pas , on ne le crée pas if cr == 'oui' : self.cr.fatal("Concept retourné non défini") - return 0 + valid=0 if self.definition.reentrant == 'o': - self.reuse = self.sd - return 1 + if cr == 'oui' : self.cr.fatal('Commande obligatoirement reentrante : specifier reuse=concept') + valid=0 + #self.reuse = self.sd + return valid def report(self): diff --git a/Validation/V_EXCLUS.py b/Validation/V_EXCLUS.py index fa720165..7bed078d 100644 --- a/Validation/V_EXCLUS.py +++ b/Validation/V_EXCLUS.py @@ -1,3 +1,23 @@ +#@ MODIF V_EXCLUS Validation 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. +# +# 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 EXCLUS: """ diff --git a/Validation/V_JDC.py b/Validation/V_JDC.py index 1f4edeaf..38d8056f 100644 --- a/Validation/V_JDC.py +++ b/Validation/V_JDC.py @@ -1,3 +1,23 @@ +#@ MODIF V_JDC Validation DATE 29/05/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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe mixin JDC qui porte les méthodes nécessaires pour réaliser la validation d'un objet de type JDC @@ -25,11 +45,11 @@ class JDC(V_MCCOMPO.MCCOMPO): self.cr.purge() self.cr.debut="DEBUT CR validation : "+self.nom self.cr.fin="FIN CR validation :"+self.nom - self.state = 'modified' - self.isvalid(cr='oui') for e in self.etapes : if e.isactif(): self.cr.add(e.report()) + self.state = 'modified' + self.isvalid(cr='oui') return self.cr def isvalid(self,cr='non'): diff --git a/Validation/V_MACRO_ETAPE.py b/Validation/V_MACRO_ETAPE.py index b0531a12..878a14da 100644 --- a/Validation/V_MACRO_ETAPE.py +++ b/Validation/V_MACRO_ETAPE.py @@ -1,3 +1,23 @@ +#@ MODIF V_MACRO_ETAPE Validation DATE 26/06/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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe mixin MACRO_ETAPE qui porte les méthodes nécessaires pour réaliser la validation d'un objet de type MACRO_ETAPE @@ -7,7 +27,7 @@ utilisée par héritage multiple pour composer les traitements. """ # Modules Python -import string,types +import string,types,sys import traceback # Modules EFICAS @@ -46,7 +66,7 @@ class MACRO_ETAPE(V_ETAPE.ETAPE): old_valid = self.valid else: old_valid = None - # on teste, si elle existe, le nom de la sd (sa longueur doit être <= 8 caractères) + # on teste, si elle existe, le nom de la sd (sa longueur doit etre <= 8 caractères) if self.sd != None : # la SD existe déjà : on regarde son nom if self.sd.get_name() != None : @@ -120,15 +140,25 @@ class MACRO_ETAPE(V_ETAPE.ETAPE): # Erreur pendant le calcul du type retourné if CONTEXT.debug:traceback.print_exc() self.sd=None - if cr == 'oui' : self.cr.fatal('Impossible d affecter un type au résultat') + if cr == 'oui' : + l=traceback.format_exception(sys.exc_info()[0], + sys.exc_info()[1], + sys.exc_info()[2]) + self.cr.fatal('Impossible d affecter un type au résultat\n'+string.join(l[2:])) return 0 # on teste maintenant si la SD est r\351utilis\351e ou s'il faut la cr\351er + valid=1 if self.reuse: + # Un concept reutilise a ete specifie if AsType(self.reuse) != sd_prod: if cr == 'oui' : self.cr.fatal('Type de concept reutilise incompatible avec type produit') - return 0 - self.sd=self.reuse - return 1 + valid=0 + if self.sdnom[0] != '_' and self.reuse.nom != self.sdnom: + # Le nom de la variable de retour (self.sdnom) doit etre le meme que celui du concept reutilise (self.reuse.nom) + if cr == 'oui' : + self.cr.fatal('Concept reutilise : le nom de la variable de retour devrait etre %s et non %s' %(self.reuse.nom,self.sdnom)) + valid= 0 + if valid:self.sd=self.reuse else: if sd_prod == None:# Pas de concept retourné # Que faut il faire de l eventuel ancien sd ? @@ -142,10 +172,12 @@ class MACRO_ETAPE(V_ETAPE.ETAPE): # Le sd n existait pas , on ne le crée pas self.typret=sd_prod if cr == 'oui' : self.cr.fatal("Concept retourné non défini") - return 0 + valid=0 if self.definition.reentrant == 'o': - self.reuse = self.sd - return 1 + if cr == 'oui' : self.cr.fatal('Commande obligatoirement reentrante : specifier reuse=concept') + valid=0 + #self.reuse = self.sd + return valid def report(self): """ diff --git a/Validation/V_MCBLOC.py b/Validation/V_MCBLOC.py index 09a67230..16b69520 100644 --- a/Validation/V_MCBLOC.py +++ b/Validation/V_MCBLOC.py @@ -1,3 +1,23 @@ +#@ MODIF V_MCBLOC Validation 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe mixin MCBLOC qui porte les méthodes nécessaires pour réaliser la validation d'un objet de type MCBLOC diff --git a/Validation/V_MCCOMPO.py b/Validation/V_MCCOMPO.py index 4913e48d..7f9b4eb0 100644 --- a/Validation/V_MCCOMPO.py +++ b/Validation/V_MCCOMPO.py @@ -1,3 +1,23 @@ +#@ MODIF V_MCCOMPO Validation DATE 29/05/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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe de base MCCOMPO qui sert à factoriser les traitements des objets composites de type OBJECT @@ -36,14 +56,14 @@ class MCCOMPO: self.cr=self.CR() self.cr.debut = self.txt_nat+self.nom self.cr.fin = "Fin "+self.txt_nat+self.nom + for child in self.mc_liste: + self.cr.add(child.report()) self.state = 'modified' try: self.isvalid(cr='oui') except AsException,e: if CONTEXT.debug : traceback.print_exc() self.cr.fatal(string.join((self.txt_nat,self.nom,str(e)))) - for child in self.mc_liste: - self.cr.add(child.report()) return self.cr def verif_regles(self): diff --git a/Validation/V_MCFACT.py b/Validation/V_MCFACT.py index 858e53f7..6d15b036 100644 --- a/Validation/V_MCFACT.py +++ b/Validation/V_MCFACT.py @@ -1,3 +1,23 @@ +#@ MODIF V_MCFACT Validation 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe mixin MCFACT qui porte les méthodes nécessaires pour réaliser la validation d'un objet de type MCFACT diff --git a/Validation/V_MCLIST.py b/Validation/V_MCLIST.py index 0dcc38f3..88e2cfd3 100644 --- a/Validation/V_MCLIST.py +++ b/Validation/V_MCLIST.py @@ -1,3 +1,23 @@ +#@ MODIF V_MCLIST Validation DATE 29/05/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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe mixin MCList qui porte les méthodes nécessaires pour réaliser la validation d'un objet de type MCList @@ -44,7 +64,7 @@ class MCList: num = num+1 if not i.isvalid(): if cr=='oui': - self.cr.fatal(string.join(["L'occurrence n°",`num`," du mot-clé facteur :",self.nom," n'est pas valide"])) + self.cr.fatal(string.join(["L'occurrence n",`num`," du mot-clé facteur :",self.nom," n'est pas valide"])) test = 0 return test @@ -54,6 +74,8 @@ class MCList: """ self.cr=self.CR( debut = "Mot-clé facteur multiple : "+self.nom, fin = "Fin Mot-clé facteur multiple : "+self.nom) + for i in self.data: + self.cr.add(i.report()) # XXX j'ai mis l'état en commentaire car il n'est utilisé ensuite #self.state = 'modified' try : @@ -61,7 +83,5 @@ class MCList: except AsException,e: if CONTEXT.debug : traceback.print_exc() self.cr.fatal(string.join(["Mot-clé facteur multiple : ",self.nom,str(e)])) - for i in self.data: - self.cr.add(i.report()) return self.cr diff --git a/Validation/V_MCSIMP.py b/Validation/V_MCSIMP.py index 74af972a..462147d5 100644 --- a/Validation/V_MCSIMP.py +++ b/Validation/V_MCSIMP.py @@ -1,3 +1,23 @@ +#@ MODIF V_MCSIMP Validation 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe mixin MCSIMP qui porte les méthodes nécessaires pour réaliser la validation d'un objet de type MCSIMP @@ -81,24 +101,24 @@ class MCSIMP: def verif_card(self,cr='non'): """ - un mot-clé simple ne peut être répété : - la cardinalité ici s'entend par la vérification que le nombre d'arguments de self.valeur - est bien compris entre self.min et self.max dans le cas où il s'agit d'une liste + un mot-clé simple ne peut etre répété : + la cardinalité ici s'entend par la vérification que le nombre d'arguments de self.valeur + est bien compris entre self.min et self.max dans le cas où il s'agit d'une liste """ card = 1 min=self.definition.min max=self.definition.max if type(self.valeur) in (types.ListType,types.TupleType) and 'C' not in self.definition.type : - if len(self.valeur) < min or len(self.valeur)>max: + if len(self.valeur) < min or len(self.valeur)>max: if cr == 'oui': self.cr.fatal("Nombre d'arguments %s incorrects pour %s (min = %s, max = %s)" %(`self.valeur`,self.nom,min,max)) card = 0 else: - if self.valeur == None : + if self.valeur == None : if min >= 1 : # on n'a pas d'objet et on en attend au moins un card=0 - else : + else : if min > 1: # on n'a qu'un objet et on en attend plus d'1 card = 0 @@ -116,17 +136,17 @@ class MCSIMP: """ if val != None: - valeur = val + valeur = val else: - valeur = self.valeur + valeur = self.valeur if valeur == None : - if cr == 'oui': + if cr == 'oui': self.cr.fatal("None n'est pas une valeur autorisée") - return 0 + return 0 if type(valeur) == types.TupleType: - # on peut avoir à faire à un complexe ou une liste de valeurs ... - if self.is_complexe(valeur) : return 1 - else: + # on peut avoir à faire à un complexe ou une liste de valeurs ... + if self.is_complexe(valeur) : return 1 + else: for val in valeur: if not self.verif_type(val=val,cr=cr) : return 0 return 1 @@ -135,26 +155,26 @@ class MCSIMP: if not self.verif_type(val=val,cr=cr) : return 0 return 1 else: - # on n'a pas de tuple ...il faut tester sur tous les types ou les valeurs possibles + # on n'a pas de tuple ...il faut tester sur tous les types ou les valeurs possibles # XXX Pourquoi into est il traité ici et pas seulement dans verif_into ??? - if self.definition.into != None : + if self.definition.into != None : try: if valeur in self.definition.into : return 1 else: if cr == 'oui': - self.cr.fatal("%s n'est pas une valeur autorisée" %valeur) + self.cr.fatal("%s n'est pas une valeur autorisée" %valeur) return 0 except: print "problème avec :",self.nom print 'valeur =',valeur return 0 - for type_permis in self.definition.type: + for type_permis in self.definition.type: if self.compare_type(valeur,type_permis) : return 1 - # si on sort de la boucle précédente par ici c'est que l'on n'a trouvé aucun type valable --> valeur refusée - if cr =='oui': + # si on sort de la boucle précédente par ici c'est que l'on n'a trouvé aucun type valable --> valeur refusée + if cr =='oui': self.cr.fatal("%s n'est pas d'un type autorisé" %`valeur`) - return 0 + return 0 def verif_into(self,cr='non'): """ @@ -163,64 +183,64 @@ class MCSIMP: entre val_min et val_max """ if self.definition.into == None : - #on est dans le cas d'un ensemble continu de valeurs possibles (intervalle) - if type(self.valeur)==types.TupleType : + #on est dans le cas d'un ensemble continu de valeurs possibles (intervalle) + if type(self.valeur)==types.TupleType : test = 1 for val in self.valeur : if type(val)!=types.StringType and type(val)!=types.InstanceType: test = test*self.isinintervalle(val,cr=cr) return test - else : + else : val = self.valeur if type(val)!=types.StringType and type(val)!=types.InstanceType: return self.isinintervalle(self.valeur,cr=cr) else : return 1 else : - # on est dans le cas d'un ensemble discret de valeurs possibles (into) - if type(self.valeur) == types.TupleType : + # on est dans le cas d'un ensemble discret de valeurs possibles (into) + if type(self.valeur) == types.TupleType : for e in self.valeur: if e not in self.definition.into: if cr=='oui': - self.cr.fatal(string.join(("La valeur :",`e`," n'est pas permise pour le mot-clé :",self.nom))) + self.cr.fatal(string.join(("La valeur :",`e`," n'est pas permise pour le mot-clé :",self.nom))) return 0 - else: + else: if self.valeur == None or self.valeur not in self.definition.into: if cr=='oui': self.cr.fatal(string.join(("La valeur :",`self.valeur`," n'est pas permise pour le mot-clé :",self.nom))) return 0 - return 1 + return 1 def is_complexe(self,valeur): """ Retourne 1 si valeur est un complexe, 0 sinon """ if type(valeur) == types.StringType : - # on teste une valeur issue d'une entry (valeur saisie depuis EFICAS) + # on teste une valeur issue d'une entry (valeur saisie depuis EFICAS) #XXX Il serait peut etre plus judicieux d'appeler une méthode de self.jdc #XXX qui retournerait l'objet résultat de l'évaluation #XXX ou meme de faire cette evaluation a l'exterieur de cette classe ?? if not self.jdc :return 0 - try : + try : valeur = eval(valeur,self.jdc.g_context) - except: + except: return 0 if type(valeur) == types.InstanceType : #XXX je n'y touche pas pour ne pas tout casser mais il serait #XXX préférable d'appeler une méthode de valeur : return valeur.is_type('C'), par exemple - if valeur.__class__.__name__ in ('EVAL','complexe'): + if valeur.__class__.__name__ in ('EVAL','complexe'): return 1 - elif valeur.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'): + elif valeur.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'): # il faut tester si la valeur du parametre est un entier #XXX ne serait ce pas plutot complexe ???? sinon expliquer return self.is_entier(valeur.valeur) - else: + else: print "Objet non reconnu dans is_complexe %s" %`valeur` return 0 elif type(valeur) != types.TupleType : - return 0 + return 0 else: - if len(valeur) != 3 : + if len(valeur) != 3 : return 0 - else: + else: if type(valeur[0]) != types.StringType : return 0 if string.strip(valeur[0]) not in ('RI','MP'): return 0 @@ -233,57 +253,57 @@ class MCSIMP: Retourne 1 si valeur est un reel, 0 sinon """ if type(valeur) == types.StringType : - # on teste une valeur issue d'une entry (valeur saisie depuis EFICAS) + # on teste une valeur issue d'une entry (valeur saisie depuis EFICAS) if not self.jdc :return 0 - try : + try : valeur = eval(valeur,self.jdc.g_context) - except: + except: return 0 if type(valeur) == types.InstanceType : #XXX je n'y touche pas pour ne pas tout casser mais il serait #XXX préférable d'appeler une méthode de valeur : return valeur.is_type('R'), par exemple #XXX ou valeur.is_reel() #XXX ou encore valeur.compare(self.is_reel) - if valeur.__class__.__name__ in ('EVAL','reel') : + if valeur.__class__.__name__ in ('EVAL','reel') : return 1 - elif valeur.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'): + elif valeur.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'): # il faut tester si la valeur du parametre est un réel return self.is_reel(valeur.valeur) - else: + else: print "Objet non reconnu dans is_reel %s" %`valeur` return 0 elif type(valeur) not in (types.IntType,types.FloatType,types.LongType): - # ce n'est pas un réel - return 0 + # ce n'est pas un réel + return 0 else: - return 1 + return 1 def is_entier(self,valeur): """ Retourne 1 si valeur est un entier, 0 sinon """ if type(valeur) == types.StringType : - # on teste une valeur issue d'une entry (valeur saisie depuis EFICAS) + # on teste une valeur issue d'une entry (valeur saisie depuis EFICAS) if not self.jdc :return 0 - try : + try : valeur = eval(valeur,self.jdc.g_context) - except: + except: return 0 if type(valeur) == types.InstanceType : #XXX je n'y touche pas pour ne pas tout casser mais il serait #XXX préférable d'appeler une méthode de valeur : return valeur.is_type('I'), par exemple - if valeur.__class__.__name__ in ('EVAL','entier') : + if valeur.__class__.__name__ in ('EVAL','entier') : return 1 - elif valeur.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'): + elif valeur.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'): # il faut tester si la valeur du parametre est un entier return self.is_entier(valeur.valeur) - else: + else: print "Objet non reconnu dans is_reel %s" %`valeur` return 0 elif type(valeur) not in (types.IntType,types.LongType): - # ce n'est pas un entier - return 0 + # ce n'est pas un entier + return 0 else: - return 1 - + return 1 + def is_shell(self,valeur): """ Retourne 1 si valeur est un shell, 0 sinon @@ -291,9 +311,9 @@ class MCSIMP: On impose juste que valeur soit une string """ if type(valeur) != types.StringType: - return 0 + return 0 else: - return 1 + return 1 def is_object_from(self,objet,classe): """ @@ -301,41 +321,41 @@ class MCSIMP: 0 sinon """ if type(objet) != types.InstanceType : - if type(objet) == types.StringType: + if type(objet) == types.StringType: if not self.jdc :return 0 try : objet = eval(objet,self.jdc.g_context) if type(objet) != types.InstanceType : return 0 except: return 0 - else: + else: return 0 if not objet.__class__ == classe and not issubclass(objet.__class__,classe): - return 0 + return 0 else: - return 1 + return 1 def compare_type(self,valeur,type_permis): """ Fonction booléenne qui retourne 1 si valeur est du type type_permis, 0 sinon """ if type(valeur) == types.InstanceType and valeur.__class__.__name__ == 'PARAMETRE': - if type(valeur.valeur) == types.TupleType : + if type(valeur.valeur) == types.TupleType : # on a à faire à un PARAMETRE qui définit une liste d'items # --> on teste sur la première car on n'accepte que les liste homogènes valeur = valeur.valeur[0] if type_permis == 'R': - return self.is_reel(valeur) + return self.is_reel(valeur) elif type_permis == 'I': - return self.is_entier(valeur) + return self.is_entier(valeur) elif type_permis == 'C': - return self.is_complexe(valeur) + return self.is_complexe(valeur) elif type_permis == 'shell': - return self.is_shell(valeur) + return self.is_shell(valeur) elif type_permis == 'TXM': - if type(valeur) != types.InstanceType: + if type(valeur) != types.InstanceType: return type(valeur)==types.StringType - else: + else: #XXX je n'y touche pas pour ne pas tout casser mais il serait #XXX préférable d'appeler une méthode de valeur : return valeur.is_type('TXM'), par exemple if valeur.__class__.__name__ == 'chaine' : @@ -346,17 +366,17 @@ class MCSIMP: else: return 0 elif type(type_permis) == types.ClassType: - # on ne teste pas certains objets de type GEOM , assd, ... + # on ne teste pas certains objets de type GEOM , assd, ... # On appelle la méthode de classe is_object de type_permis. # Comme valeur peut etre de n'importe quel type on utilise la fonction (is_object.im_func) # et non pas la methode (is_object) ce qui risquerait de provoquer des erreurs if type_permis.is_object.im_func(valeur): return 1 - else : + else : return self.is_object_from(valeur,type_permis) else: - print "Type non encore géré %s" %`type_permis` - print self.nom,self.parent.nom,self.jdc.fichier + print "Type non encore géré %s" %`type_permis` + print self.nom,self.parent.nom,self.jdc.fichier def isinintervalle(self,valeur,cr='non'): """ @@ -364,27 +384,27 @@ class MCSIMP: le domaine de définition donné dans le catalogue, 0 sinon. """ if type(valeur) not in (types.IntType,types.FloatType,types.LongType) : - return 1 + return 1 else : - min = self.definition.val_min - max = self.definition.val_max - if min == '**': min = valeur -1 - if max == '**': max = valeur +1 - if valeur < min or valeur > max : + min = self.definition.val_min + max = self.definition.val_max + if min == '**': min = valeur -1 + if max == '**': max = valeur +1 + if valeur < min or valeur > max : if cr=='oui': self.cr.fatal(string.join(("La valeur :",`valeur`," du mot-clé ",self.nom,\ " est en dehors du domaine de validité [",`min`,",",`max`,"]"))) return 0 - else : + else : return 1 def init_modif_up(self): """ Propage l'état modifié au parent s'il existe et n'est l'objet - lui-meme + lui-meme """ if self.parent and self.parent != self : - self.parent.state = 'modified' + self.parent.state = 'modified' def report(self): """ génère le rapport de validation de self """ @@ -393,10 +413,10 @@ class MCSIMP: self.cr.fin = "Fin Mot-clé simple : "+self.nom self.state = 'modified' try: - self.isvalid(cr='oui') + self.isvalid(cr='oui') except AsException,e: - if CONTEXT.debug : traceback.print_exc() - self.cr.fatal(string.join(("Mot-clé simple : ",self.nom,str(e)))) + if CONTEXT.debug : traceback.print_exc() + self.cr.fatal(string.join(("Mot-clé simple : ",self.nom,str(e)))) return self.cr diff --git a/Validation/V_PRESENT_ABSENT.py b/Validation/V_PRESENT_ABSENT.py index b6f01aec..84feda6b 100644 --- a/Validation/V_PRESENT_ABSENT.py +++ b/Validation/V_PRESENT_ABSENT.py @@ -1,3 +1,23 @@ +#@ MODIF V_PRESENT_ABSENT Validation 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. +# +# 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 PRESENT_ABSENT: """ diff --git a/Validation/V_PRESENT_PRESENT.py b/Validation/V_PRESENT_PRESENT.py index 2216e93a..f192e035 100644 --- a/Validation/V_PRESENT_PRESENT.py +++ b/Validation/V_PRESENT_PRESENT.py @@ -1,3 +1,23 @@ +#@ MODIF V_PRESENT_PRESENT Validation 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. +# +# 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 PRESENT_PRESENT: """ diff --git a/Validation/V_PROC_ETAPE.py b/Validation/V_PROC_ETAPE.py index 4120de83..7b6b798a 100644 --- a/Validation/V_PROC_ETAPE.py +++ b/Validation/V_PROC_ETAPE.py @@ -1,3 +1,23 @@ +#@ MODIF V_PROC_ETAPE Validation 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. +# +# 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. +# +# +# ====================================================================== """ Ce module contient la classe mixin PROC_ETAPE qui porte les méthodes nécessaires pour réaliser la validation d'un objet de type PROC_ETAPE diff --git a/Validation/V_UN_PARMI.py b/Validation/V_UN_PARMI.py index 93846abc..31ca7478 100644 --- a/Validation/V_UN_PARMI.py +++ b/Validation/V_UN_PARMI.py @@ -1,3 +1,23 @@ +#@ MODIF V_UN_PARMI Validation 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. +# +# 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 UN_PARMI: """ diff --git a/Validation/__init__.py b/Validation/__init__.py index bb26b859..19f9a294 100644 --- a/Validation/__init__.py +++ b/Validation/__init__.py @@ -1,3 +1,23 @@ +#@ MODIF __init__ Validation 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. +# +# 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. +# +# +# ====================================================================== """ Ce package contient la fonctionnalité de validation des objets de type OBJECT. Cette fonctionnalité est implémentée sous la forme de classes de type MIXIN qui -- 2.39.2