Salome HOME
022491: EDF 2249 SMESH: Integration of a small python library for quadrangle meshing
[modules/smesh.git] / src / Tools / Verima / CreeDocuments / jobHtml.py
1 #!/usr/bin/env python
2 # -*- coding: iso-8859-1 -*-
3
4 import string
5 import os
6
7 dir=os.path.dirname(os.path.abspath(__file__))
8 FichierEntete=os.path.join(dir,'templatesHtml/entete.html')
9 FichierMailleur=os.path.join(dir,'templatesHtml/mailleur.html')
10 FichierJob=os.path.join(dir,'templatesHtml/job.html')
11 #FichierJob=os.path.join(dir,'templatesHtml/jobIncomplet.html')
12 FichierTableau=os.path.join(dir,'templatesHtml/tableau.html')
13 FichierLigne=os.path.join(dir,'templatesHtml/ligne.html')
14 FichierFinTableau=os.path.join(dir,'templatesHtml/tableauFin.html')
15 FichierSansGroupe=os.path.join(dir,'templatesHtml/sansGroupe.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.keys():
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).read()
50     texteRetour=FormateTexte(texteIni,dico)
51     return texteRetour
52
53 def CreeMailleur(dico):
54     texteIni=open(FichierMailleur).read()
55     texteRetour=FormateTexte(texteIni,dico)
56     return texteRetour
57
58 def CreeJob(dico):
59     texte=open(FichierJob).read()
60     texteRetour=FormateTexte(texte,dico)
61     return texteRetour
62
63 def CreeMailleOuGroupe(dico,nb):
64     texteIni=open(FichierTableau).read()
65
66     texteLigneIni=open(FichierLigne).read()
67     for i in range (2,nb+1) :
68         texteLigne=FormateLigne(texteLigneIni,i)
69         texteIni=texteIni+texteLigne
70
71     texteRetour=FormateTexte(texteIni,dico)
72
73     finTexte=open(FichierFinTableau).read()
74     texteFinal=texteRetour+finTexte
75
76     return texteFinal
77
78
79 def EcritFichier(texte,filename):
80     fp=open(filename,'w')
81     fp.write(texte)
82     fp.close()
83     
84
85 class Document:
86
87     def __init__(self):
88       self.monTexte=""
89       self.dicoEntete={}
90
91     def creeDocument(self,monFichier):
92       EcritFichier(self.monTexte,monFichier)
93
94     def initEntete(self,version, versionRef,machine):
95       self.dicoEntete["VERSIONTEST"]=version
96       self.dicoEntete["VERSIONREF"]=versionRef
97       self.dicoEntete["MACHINE"]=machine
98       self.monTexte=CreeEntete(self.dicoEntete)
99
100     def initMailleur(self,mailleurName):
101       dicoMailleur={}
102       dicoMailleur["MAILLEUR"]=mailleurName
103       texteMailleur=CreeMailleur(dicoMailleur)
104       self.monTexte+=texteMailleur
105
106     def initJob(self,dicoJob):
107       texteMailleur=CreeJob(dicoJob)
108       self.monTexte+=texteMailleur
109
110     def initMaille(self,dicoMaille,nbEntity):
111       texteMaille=CreeMailleOuGroupe(dicoMaille,nbEntity)
112       self.monTexte+=texteMaille
113
114     def addNoGroup(self):
115       texteNoGroupe=open(FichierSansGroupe).read()
116       self.monTexte+=texteNoGroupe
117
118
119 #