/usr/share/pyshared/Traducteur/load.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 | # -*- coding: utf-8 -*-
import os
import re
import parseur
from mocles import parseKeywords
class JDC:
"""Cet objet conserve toutes les informations relatives à un fichier de commandes .comm"""
def __init__(self,filename,src,atraiter):
#----------------------------------------
self.filename = os.path.abspath(filename)
self.atraiter=atraiter
self.init(src,atraiter)
def init(self,src,atraiter):
#---------------------------
# construction de self.lines
self.root=parseur.Parser(src,atraiter)
self.lines=src.splitlines(1)
def parseKeywords(self):
#-----------------------
# construction de fils (cf mocles.py)
parseKeywords(self.root)
def reset(self,src):
#-----------------------
# reconstruction
self.init(src,self.atraiter)
self.parseKeywords()
def getSource(self):
#-----------------------
# retourne la concatenation de
# toutes les lignes
return "".join(self.getLines())
def getLine(self,linenum):
#-----------------------
# retourne la linenumieme ligne
return self.getLines()[linenum-1]
def getLines(self):
#----------------------------
# retourne toutes les lignes
return self.lines
def addLine(self,ligne,numero) :
#----------------------------
# insere le texte contenu dans ligne
# dans la liste self.lines au rang numero
Ldebut=self.lines[0:numero]
Lmilieu=[ligne,]
Lfin=self.lines[numero:]
self.lines=Ldebut+Lmilieu+Lfin
def splitLine(self,numeroLigne,numeroColonne) :
#----------------------------------------------
# coupe la ligne numeroLigne en 2 a numeroColonne
# ajoute des blancs en debut de 2nde Ligne pour
# aligner
numeroLigne = numeroLigne -1
Ldebut=self.lines[0:numeroLigne]
if len(self.lines) > numeroLigne :
Lfin=self.lines[numeroLigne+1:]
else :
Lfin=[]
Lsplit=self.lines[numeroLigne]
LigneSplitDebut=Lsplit[0:numeroColonne]+"\n"
LigneSplitFin=" "*numeroColonne+Lsplit[numeroColonne:]
Lmilieu=[LigneSplitDebut,LigneSplitFin]
self.lines=Ldebut+Lmilieu+Lfin
def joinLineandNext(self,numeroLigne) :
#--------------------------------------
# concatene les lignes numeroLigne et numeroLigne +1
# enleve les blancs de debut de la ligne (numeroLigne +1)
Ldebut=self.lines[0:numeroLigne-1]
if len(self.lines) > numeroLigne :
Lfin=self.lines[numeroLigne+1:]
else :
Lfin=[]
ligneMilieuDeb=self.lines[numeroLigne - 1 ]
ligneMilieuDeb=ligneMilieuDeb[0:-1]
ligneMilieuFin=self.lines[numeroLigne]
for i in range(len(ligneMilieuFin)):
if ligneMilieuFin[i] != " " :
ligneMilieuFin=ligneMilieuFin[i:]
break
Lmilieu=[ligneMilieuDeb+ligneMilieuFin,]
self.lines=Ldebut+Lmilieu+Lfin
def supLignes(self,debut,fin):
#------------------------
Ldebut=self.lines[0:debut-1]
Lfin=self.lines[fin:]
self.lines=Ldebut+Lfin
def remplaceLine(self,numeroLigne,nouveauTexte) :
#------------------------------------------------
self.lines[numeroLigne]=nouveauTexte
def getJDC(filename,atraiter):
#---------------------------_
# lit le JDC
f=open(filename)
src=f.read()
f.close()
jdc=JDC(filename,src,atraiter)
return jdc
|