Salome HOME
Merge remote branch 'origin/V8_5_asterstudy'
[modules/smesh.git] / src / Tools / Verima / CreeDocuments / jobHtml.py
1 #!/usr/bin/env python3
2
3 import string
4 import os
5
6 adir=os.path.dirname(os.path.abspath(__file__))
7 FichierEntete=os.path.join(adir,'templatesHtml/entete.html')
8 FichierMaillageEntete=os.path.join(adir,'templatesHtml/maillageEntete.html')
9 FichierJob=os.path.join(adir,'templatesHtml/job.html')
10 FichierTableau=os.path.join(adir,'templatesHtml/tableau.html')
11 FichierLigne=os.path.join(adir,'templatesHtml/ligne.html')
12 FichierFinTableau=os.path.join(adir,'templatesHtml/tableauFin.html')
13 FichierSansGroupe=os.path.join(adir,'templatesHtml/sansGroupe.html')
14 FichierGroupeRatio=os.path.join(adir,'templatesHtml/groupeRatio.html')
15 FichierGroupeTaille=os.path.join(adir,'templatesHtml/groupeTaille.html')
16
17
18 def compte_all(texte, subString):
19     start = 0
20     compte=0
21     while True:
22         trouve = texte.find(subString, start)
23         if trouve == -1: return compte
24         compte+=1
25         start = trouve + len(subString)
26
27 def FormateTexte(texte,dico):
28     for clef in dico:
29         texteARemplacer="%"+str(clef)+"%"
30         remplacement=dico[clef]
31         if texte.find(texteARemplacer) < 0 :
32            print("impossible de remplacer ",texteARemplacer, "Pas d'occurence")
33            print(remplacement)
34            continue
35         if compte_all(texte,texteARemplacer) != 1 :
36            print("impossible de remplacer ",texteARemplacer, "trop d'occurences")
37            continue
38         remplacement=str(remplacement)
39         texte=texte.replace(texteARemplacer,remplacement)
40     return texte
41
42 def FormateLigne(texte,nb):
43     texteARemplacer="2%"
44     remplacement=str(nb)+"%"
45     texte=texte.replace(texteARemplacer,remplacement)
46     return texte
47
48 def CreeEntete(dico):
49     texteIni=open(FichierEntete, 'r', encoding='utf8').read()
50     texteRetour=FormateTexte(texteIni,dico)
51     return texteRetour
52
53 def CreeMaillage(dico):
54     texteIni=open(FichierMaillageEntete, 'r', encoding='utf8').read()
55     texteRetour=FormateTexte(texteIni,dico)
56     return texteRetour
57
58 def CreeJob(dico):
59     texte=open(FichierJob, 'r', encoding='utf8').read()
60     texteRetour=FormateTexte(texte,dico)
61     return texteRetour
62
63 def CreeGroupeTaille(dico):
64     texte=open(FichierGroupeTaille, 'r', encoding='utf8').read()
65     texteRetour=FormateTexte(texte,dico)
66     return texteRetour
67
68 def CreeGroupeRatio(dico):
69     texte=open(FichierGroupeRatio, 'r', encoding='utf8').read()
70     texteRetour=FormateTexte(texte,dico)
71     return texteRetour
72
73
74 def CreeMailleOuGroupe(dico,nb):
75     texteIni=open(FichierTableau, 'r', encoding='utf8').read()
76     texteLigneIni=open(FichierLigne).read()
77     for i in range (2,nb+1) :
78         texteLigne=FormateLigne(texteLigneIni,i)
79         texteIni=texteIni+texteLigne
80
81     texteRetour=FormateTexte(texteIni,dico)
82
83     finTexte=open(FichierFinTableau, 'r', encoding='utf8').read()
84     texteFinal=texteRetour+finTexte
85
86     return texteFinal
87
88
89 def EcritFichier(texte,filename):
90     with open(filename,'w',encoding='utf8') as fp:
91         fp.write(texte)
92     
93
94 class Document:
95
96     def __init__(self):
97       self.monTexte=""
98       self.dicoEntete={}
99
100     def creeDocument(self,monFichier):
101       EcritFichier(self.monTexte,monFichier)
102
103     def initEntete(self,version, machine):
104       self.dicoEntete["VERSIONTEST"]=version
105       self.dicoEntete["MACHINE"]=machine
106       self.monTexte=CreeEntete(self.dicoEntete)
107
108     def initMaillage(self,maillageName,mailleurName,versionRefName,dicoMaillage):
109       dicoMaillage["MAILLEUR"]=mailleurName
110       dicoMaillage["MAILLAGE"]=maillageName
111       dicoMaillage["VERSIONREF"]=versionRefName
112       texteMaillageEntete=CreeMaillage(dicoMaillage)
113       self.monTexte+=texteMaillageEntete
114
115     def initJob(self,dicoJob):
116       texteMailleur=CreeJob(dicoJob)
117       self.monTexte+=texteMailleur
118
119     def initMaille(self,dicoMaille,nbEntity):
120       texteMaille=CreeMailleOuGroupe(dicoMaille,nbEntity)
121       self.monTexte+=texteMaille
122
123     def addNoGroup(self):
124       texteNoGroupe=open(FichierSansGroupe).read()
125       self.monTexte+=texteNoGroupe
126
127     def CreeGroupeTaille(self,dico):
128       texteGroupeTaille=CreeGroupeTaille(dico)
129       self.monTexte+=texteGroupeTaille
130
131     def CreeGroupeRatios(self,dico):
132       texteGroupeRatio=CreeGroupeRatio(dico)
133       self.monTexte+=texteGroupeRatio
134
135 #