Salome HOME
Merge branch 'nouvelEficas_V8' of https://git.forge.pleiade.edf.fr/git/eficas into...
[tools/eficas.git] / PSEN_Eficas / mesScripts_PSEN.py
1 def exportToCsv(listeparam) :
2     texte=""
3     editor= listeparam[0]
4     item  = listeparam[1]
5     fn=None
6     try :
7       from PyQt4.QtGui import QFileDialog, QMessageBox
8       fichier = QFileDialog.getOpenFileName()
9       if fichier == None : return
10     except :
11       try :
12         from PyQt5.QtWidgets import QFileDialog, QMessageBox
13         fichier = QFileDialog.getOpenFileName()
14         if fichier[0] == None : return
15         fichier=fichier[0]
16       except:
17         pass
18
19     nouvelleVal=[]
20     prob=item.object.get_child('Probability')
21     valeur=prob.get_valeur()
22     texte=""
23     for v in valeur :
24         texte+=v[0].nom+";"+str(v[1]).replace('.',',')+"\n"
25
26     try :
27       fn=open(fichier,'wb')
28       fn.write(texte)
29       fn.close()
30     except Exception, why:
31       QMessageBox.critical(editor, ("Save file failed"),
32       ('unable to save ')+str(fn) + str(why))
33
34
35 def importFromCsv(listeparam) :
36     texte=""
37     editor= listeparam[0]
38     item  = listeparam[1]
39     node  = listeparam[2]
40     fn=None
41     try :
42       from PyQt4.QtGui import QFileDialog
43       fichier = QFileDialog.getOpenFileName()
44       if fichier == None : return
45       fn=open(fichier)
46     except :
47       try :
48         from PyQt5.QtWidgets import QFileDialog
49         fichier = QFileDialog.getOpenFileName()
50         if fichier[0] == None : return
51         fn=open(fichier[0])
52       except:
53         pass
54     #fn=open('Classeur1.csv')
55     if not fn : return
56     nouvelleVal=[]
57     prob=item.object.get_child('Probability')
58     monType=prob.definition.validators.typeDesTuples[0]
59     listeObjet=item.object.etape.parent.get_sd_avant_du_bon_type(item.object.etape,(monType,))
60     for ligne in fn.readlines():
61       try :
62         nom,valeur = ligne.split(';')
63       except :
64         texte += "not able to process: "+ ligne
65         continue
66       if nom not in listeObjet :
67         texte += nom + " : ignored (not known in Eficas) \n "
68         continue
69       try :
70         concept=item.jdc.get_concept(nom)
71       except :
72         texte += nom + ": ignored (not known in Eficas) \n "
73         continue
74       try :
75         valNum=valeur.replace (',','.')
76         valeur=eval (valNum, {})
77       except :
78         texte += valeur + " : unable to eval \n "
79         continue
80       nouvelleVal.append((concept,valeur))
81       #  exec nom in self.jdc
82
83     if nouvelleVal != [] : prob.set_valeur(nouvelleVal)
84     if texte != "" :
85        try :
86          from  PyQt5.QtWidgets  import QMessageBox
87        except :
88          from  PyQt4.QtGui  import QMessageBox
89        QMessageBox.information( None,'unable to append values',texte,) 
90
91     node.affichePanneau()
92         
93     print "et ici"
94
95 # le dictionnaire des commandes a la structure suivante :
96 # la clef est la commande qui va proposer l action
97 # puis un tuple qui contient
98 #       - la fonction a appeler
99 #       - le label dans le menu du clic droit
100 #       - un tuple contenant les parametres attendus par la fonction
101 #       - appelable depuis Salome uniquement -)
102 #       - appelable depuis un item valide uniquement 
103 #       - toolTip
104 dict_commandes={
105    'N_1_GENERATORS':( 
106            (exportToCsv,"exportToCsv",('editor','item'),False,False,"export values to cvs File"),
107            (importFromCsv,"importFromCsv",('editor','item','self'),False,False,"import values from cvs File"),
108                     ),
109    'N_1_LINES':( 
110            (exportToCsv,"exportToCsv",('editor','item'),False,False,"export values to cvs File"),
111            (importFromCsv,"importFromCsv",('editor','item','self'),False,False,"import values from cvs File"),
112                     )
113                }