From: cvs2git Date: Thu, 18 Sep 2003 10:21:48 +0000 (+0000) Subject: This commit was manufactured by cvs2git to create tag 'CCARDebutMod1809'. X-Git-Tag: CCARDebutMod1809 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=6a7bec8cbf2d95e973dde61569121a8933d2c229;p=tools%2Feficas.git This commit was manufactured by cvs2git to create tag 'CCARDebutMod1809'. Sprout from master 2003-08-18 15:57:38 UTC eficas 'PN : correction de la fiche de bug A02003-143 (parametre dans une liste de reels).' Cherrypick from I26 2003-09-18 10:21:47 UTC eficas 'Import dans la branche I26 de la version 7.1.16 modifiée par CCAR (au 18/9/2003)': Aster/Cata/Macro/__init__.py Aster/Cata/Macro/ajout_quad_gmsh.py Aster/Cata/Macro/macro_cara_poutre_ops.py Aster/Cata/Macro/pre_gmsh_ops.py Aster/Cata/__init__.py Aster/Cata/asterexec.py Aster/Cata/cata.py Aster/Cata/cata_STA5.py Aster/__init__.py Aster/ahlv100a.comm Aster/totalmod.comm Editeur/faqs.txt Editeur/icons/About24.gif Editeur/icons/Copy24.gif Editeur/icons/Cut24.gif Editeur/icons/Delete24.gif Editeur/icons/Help24.gif Editeur/icons/New24.gif Editeur/icons/Open24.gif Editeur/icons/Paste24.gif Editeur/icons/Save24.gif Editeur/icons/Zoom24.gif Editeur/icons/arrow_left.gif Editeur/icons/arrow_right.gif Editeur/icons/ast-green-ball.gif Editeur/icons/ast-green-los.gif Editeur/icons/ast-green-percent.gif Editeur/icons/ast-green-square.gif Editeur/icons/ast-green-text.gif Editeur/icons/ast-red-ball.gif Editeur/icons/ast-red-los.gif Editeur/icons/ast-red-percent.gif Editeur/icons/ast-red-square.gif Editeur/icons/ast-red-text.gif Editeur/icons/ast-white-percent.gif Editeur/icons/ast-white-square.gif Editeur/icons/ast-white-text.gif Editeur/icons/ast-yel-ball.gif Editeur/icons/ast-yel-los.gif Editeur/icons/ast-yel-percent.gif Editeur/icons/ast-yel-square.gif Editeur/icons/ast-yellow-text.gif Editeur/icons/code_aster.gif Editeur/icons/code_descartes.gif Editeur/icons/code_saturne.gif Editeur/icons/logo_edf.gif Editeur/icons/minusnode.gif Editeur/icons/plusnode.gif Exemples/__init__.py Exemples/cyclops/__init__.py Exemples/cyclops/main.py Exemples/cyclops2/__init__.py Exemples/cyclops2/main.py Exemples/cyclops3/__init__.py Exemples/cyclops3/cata.py Exemples/cyclops3/main.py Exemples/eficas/__init__.py Exemples/eficas/cas.py Exemples/eficas/cata.py Exemples/eficas/fort.11 Exemples/eficas/main.py Exemples/ex1/__init__.py Exemples/ex1/main.py Exemples/ex10/__init__.py Exemples/ex10/main.py Exemples/ex11/__init__.py Exemples/ex12/__init__.py Exemples/ex12/cata.py Exemples/ex12/main.py Exemples/ex13/__init__.py Exemples/ex13/cata.py Exemples/ex13/main.py Exemples/ex14/__init__.py Exemples/ex14/cata.py Exemples/ex14/main.py Exemples/ex15/__init__.py Exemples/ex15/cata.py Exemples/ex15/cata1.py Exemples/ex15/main.py Exemples/ex18/__init__.py Exemples/ex18/totalmod.comm Exemples/ex19/__init__.py Exemples/ex19/ahlv100a.comm Exemples/ex19/main.py Exemples/ex19/titi.comm Exemples/ex2/__init__.py Exemples/ex2/main.py Exemples/ex20/__init__.py Exemples/ex20/ahlv100a.comm Exemples/ex20/main.py Exemples/ex20/prefs.py Exemples/ex21/__init__.py Exemples/ex21/ahlv100a.comm Exemples/ex21/check.py Exemples/ex22/README Exemples/ex22/__init__.py Exemples/ex22/main.py Exemples/ex22/main2.py Exemples/ex22/main3.py Exemples/ex22/titi.comm Exemples/ex22/totalmod.comm Exemples/ex22/toto.comm Exemples/ex22/tutu.comm Exemples/ex22/tyty.comm Exemples/ex23/__init__.py Exemples/ex23/ahlv100a.comm Exemples/ex23/main.py Exemples/ex23/main2.py Exemples/ex23/titi.comm Exemples/ex23/toto.comm Exemples/ex24/__init__.py Exemples/ex24/essai_saturne.py Exemples/ex24/essai_saturne2.py Exemples/ex24/essai_saturne4.py Exemples/ex24/include.py Exemples/ex24/kk.py Exemples/ex24/main.py Exemples/ex24/titi.comm Exemples/ex3/__init__.py Exemples/ex3/main.py Exemples/ex3/parse.py Exemples/ex3/toto.ini Exemples/ex4/__init__.py Exemples/ex4/main.py Exemples/ex4/toto.ini Exemples/ex4/toto.pyth Exemples/ex5/__init__.py Exemples/ex5/main.py Exemples/ex5/titi.ini Exemples/ex5/titi.pyth Exemples/ex5/toto.ini Exemples/ex5/toto.pyth Exemples/ex6/__init__.py Exemples/ex6/main.py Exemples/ex7/__init__.py Exemples/ex7/main.py Exemples/ex8/__init__.py Exemples/ex8/main.py Exemples/ex9/__init__.py Exemples/ex9/main.py Exemples/profile/__init__.py Exemples/profile/main.py Exemples/profile/resul Minicode/cata_saturne2.py Misc/Cyclops.py Misc/__init__.py Misc/timing.py Noyau/N_ASSD.py Noyau/N_CO.py Noyau/N_ENTITE.py Noyau/N_EVAL.py Noyau/N_Exception.py Noyau/N_FACT.py Noyau/N_FORM.py Noyau/N_FORM_ETAPE.py Noyau/N_GEOM.py Noyau/N_JDC_CATA.py Noyau/N_OBJECT.py Noyau/N_REGLE.py Noyau/N_SIMP.py Noyau/N__F.py Noyau/N_utils.py Noyau/__init__.py Noyau/context.py README Saturne/cata_saturne.py Saturne/editeur.ini Saturne/eficas_saturne.py Saturne/essai_saturne.py Saturne/essai_saturne2.py Saturne/essai_saturne4.py Tools/foztools/__init__.py Tools/foztools/foztools.py Tools/foztools/slider.py Validation/V_AU_MOINS_UN.py Validation/V_A_CLASSER.py Validation/V_ENSEMBLE.py Validation/V_EXCLUS.py Validation/V_JDC.py Validation/V_MCBLOC.py Validation/V_MCFACT.py Validation/V_MCLIST.py Validation/V_PRESENT_ABSENT.py Validation/V_PRESENT_PRESENT.py Validation/V_PROC_ETAPE.py Validation/V_UN_PARMI.py Validation/__init__.py convert/Parserv5/Makefile convert/Parserv5/README --- diff --git a/Noyau/N_ENTITE.py b/Noyau/N_ENTITE.py index b5b9d875..d7f72c3d 100644 --- a/Noyau/N_ENTITE.py +++ b/Noyau/N_ENTITE.py @@ -1,4 +1,4 @@ -#@ MODIF N_ENTITE Noyau DATE 27/03/2002 AUTEUR DURAND C.DURAND +#@ MODIF N_ENTITE Noyau DATE 09/09/2003 AUTEUR DURAND C.DURAND # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -24,6 +24,7 @@ """ import N_CR +import N_VALIDATOR class ENTITE: """ @@ -32,8 +33,9 @@ class ENTITE: Elle ne peut etre instanciee et doit d abord etre specialisee """ CR=N_CR.CR + factories={'validator':N_VALIDATOR.validatorFactory} - def __init__(self): + def __init__(self,validators=None): """ Initialise les deux attributs regles et entites d'une classe dérivée à : pas de règles et pas de sous-entités. @@ -46,6 +48,10 @@ class ENTITE: """ self.regles=() self.entites={} + if validators: + self.validators=self.factories['validator'](validators) + else: + self.validators=validators def affecter_parente(self): """ diff --git a/Noyau/N_FACT.py b/Noyau/N_FACT.py index 2d9455c0..0f3def12 100644 --- a/Noyau/N_FACT.py +++ b/Noyau/N_FACT.py @@ -1,4 +1,4 @@ -#@ MODIF N_FACT Noyau DATE 27/03/2002 AUTEUR DURAND C.DURAND +#@ MODIF N_FACT Noyau DATE 09/09/2003 AUTEUR DURAND C.DURAND # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -47,7 +47,7 @@ class FACT(N_ENTITE.ENTITE): label = 'FACT' def __init__(self,fr="",ang="",docu="",regles=(),statut='f',defaut=None, - min=0,max=1,**args): + min=0,max=1,validators=None,**args): """ Un mot-clé facteur est caractérisé par les attributs suivants : @@ -70,6 +70,7 @@ class FACT(N_ENTITE.ENTITE): - docu """ + N_ENTITE.ENTITE.__init__(self,validators) # Initialisation des attributs self.fr=fr self.ang=ang @@ -147,5 +148,7 @@ class FACT(N_ENTITE.ENTITE): 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 etre une chaine de caractères : %s" %`self.docu`) + if self.validators and not self.validators.verif_cata(): + self.cr.fatal("Un des validateurs est incorrect. Raison : "+self.validators.cata_info) self.verif_cata_regles() diff --git a/Noyau/N_SIMP.py b/Noyau/N_SIMP.py index abcccfd6..0158a203 100644 --- a/Noyau/N_SIMP.py +++ b/Noyau/N_SIMP.py @@ -1,4 +1,4 @@ -#@ MODIF N_SIMP Noyau DATE 27/03/2002 AUTEUR DURAND C.DURAND +#@ MODIF N_SIMP Noyau DATE 09/09/2003 AUTEUR DURAND C.DURAND # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -45,7 +45,7 @@ class SIMP(N_ENTITE.ENTITE): def __init__(self,typ,fr="",ang="",statut='f',into=None,defaut=None, min=1,max=1,homo=1,position ='local', - val_min = '**',val_max='**',docu=""): + val_min = '**',val_max='**',docu="",validators=None): """ Un mot-clé simple est caractérisé par les attributs suivants : @@ -76,7 +76,7 @@ class SIMP(N_ENTITE.ENTITE): - docu """ - N_ENTITE.ENTITE.__init__(self) + N_ENTITE.ENTITE.__init__(self,validators) # Initialisation des attributs if type(typ) == types.TupleType : self.type=typ @@ -119,7 +119,8 @@ class SIMP(N_ENTITE.ENTITE): 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`) - + if self.validators and not self.validators.verif_cata(): + self.cr.fatal("Un des validateurs est incorrect. Raison : "+self.validators.cata_info) def __call__(self,val,nom,parent=None): """ diff --git a/Validation/V_JDC.py b/Validation/V_JDC.py index 38d8056f..f288eaae 100644 --- a/Validation/V_JDC.py +++ b/Validation/V_JDC.py @@ -72,6 +72,7 @@ class JDC(V_MCCOMPO.MCCOMPO): if not e.isvalid(): valid = 0 break + self.state="unchanged" self.valid = valid return self.valid diff --git a/Validation/V_MCBLOC.py b/Validation/V_MCBLOC.py index 16b69520..ea4a28b7 100644 --- a/Validation/V_MCBLOC.py +++ b/Validation/V_MCBLOC.py @@ -70,7 +70,7 @@ class MCBLOC(V_MCCOMPO.MCCOMPO): valid = 0 self.valid = valid self.state = 'unchanged' - if old_valid: - if old_valid != self.valid : self.init_modif_up() + if not old_valid or old_valid != self.valid : + self.init_modif_up() return self.valid diff --git a/Validation/V_MCFACT.py b/Validation/V_MCFACT.py index 6d15b036..a8e24c59 100644 --- a/Validation/V_MCFACT.py +++ b/Validation/V_MCFACT.py @@ -1,4 +1,4 @@ -#@ MODIF V_MCFACT Validation DATE 27/03/2002 AUTEUR DURAND C.DURAND +#@ MODIF V_MCFACT Validation DATE 09/09/2003 AUTEUR DURAND C.DURAND # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -68,13 +68,22 @@ class MCFACT(V_MCCOMPO.MCCOMPO): if not test_regles : if cr == 'oui' : self.cr.fatal(string.join(("Règle(s) non respectée(s) :", text_erreurs))) valid = 0 + # + # On verifie les validateurs s'il y en a + # + if self.definition.validators and not self.definition.validators.verif(self.valeur): + if cr == 'oui' : + self.cr.fatal(string.join(("Mot-clé : ",self.nom,"devrait avoir ",self.definition.validators.info()))) + valid=0 + # fin des validateurs + # if self.reste_val != {}: if cr == 'oui' : self.cr.fatal("Mots cles inconnus :" + string.join(self.reste_val.keys(),',')) valid=0 self.valid = valid self.state = 'unchanged' - if old_valid: - if old_valid != self.valid : self.init_modif_up() + if not old_valid or old_valid != self.valid : + self.init_modif_up() return self.valid diff --git a/Validation/V_PROC_ETAPE.py b/Validation/V_PROC_ETAPE.py index 7b6b798a..53f31b47 100644 --- a/Validation/V_PROC_ETAPE.py +++ b/Validation/V_PROC_ETAPE.py @@ -61,29 +61,17 @@ class PROC_ETAPE(V_ETAPE.ETAPE): if self.state == 'unchanged' : return self.valid else: - valid = 1 - if hasattr(self,'valid'): - old_valid = self.valid - else: - old_valid = None - # on teste les enfants - for child in self.mc_liste : - if not child.isvalid(): - valid = 0 - break - # on teste les règles de self - text_erreurs,test_regles = self.verif_regles() - if not test_regles : - if cr == 'oui' : self.cr.fatal(string.join(("Règle(s) non respectée(s) :", text_erreurs))) - valid = 0 + valid=self.valid_child() + + valid=valid * self.valid_regles(cr) + if self.reste_val != {}: if cr == 'oui' : self.cr.fatal("Mots cles inconnus :" + string.join(self.reste_val.keys(),',')) valid=0 - self.valid = valid - self.state = 'unchanged' - if old_valid: - if old_valid != self.valid : self.init_modif_up() + + self.set_valid(valid) + return self.valid