1 # -*- coding: utf-8 -*-
2 from parseur import FactNode
3 from dictErreurs import jdcSet
8 dict_contexte_option={}
11 #--------------------------------------------------------------------------
12 def traitementRayon(jdc):
13 #--------------------------------------------------------------------------
15 if "DEFI_FONCTION" not in jdcSet : return
16 for c in jdc.root.childNodes:
17 if c.name != "DEFI_FONCTION" : continue
18 monTexte=jdc.getLines()[c.lineno-1]
19 monNomVariable=monTexte.split("=")[0]
20 aExecuter=monNomVariable+'=0'
21 dict_commande[monNomVariable]=c
22 exec aExecuter in dict_contexte
23 liste_MC=(("CALC_G","R_INF_FO"),("CALC_G","R_SUP_FO"),("CALC_G","MODULE_FO"))
24 liste_achanger = chercheValeurSelonGenea2 (jdc,liste_MC)
25 liste_MC=(("CALC_THETA","THETA_3D","R_INF_FO"),("CALC_THETA","THETA_3D","R_SUP_FO"),("CALC_THETA","THETA_3D","MODULE_FO"))
26 liste_achanger2 = chercheValeurSelonGenea3 (jdc,liste_MC)
27 liste_achanger=liste_achanger+liste_achanger2
28 for item in liste_achanger :
29 commande=dict_commande[item]
30 changeValeurABSCNiveau1(commande,jdc)
32 #----------------------------------
33 def changeValeurABSCNiveau1(c,jdc):
34 #----------------------------------
35 for child in c.childNodes:
36 if child.name != "NOM_PARA":continue
37 MonTexte=child.getText(jdc)
38 if len(MonTexte.splitlines()) > 1 :
39 print "Le Traducteur ne sait pas gerer"
41 MonTexte=jdc.getLines()[child.lineno-1]
42 debut=MonTexte.find("NOM_PARA")
43 debChaine=MonTexte[0:debut+8]
44 ancien=MonTexte[debut+8:]
45 egal,nomval,fin=ancien.split("'",2)
46 nouvelleLigne=debChaine+egal+"'ABSC'"+fin
47 jdc.getLines()[child.lineno-1]=nouvelleLigne
48 logging.info("renommage parametre ABSC ligne %d",child.lineno-1)
51 #--------------------------------------------------------------------------
52 def chercheValeurSelonGenea2(jdc,liste_cherche_valeur):
54 #--------------------------------------------------------------------------
56 for genea in liste_cherche_valeur:
59 print "la methode chercheValeurSelonGenea ne convient"
60 print "pas pour cette généalogie"
65 for c in jdc.root.childNodes:
66 if c.name != command:continue
67 for mc in c.childNodes:
68 if mc.name != fact:continue
69 MonTexte=mc.getText(jdc)
72 exec MonTexte in dict_contexte
73 monNomVar=MonTexte.split("=")[1]
76 while (monNomVar[i] == "," or monNomVar[i] == " ") :
77 monNomVarOk=monNomVar[0:i]
81 while (monNomVar[i] == " ") :
82 monNomVarOk=monNomVar[1:]
85 if monNomVar not in liste_valeurs : liste_valeurs.append(monNomVar)
88 logging.error("Pb pour renommer le parametre ABSC dans defi_fonctions selon calcg")
93 #--------------------------------------------------------------------------
94 def chercheValeurSelonGenea3(jdc,liste_cherche_valeur):
95 #--------------------------------------------------------------------------
97 for genea in liste_cherche_valeur:
100 print "la methode chercheValeurSelonGenea ne convient"
101 print "pas pour cette généalogie"
107 for c in jdc.root.childNodes:
108 if c.name != command : continue
109 for mcf in c.childNodes:
110 if mcf.name != fact : continue
113 for lc in ll.childNodes:
114 if lc.name !=mc : continue
115 MonTexte=lc.getText(jdc)
118 exec MonTexte in dict_contexte
119 #monNomVar=MonTexte.split("=")[1][0:-1]
120 monNomVar=MonTexte.split("=")[1]
121 monNomVarOk=monNomVar
123 while (monNomVar[i] == "," or monNomVar[i] == " ") :
124 monNomVarOk=monNomVar[0:i]
126 monNomVar=monNomVarOk
128 while (monNomVar[i] == " ") :
129 monNomVarOk=monNomVar[1:]
131 monNomVar=monNomVarOk
132 if monNomVar not in liste_valeurs : liste_valeurs.append(monNomVar)
135 logging.error("Pb pour renommer le parametre ABSC dans defi_fonctions selon calcg")