]> SALOME platform Git repositories - tools/eficas.git/blob - Openturns_Study/configuration.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / Openturns_Study / configuration.py
1 # -*- coding: utf-8 -*-
2 #            CONFIGURATION MANAGEMENT OF EDF VERSION
3 # ======================================================================
4 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
5 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8 # (AT YOUR OPTION) ANY LATER VERSION.
9 #
10 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14 #
15 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
17 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
18 #
19 #
20 # ======================================================================
21 """
22     Ce module sert pour charger les paramètres de configuration d'EFICAS
23 """
24 # Modules Python
25 print "passage dans la surcharge de configuration pour OTW"
26 import os, sys, string, types, re
27 import traceback
28 from PyQt4.QtGui  import *
29
30 # Modules Eficas
31 from Editeur import utils
32
33 class CONFIG:
34
35   #-----------------------------------
36   def __init__(self,appli,repIni):
37   #-----------------------------------
38
39   # Classe de base permettant de lire, afficher
40   # et sauvegarder les fichiers utilisateurs 
41   # On a deux directories : la directory generale (Repertoire d instal + Nom du code
42   #                       Par exemple : ~/Install_Eficas/EficasV1_14/Openturns_Wrapper
43   # et la directorie de l utilisateur 
44   #                       HOME/.Eficas_Openturns
45   # Le fichier prefs.py va etre lu dans la directory generale puis surcharge eventuellement 
46   # par celui de l utilisateur
47   # le fichier de catalogue va etre lu dans la directory de l utilisateur s il exite
48   # dans le fichier general sinon
49       self.appli   = appli  
50       self.code    = appli.code
51       self.salome  = appli.salome
52       self.repIni = repIni
53       self.fic_prefs ="prefs.py"
54
55       if self.appli: 
56          self.parent=appli.top
57          #self.appli.format_fichier="openturns_study"
58       else:          self.parent=None
59
60
61       self.labels=("OpenTURNS_path","rep_user","INSTALLDIR","path_doc","exec_acrobat","rep_cata","initialdir","savedir")
62
63       # Valeurs par defaut
64       self.rep_user     = os.path.join(os.environ['HOME'],'.Eficas_Openturns')
65       self.initialdir   = self.rep_user
66       self.path_doc     = self.rep_user
67       self.savedir      = self.rep_user
68       self.exec_acrobat = self.rep_user
69  
70       #Lecture des fichiers utilisateurs
71       self.lecture_fichier_ini_standard()
72       self.lecture_fichier_ini_utilisateur()
73       self.lecture_catalogues()
74       print self.initialdir
75
76   #--------------------------------------
77   def lecture_fichier_ini_standard(self):
78   #--------------------------------------
79   # Verifie l'existence du fichier "standard"
80   # appelle la lecture de ce fichier
81       self.fic_ini = os.path.join(self.repIni,self.fic_prefs)
82       if not os.path.isfile(self.fic_ini):
83           QMessageBox.critical( None, "Import du fichier de Configuration", 
84                                 "Erreur à la lecture du fichier de configuration "+self.fic_ini+".py" )
85           sys.exit(0)
86       import prefs
87       for k in self.labels :
88          try :
89             valeur=getattr(prefs,k)
90             setattr(self,k,valeur)
91          except :
92             pass
93               
94
95   #--------------------------------------
96   def lecture_fichier_ini_utilisateur(self):
97   #--------------------------------------
98   # Surcharge les paramètres standards par les paramètres utilisateur s'ils existent
99       self.fic_ini_utilisateur = os.path.join(self.rep_user,self.fic_prefs)
100       #if not os.path.isfile(self.fic_ini_utilisateur+".py"):
101       if not os.path.isfile(self.fic_ini_utilisateur):
102          return
103       from utils import read_file
104       txt = utils.read_file(self.fic_ini_utilisateur)
105       from styles import style
106       d=locals()
107       try:
108          exec txt in d
109       except :
110          l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
111          QMessageBox.critical( None, "Import du fichier de Configuration", 
112                         "Erreur à la lecture du fichier de configuration " + self.fic_ini_utilisateur )
113          sys.exit(0)
114       for k in self.labels :
115          try :
116             setattr(self,k,d[k])
117          except :
118             pass
119
120
121
122   #--------------------------------------
123   def lecture_catalogues(self):
124   #--------------------------------------
125       rep_mat=" " # Compatbilite Aster
126       fic_cata  ="catalogues_openturns.ini"
127       fic_ini = os.path.join(self.repIni,fic_cata)
128       fic_user= os.path.join(self.rep_user,fic_cata)
129       if  os.path.isfile(fic_user):
130           fichier = fic_user
131       else  :
132           fichier = fic_ini
133           if not os.path.isfile(fic_ini) :
134              QMessageBox.critical( None, "Erreur a l'import du fichier des Catalogues", 
135                         "Le fichier de configuration des catalogues "+fic_ini+" n a pas été trouvé" )
136              sys.exit(0)
137
138       from utils import read_file
139       txt = utils.read_file(fichier)
140       d=locals()
141       try:
142          exec txt in d
143          self.catalogues=d["catalogues"]
144       except :
145          l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
146          QMessageBox.critical( None, "Import du fichier de Configuration", 
147                         "Erreur à la lecture du fichier de configuration " + fichier )
148          sys.exit(0)
149
150
151
152   #--------------------------------------
153   def save_params(self):
154   #--------------------------------------
155   # sauvegarde
156   # les nouveaux paramètres dans le fichier de configuration utilisateur
157   #
158        print "a ecrire PNPNPN"
159 #      l_param=('exec_acrobat', 'repIni','catalogues','rep_travail','rep_mat','path_doc')
160 #      texte=""
161 #      for clef in l_param :
162 #          if hasattr(self,clef):
163 #             valeur=getattr(self,clef)
164 #             texte= texte + clef+"     = " + repr(valeur) +"\n"
165 #
166 #
167 #      # recuperation des repertoires materiaux
168 #      try :
169 #          for item in self.catalogues :
170 #              try :
171 #                  (code,version,cata,format,defaut)=item
172 #              except :
173 #                  (code,version,cata,format)=item
174 #              codeSansPoint=re.sub("\.","",version)
175 #              chaine="rep_mat_"+codeSansPoint
176 #              if hasattr(self,chaine):
177 #                 valeur=getattr(self,chaine)
178 #                 texte= texte + chaine+"       = '" + str(valeur) +"'\n"
179 #      except :
180 #             pass
181 #
182 #      f=open(self.fic_ini_utilisateur,'w+')
183 #      f.write(texte) 
184 #      f.close()
185 #
186
187
188 def make_config(appli,rep):
189     return CONFIG(appli,rep)
190
191 def make_config_style(appli,rep):
192     return None
193
194