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
-#@ 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
"""
import N_CR
+import N_VALIDATOR
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.
"""
self.regles=()
self.entites={}
+ if validators:
+ self.validators=self.factories['validator'](validators)
+ else:
+ self.validators=validators
def affecter_parente(self):
"""
-#@ 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
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 :
- docu
"""
+ N_ENTITE.ENTITE.__init__(self,validators)
# Initialisation des attributs
self.fr=fr
self.ang=ang
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()
-#@ 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
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 :
- docu
"""
- N_ENTITE.ENTITE.__init__(self)
+ N_ENTITE.ENTITE.__init__(self,validators)
# Initialisation des attributs
if type(typ) == types.TupleType :
self.type=typ
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):
"""
if not e.isvalid():
valid = 0
break
+ self.state="unchanged"
self.valid = valid
return self.valid
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
-#@ 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
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
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