From a778096395682f5401abad75a615244137486eaf Mon Sep 17 00:00:00 2001 From: Pascale Noyret Date: Mon, 27 Nov 2006 15:47:19 +0000 Subject: [PATCH] PN : utf coding et bug mineur --- Traducteur/changeValeur.py | 2 +- Traducteur/dictErreurs.py | 11 +++++++++-- Traducteur/inseremocle.py | 27 +++++++++++++++++-------- Traducteur/removemocle.py | 2 +- Traducteur/renamemocle.py | 16 +++++++++++---- Traducteur/traduitV7V8.py | 40 ++++++++++++++++++++++++++++++-------- 6 files changed, 74 insertions(+), 24 deletions(-) diff --git a/Traducteur/changeValeur.py b/Traducteur/changeValeur.py index b0241a1f..0abda634 100644 --- a/Traducteur/changeValeur.py +++ b/Traducteur/changeValeur.py @@ -89,7 +89,7 @@ def ChangementValeurDsMCF(jdc,command,fact,motcle,DictNouvVal,liste=(),defaut=0) indexLigneGlob=indexLigneGlob+1 indexTexteMC=indexTexteMC+1 if (trouveUnMC == 0) and ( defaut == 1): - logging.error("OPTION (defaut) de CALCG à verifier ligne %s" ,c.lineno ) + logging.warning("OPTION (defaut) de CALCG à verifier ligne %s" ,c.lineno ) EcritErreur((command,fact,motcle,"DEFAUT"),c.lineno) if boolChange : jdc.reset(jdc.getSource()) diff --git a/Traducteur/dictErreurs.py b/Traducteur/dictErreurs.py index 15978069..dd63a48f 100644 --- a/Traducteur/dictErreurs.py +++ b/Traducteur/dictErreurs.py @@ -1,3 +1,5 @@ +# -*- coding: utf-8 -*- + import logging import sets @@ -17,6 +19,11 @@ dict_erreurs={ "CALC_CHAM_ELEM":"reecrire la partie SOUR_ELGA_ELEC", "CALC_G_THETA_T_OPTION_VALEUR":"verifier la valeur d OPTION", "CALC_G_THETA_T_OPTION_DEFAUT":"verifier la valeur d OPTION donnee a la place du defaut", + "CALC_G_MODELE":"Mot Clef MODELE supprimé sous CALC_G", + "CALC_G_DEPL":"Mot Clef DEPL supprimé sous CALC_G", + "CALC_G_CHAM_MATER":"Mot Clef CHAM_MATER supprimé sous CALC_G", + "CALC_G_CARA_ELEM":"Mot Clef CARA_ELEM supprimé sous CALC_G", + "CALC_G_RESULTAT=XXX,":"Mot Clef RESULTAT à completer sous CALC_G", "AFFE_MODELE_AFFE_MODELISATION_VALEUR":"verifier la valeur de MODELISATION", "STAT_NON_LINE_COMP_INCR_RELATION_VALEUR":"verifier la valeur de RELATION", "STAT_NON_LINE_COMP_INCR_RELATION_KIT_VALEUR":"verifier la valeur de RELATION_KIT", @@ -38,9 +45,9 @@ def EcritErreur(listeGena,ligne=None) : maClef=maCle[1:] if maClef in dict_erreurs.keys() : if ligne != None : - logging.error("%s ligne %d ",dict_erreurs[maClef], ligne) + logging.warning("%s ligne %d ",dict_erreurs[maClef], ligne) else : - logging.error("%s",dict_erreurs[maClef]) + logging.warning("%s",dict_erreurs[maClef]) #except : # pass diff --git a/Traducteur/inseremocle.py b/Traducteur/inseremocle.py index 5defe0e2..35a149a7 100644 --- a/Traducteur/inseremocle.py +++ b/Traducteur/inseremocle.py @@ -2,6 +2,7 @@ import logging from parseur import FactNode from dictErreurs import jdcSet +from dictErreurs import EcritErreur import string import regles debug=0 @@ -129,36 +130,46 @@ def chercheAlignement(jdc,command): nbBlanc=node1.colno return " "*nbBlanc -#------------------------------------------------------------------------------ -def chercheOperInsereFacteur(jdc,nomcommande,nouveau,ensemble=regles.SansRegle): -#------------------------------------------------------------------------------ +#--------------------------------------------------------------------------------------------------------- +def chercheOperInsereFacteur(jdc,nomcommande,nouveau,ensemble=regles.SansRegle, estunFacteur=1, erreur=0): +#-------------------------------------------------------------------------------------------------------- # Cherche l oper # cree le texte # appelle insereMotCle pour ajouter le texte # boolChange=0 - texte=nouveau+"=_F()," + if estunFacteur : + texte=nouveau+"=_F()," + else : + texte=nouveau if nomcommande not in jdcSet : return commands= jdc.root.childNodes[:] commands.reverse() for c in commands: if c.name != nomcommande:continue if ensemble.verif(c) == 0 : continue + if erreur : EcritErreur((nomcommande,nouveau),c.lineno) boolChange=1 insereMotCle(jdc,c,texte) if boolChange : jdc.reset(jdc.getSource()) -#------------------------------------------------------------------------ -def chercheOperInsereFacteurSiRegle(jdc,nomcommande,nouveau,liste_regles): -#------------------------------------------------------------------------ +#---------------------------------------------------------------------------------------- +def chercheOperInsereFacteurSiRegle(jdc,nomcommande,nouveau,liste_regles, estunFacteur=1): +#---------------------------------------------------------------------------------------- # Cherche l oper # cree le texte # appelle insereMotCle pour ajouter le texte # if nomcommande not in jdcSet : return mesRegles=regles.ensembleRegles(liste_regles) - chercheOperInsereFacteur(jdc,nomcommande,nouveau,mesRegles) + chercheOperInsereFacteur(jdc,nomcommande,nouveau,mesRegles,estunFacteur) +#--------------------------------------------------------------------------------------------------------- +def chercheOperInsereFacteurSiRegleAvecAvertissement(jdc,nomcommande,nouveau,liste_regles, estunFacteur=1): +#--------------------------------------------------------------------------------------------------------- + if nomcommande not in jdcSet : return + mesRegles=regles.ensembleRegles(liste_regles) + chercheOperInsereFacteur(jdc,nomcommande,nouveau,mesRegles,estunFacteur,erreur=1) #------------------------------------------------------------------------------------------------- def AjouteMotClefDansFacteur(jdc,commande,fact,nouveau,ensemble=regles.SansRegle, estunFacteur=0): diff --git a/Traducteur/removemocle.py b/Traducteur/removemocle.py index 7c16d379..c6f78a0c 100644 --- a/Traducteur/removemocle.py +++ b/Traducteur/removemocle.py @@ -64,7 +64,7 @@ def removeCommande(jdc,command,ensemble=regles.SansRegle,erreur=0): boolChange=1 if erreur : EcritErreur((command,),c.lineno) jdc.supLignes(c.lineno,c.endline) - logging.error("Suppression de: %s ligne %s",c.name,c.lineno) + logging.warning("Suppression de: %s ligne %s",c.name,c.lineno) if boolChange : jdc.reset(jdc.getSource()) #------------------------------------------------------------- diff --git a/Traducteur/renamemocle.py b/Traducteur/renamemocle.py index 4842552b..b650dfa2 100644 --- a/Traducteur/renamemocle.py +++ b/Traducteur/renamemocle.py @@ -70,9 +70,9 @@ def decaleLignesdeNBlancs(jdc,premiere,derniere,nbBlanc): jdc.getLines()[ligne] = s[-1*nbBlanc:] ligne=ligne+1 -#---------------------------------------------------------- -def renameMotCleInFact(jdc,command,fact,mocle,new_name): -#---------------------------------------------------------- +#---------------------------------------------------------------------------------- +def renameMotCleInFact(jdc,command,fact,mocle,new_name, ensemble=regles.SansRegle): +#---------------------------------------------------------------------------------- if command not in jdcSet : return boolChange=0 for c in jdc.root.childNodes: @@ -85,6 +85,7 @@ def renameMotCleInFact(jdc,command,fact,mocle,new_name): for ll in l: for n in ll.childNodes: if n.name != mocle:continue + if ensemble.verif(c) == 0 : continue s=jdc.getLines()[n.lineno-1] jdc.getLines()[n.lineno-1]=s[:n.colno]+new_name+s[n.colno+len(mocle):] boolChange=1 @@ -92,6 +93,13 @@ def renameMotCleInFact(jdc,command,fact,mocle,new_name): if boolChange : jdc.reset(jdc.getSource()) +#-------------------------------------------------------------------------- +def renameMotCleInFactSiRegle(jdc,command,fact,mocle,new_name,liste_regles): +#-------------------------------------------------------------------------- + if command not in jdcSet : return + mesRegles=regles.ensembleRegles(liste_regles) + renameMotCleInFact(jdc,command,fact,mocle,new_name,mesRegles) + #----------------------------------------------------------------- def renameCommande(jdc,command,new_name,ensemble=regles.SansRegle): #----------------------------------------------------------------- @@ -109,7 +117,7 @@ def renameCommande(jdc,command,new_name,ensemble=regles.SansRegle): if ensemble.verif(c) == 0 : continue boolChange=1 if debug:print "Renommage de:",c.name,new_name ,c.lineno,c.colno - logging.info("Renommage de: %s, %s, %s, %s en %s",c.name,"",c.lineno,c.colno,new_name) + logging.info("Renommage de: %s en ligne %d en %s",c.name,c.lineno,new_name) s=jdc.getLines()[c.lineno-1] jdc.getLines()[c.lineno-1]=s[:c.colno]+new_name+s[c.colno+len(command):] diff --git a/Traducteur/traduitV7V8.py b/Traducteur/traduitV7V8.py index bca9cb54..b9c86d65 100644 --- a/Traducteur/traduitV7V8.py +++ b/Traducteur/traduitV7V8.py @@ -31,7 +31,7 @@ atraiter=( "IMPR_GENE","CALC_FONCTION", "DEFI_MATERIAU","STAT_NON_LINE", "DEFI_THER_JOULE","DYNA_TRAN_EXPLI","DEBUT","CALC_CHAM_ELEM", "AFFE_CHAR_THER", "MACR_LIGN_COUPE","POST_RCCM","PROJ_MESU_MODAL", "CREA_RESU","DIST_LIGN_3D","MODI_MAILLAGE","LIRE_TABLE", - "POST_SIMPLIFIE","AFFE_MATERIAU" + "POST_SIMPLIFIE","AFFE_MATERIAU","DEFI_MAILLAGE","DEPL_INTERNE","CREA_CHAMP" ) #atraiter=( "IMPR_GENE",) @@ -73,10 +73,10 @@ def traduc(infile,outfile): dStatNonLine={"ELAS":"ELAS_THER"} lavertit=("ELAS") - ChangementValeurDsMCFAvecAvertissement(jdc,"STAT_NON_LINE","COMP-INCR","RELATION_KIT",dStatNonLine,lavertit) + ChangementValeurDsMCFAvecAvertissement(jdc,"STAT_NON_LINE","COMP_INCR","RELATION_KIT",dStatNonLine,lavertit) - lavertit=("CHABOCHE","ASSE_COMBU") - dchaboche={"CHABOCHE":"VMIS_CIN1_CHAB","ASSE_COMBU":"XXX_IRA"} + lavertit=("CHABOCHE","ASSE_COMBU","OHNO") + dchaboche={"CHABOCHE":"VMIS_CIN1_CHAB","ASSE_COMBU":"XXX_IRA","OHNO":"VISC_TAHERI"} ChangementValeurDsMCFAvecAvertissement(jdc,"STAT_NON_LINE","COMP_INCR","RELATION",dchaboche,lavertit) ####################### traitement DEFI_MATERIAU ####################### @@ -87,6 +87,8 @@ def traduc(infile,outfile): moveMotCleFromFactToFactMulti(jdc,"DEFI_MATERIAU","FLU_IRRA","L",("LEMAITRE_IRRA",)) removeMotCle(jdc,"DEFI_MATERIAU","FLU_IRRA") renameMotCleAvecErreur(jdc,"DEFI_MATERIAU","CHABOCHE","CINx_CHAB") + renameMotCleAvecErreur(jdc,"DEFI_MATERIAU","OHNO","VISC_TAHERI") + renameMotCleAvecErreur(jdc,"DEFI_MATERIAU","OHNO_FO","VISC_TAHERI_FO") ####################### traitement DEFI_MATERIAU ####################### renameMotCleInFact(jdc,"DEFI_MATERIAU","GRAN_IRRA","A","GRAN_A") @@ -97,7 +99,6 @@ def traduc(infile,outfile): moveMotCleFromFactToFactMulti(jdc,"DEFI_MATERIAU","GRAN_IRRA","GRAN_S",("LEMAITRE_IRRA",)) removeMotCle(jdc,"DEFI_MATERIAU","GRAN_IRRA") - ####################### traitement DEFI_MATERIAU ####################### chercheOperInsereFacteurSiRegle(jdc,"DEFI_MATERIAU","ELAS",((("CABLE",),"existe"),)) moveMotCleFromFactToFactMulti(jdc,"DEFI_MATERIAU","CABLE","E", ("ELAS",)) moveMotCleFromFactToFactMulti(jdc,"DEFI_MATERIAU","CABLE","NU", ("ELAS",)) @@ -121,12 +122,12 @@ def traduc(infile,outfile): removeMotCle(jdc,"AFFE_CHAR_THER_F","VERI_DDL") removeMotCle(jdc,"AFFE_CHAR_THER","VERI_DDL") + ####################### traitement CALC_G ####################### chercheOperInsereFacteurSiRegle(jdc,"CALC_G_LOCAL_T","LISSAGE",((("LISSAGE_G","LISSAGE_THETA","DEGRE"),"existeMCFParmi"),)) moveMotClefInOperToFact(jdc,"CALC_G_LOCAL_T","LISSAGE_THETA","LISSAGE") moveMotClefInOperToFact(jdc,"CALC_G_LOCAL_T","LISSAGE_G","LISSAGE") moveMotClefInOperToFact(jdc,"CALC_G_LOCAL_T","DEGRE","LISSAGE") - ####################### traitement CALC_G ####################### dlocal={"CALC_G_LGLO":"G_LAGR", "G_BILINEAIRE":"G_BILI", "CALC_G_MAX":"G_MAX"} ChangementValeur(jdc,"CALC_G_LOCAL_T","OPTION",dlocal) # @@ -151,12 +152,21 @@ def traduc(infile,outfile): moveMotClefInOperToFact(jdc,"CALC_G","R_INF","THETA") moveMotClefInOperToFact(jdc,"CALC_G","R_SUP","THETA") moveMotClefInOperToFact(jdc,"CALC_G","FISSURE","THETA") + renameMotCleInFactSiRegle(jdc,"CALC_G","THETA","THETA","THETA_LAGR",((("THETA","R_INF"),"existeMCsousMCF"),)) + renameMotCleInFactSiRegle(jdc,"CALC_G","THETA","THETA","THETA_LAGR",((("THETA","R_SUP"),"existeMCsousMCF"),)) + moveMotCleFromFactToFather(jdc,"CALC_G","THETA","THETA_LAGR") + removeMotCleAvecErreur(jdc,"CALC_G","MODELE") + removeMotCleAvecErreur(jdc,"CALC_G","DEPL") + removeMotCleAvecErreur(jdc,"CALC_G","CHAM_MATER") + removeMotCleAvecErreur(jdc,"CALC_G","CARA_ELEM") + chercheOperInsereFacteurSiRegleAvecAvertissement(jdc,"CALC_G","RESULTAT=XXX,",((("THETA_LAGR",),"existeMCFParmi"),),0) ####################### traitement AFFE_MODELE ####################### daffeModele={"PLAN_FISSURE":"PLAN_JOINT", "AXIS_FISSURE":"AXIS_JOINT","OHNO_FO":"VISC_TAHERI_FO","OHNO":"VISC_TAHERI"} lavertit=("OHNO","OHNO_FO") ChangementValeurDsMCFAvecAvertissement(jdc,"AFFE_MODELE","AFFE","MODELISATION",daffeModele,lavertit) removeMotCleSiRegleAvecErreur(jdc,"AFFE_MODELE","AFFE",((("AFFE","MODELISATION","APPUI_REP",jdc),"MCsousMCFaPourValeur"),)) + renameMotCleInFact(jdc,"AFFE_MODELE","AFFE_SOUS_STRUC","MAILLE","SUPER_MAILLE") ####################### traitement PROJ_MESU_MODAL ####################### removeMotCleInFact(jdc,"PROJ_MESU_MODAL","MODELE_MESURE","NOM_PARA") @@ -206,13 +216,27 @@ def traduc(infile,outfile): ####################### traitement AFFE_MATERIAU ####################### removeMotCleInFact(jdc,"AFFE_MATERIAU","AFFE","SECH_REF") + ####################### traitement DEFI_MAILLAGE ####################### + renameMotCleInFact(jdc,"DEFI_MAILLAGE","DEFI_MAILLE","MAILLE","SUPER_MAILLE") + renameMotCle(jdc,"DEFI_MAILLAGE","DEFI_MAILLE","DEFI_SUPER_MAILLE") + renameMotCleInFact(jdc,"DEFI_MAILLAGE","RECO_GLOBAL","MAILLE","SUPER_MAILLE") + renameMotCleInFact(jdc,"DEFI_MAILLAGE","RECO_MAILLE","MAILLE","SUPER_MAILLE") + renameMotCle(jdc,"DEFI_MAILLAGE","RECO_MAILLE","RECO_SUPER_MAILLE") + renameMotCleInFact(jdc,"DEFI_MAILLAGE","DEFI_NOEUD","MAILLE","SUPER_MAILLE") + renameMotCleInFact(jdc,"DEFI_MAILLAGE","DEFI_GROUP_NO","MAILLE","SUPER_MAILLE") + + ####################### traitement DEPL_INTERNE ####################### + renameMotCle(jdc,"DEPL_INTERNE","MAILLE","SUPER_MAILLE") + + ####################### traitement CREA_CHAMP ####################### + chercheOperInsereFacteurSiRegle(jdc,"CREA_CHAMP","TYPE_MAXI='MAXI',",((("TYPE_RESU"),"existeMCFParmi"),),estunFacteur=0) +# chercheOperInsereFacteur(jdc,"CREA_CHAMP","TYPE_MAXI='MAXI',",estunFacteur=0) + f=open(outfile,'w') f.write(jdc.getSource()) f.close() - #hdlr.close() - #logging.shutdown() log.ferme(hdlr) def main(): -- 2.39.2