This file is indexed.

/usr/share/pyshared/Traducteur/calcG.py is in eficas 6.4.0-1-1.1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# -*- coding: utf-8 -*-
from parseur import FactNode
from dictErreurs import jdcSet 
import logging

dict_commande={}
dict_contexte={}
dict_contexte_option={}

import sys
#--------------------------------------------------------------------------
def traitementRayon(jdc):
#--------------------------------------------------------------------------
   
    if "DEFI_FONCTION" not in jdcSet : return
    for c in jdc.root.childNodes:
       if c.name != "DEFI_FONCTION" : continue
       monTexte=jdc.getLines()[c.lineno-1]
       monNomVariable=monTexte.split("=")[0]
       aExecuter=monNomVariable+'=0'
       dict_commande[monNomVariable]=c
       exec aExecuter in dict_contexte
    liste_MC=(("CALC_G","R_INF_FO"),("CALC_G","R_SUP_FO"),("CALC_G","MODULE_FO"))
    liste_achanger = chercheValeurSelonGenea2 (jdc,liste_MC)
    liste_MC=(("CALC_THETA","THETA_3D","R_INF_FO"),("CALC_THETA","THETA_3D","R_SUP_FO"),("CALC_THETA","THETA_3D","MODULE_FO"))
    liste_achanger2 = chercheValeurSelonGenea3 (jdc,liste_MC)
    liste_achanger=liste_achanger+liste_achanger2
    for item in liste_achanger :
       commande=dict_commande[item]
       changeValeurABSCNiveau1(commande,jdc)

#----------------------------------
def changeValeurABSCNiveau1(c,jdc):
#----------------------------------
    for child in c.childNodes:
       if child.name != "NOM_PARA":continue
       MonTexte=child.getText(jdc)
       if len(MonTexte.splitlines()) > 1 :
          print "Le Traducteur ne sait pas gerer"
          assert(0)
       MonTexte=jdc.getLines()[child.lineno-1]
       debut=MonTexte.find("NOM_PARA")
       debChaine=MonTexte[0:debut+8]
       ancien=MonTexte[debut+8:]
       egal,nomval,fin=ancien.split("'",2)
       nouvelleLigne=debChaine+egal+"'ABSC'"+fin
       jdc.getLines()[child.lineno-1]=nouvelleLigne
       logging.info("renommage parametre ABSC ligne %d",child.lineno-1)
    return
      
#--------------------------------------------------------------------------
def chercheValeurSelonGenea2(jdc,liste_cherche_valeur):
#
#--------------------------------------------------------------------------
    liste_valeurs=[]
    for genea in liste_cherche_valeur:
       profondeur=len(genea)
       if profondeur > 2 :
          print "la methode chercheValeurSelonGenea ne convient"
          print "pas pour cette généalogie"
          assert(0)
       command=genea[0]
       fact=genea[1]
      
       for c in jdc.root.childNodes:
          if c.name != command:continue
          for mc in c.childNodes:
             if mc.name != fact:continue
             MonTexte=mc.getText(jdc)
             try :
             #if ( 1) :
                exec MonTexte in dict_contexte
                monNomVar=MonTexte.split("=")[1]
                monNomVarOk=monNomVar
                i=-1
                while (monNomVar[i] == "," or  monNomVar[i] == " ") :
                   monNomVarOk=monNomVar[0:i]
                   i=i-1
                monNomVar=monNomVarOk
                i=0
                while (monNomVar[i] == " ") :
                   monNomVarOk=monNomVar[1:]
                   i=i+1
                monNomVar=monNomVarOk
                if monNomVar not in liste_valeurs : liste_valeurs.append(monNomVar)
             except :
             #else :
                logging.error("Pb pour renommer le parametre ABSC dans defi_fonctions selon calcg")
                pass
    return liste_valeurs

      
#--------------------------------------------------------------------------
def chercheValeurSelonGenea3(jdc,liste_cherche_valeur):
#--------------------------------------------------------------------------
    liste_valeurs=[]
    for genea in liste_cherche_valeur:
       profondeur=len(genea)
       if profondeur > 3 :
          print "la methode chercheValeurSelonGenea ne convient"
          print "pas pour cette généalogie"
          assert(0)
       command=genea[0]
       fact=genea[1]
       mc=genea[2]
      
       for c in jdc.root.childNodes:
          if c.name != command : continue
          for mcf in c.childNodes:
             if mcf.name != fact : continue
             l=mcf.childNodes[:]
             for ll in l:
                 for lc in ll.childNodes:
                    if lc.name !=mc : continue
                    MonTexte=lc.getText(jdc)
                    try :
                    #if ( 1) :
                       exec MonTexte in dict_contexte
                       #monNomVar=MonTexte.split("=")[1][0:-1]
                       monNomVar=MonTexte.split("=")[1]
                       monNomVarOk=monNomVar
                       i=-1
                       while (monNomVar[i] == "," or  monNomVar[i] == " ") :
                         monNomVarOk=monNomVar[0:i]
                         i=i-1
                       monNomVar=monNomVarOk
                       i=0
                       while (monNomVar[i] == " ") :
                          monNomVarOk=monNomVar[1:]
                          i=i+1
                       monNomVar=monNomVarOk
                       if monNomVar not in liste_valeurs : liste_valeurs.append(monNomVar)
                    except :
                    #else :
                       logging.error("Pb pour renommer le parametre ABSC dans defi_fonctions selon calcg")
                       pass
    return liste_valeurs