2 # Copyright (C) 2013-2023 EDF R&D
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License, or (at your option) any later version.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
24 adir=os.path.dirname(os.path.abspath(__file__))
25 FichierEntete=os.path.join(adir,'templatesHtml/entete.html')
26 FichierMaillageEntete=os.path.join(adir,'templatesHtml/maillageEntete.html')
27 FichierJob=os.path.join(adir,'templatesHtml/job.html')
28 FichierTableau=os.path.join(adir,'templatesHtml/tableau.html')
29 FichierLigne=os.path.join(adir,'templatesHtml/ligne.html')
30 FichierFinTableau=os.path.join(adir,'templatesHtml/tableauFin.html')
31 FichierSansGroupe=os.path.join(adir,'templatesHtml/sansGroupe.html')
32 FichierGroupeRatio=os.path.join(adir,'templatesHtml/groupeRatio.html')
33 FichierGroupeTaille=os.path.join(adir,'templatesHtml/groupeTaille.html')
36 def compte_all(texte, subString):
40 trouve = texte.find(subString, start)
41 if trouve == -1: return compte
43 start = trouve + len(subString)
45 def FormateTexte(texte,dico):
47 texteARemplacer="%"+str(clef)+"%"
48 remplacement=dico[clef]
49 if texte.find(texteARemplacer) < 0 :
50 print("impossible de remplacer ",texteARemplacer, "Pas d'occurence")
53 if compte_all(texte,texteARemplacer) != 1 :
54 print("impossible de remplacer ",texteARemplacer, "trop d'occurences")
56 remplacement=str(remplacement)
57 texte=texte.replace(texteARemplacer,remplacement)
60 def FormateLigne(texte,nb):
62 remplacement=str(nb)+"%"
63 texte=texte.replace(texteARemplacer,remplacement)
67 texteIni=open(FichierEntete, 'r', encoding='utf8').read()
68 texteRetour=FormateTexte(texteIni,dico)
71 def CreeMaillage(dico):
72 texteIni=open(FichierMaillageEntete, 'r', encoding='utf8').read()
73 texteRetour=FormateTexte(texteIni,dico)
77 texte=open(FichierJob, 'r', encoding='utf8').read()
78 texteRetour=FormateTexte(texte,dico)
81 def CreeGroupeTaille(dico):
82 texte=open(FichierGroupeTaille, 'r', encoding='utf8').read()
83 texteRetour=FormateTexte(texte,dico)
86 def CreeGroupeRatio(dico):
87 texte=open(FichierGroupeRatio, 'r', encoding='utf8').read()
88 texteRetour=FormateTexte(texte,dico)
92 def CreeMailleOuGroupe(dico,nb):
93 texteIni=open(FichierTableau, 'r', encoding='utf8').read()
94 texteLigneIni=open(FichierLigne).read()
95 for i in range (2,nb+1) :
96 texteLigne=FormateLigne(texteLigneIni,i)
97 texteIni=texteIni+texteLigne
99 texteRetour=FormateTexte(texteIni,dico)
101 finTexte=open(FichierFinTableau, 'r', encoding='utf8').read()
102 texteFinal=texteRetour+finTexte
107 def EcritFichier(texte,filename):
108 with open(filename,'w',encoding='utf8') as fp:
118 def creeDocument(self,monFichier):
119 EcritFichier(self.monTexte,monFichier)
121 def initEntete(self,version, machine):
122 self.dicoEntete["VERSIONTEST"]=version
123 self.dicoEntete["MACHINE"]=machine
124 self.monTexte=CreeEntete(self.dicoEntete)
126 def initMaillage(self,maillageName,mailleurName,versionRefName,dicoMaillage):
127 dicoMaillage["MAILLEUR"]=mailleurName
128 dicoMaillage["MAILLAGE"]=maillageName
129 dicoMaillage["VERSIONREF"]=versionRefName
130 texteMaillageEntete=CreeMaillage(dicoMaillage)
131 self.monTexte+=texteMaillageEntete
133 def initJob(self,dicoJob):
134 texteMailleur=CreeJob(dicoJob)
135 self.monTexte+=texteMailleur
137 def initMaille(self,dicoMaille,nbEntity):
138 texteMaille=CreeMailleOuGroupe(dicoMaille,nbEntity)
139 self.monTexte+=texteMaille
141 def addNoGroup(self):
142 texteNoGroupe=open(FichierSansGroupe).read()
143 self.monTexte+=texteNoGroupe
145 def CreeGroupeTaille(self,dico):
146 texteGroupeTaille=CreeGroupeTaille(dico)
147 self.monTexte+=texteGroupeTaille
149 def CreeGroupeRatios(self,dico):
150 texteGroupeRatio=CreeGroupeRatio(dico)
151 self.monTexte+=texteGroupeRatio