2 # -*- coding: iso-8859-1 -*-
3 # Copyright (C) 2007-2021 EDF R&D
5 # This library is free software; you can redistribute it and/or
6 # modify it under the terms of the GNU Lesser General Public
7 # License as published by the Free Software Foundation; either
8 # version 2.1 of the License.
10 # This library is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 # Lesser General Public License for more details.
15 # You should have received a copy of the GNU Lesser General Public
16 # License along with this library; if not, write to the Free Software
17 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 from ExtractGeneratorLoadLineandTransfoDicoProcess import *
25 path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','TreatOutputs'))
26 sys.path.append(path1)
29 def INCLUDE(self,PSSE_path,**args):
31 Fonction sd_prod pour la macro INCLUDE
33 CaseFolder = args['output_folder']
34 Options.RecursiveDepth = args['MaxDepth']
38 if hasattr(self,'fichier_ini'):
40 if self.fichier_ini == CaseFolder : return
41 if hasattr(self,'old_context_fichier_init' ):
42 for concept in self.old_context_fichier_init.values():
43 self.jdc.delete_concept(concept)
45 self.contexte_fichier_init={}
46 self.reevalue_sd_jdc()
47 self.jdc.reset_context()
49 self.fichier_ini=CaseFolder
50 self.contexte_fichier_init = {}
51 self.fichier_unite = 999
52 self.fichier_err = None
58 FolderList = os.listdir(CaseFolder)
59 for folder in FolderList:
60 if folder[0:7] == 'package' or folder[0:4]== 'core':
61 # Get BaseCase.sav inside the first package folder we find
62 FolderContents = os.listdir(os.path.join(CaseFolder, folder))
63 for file in FolderContents:
64 if file == 'BaseCase.sav':
65 CaseFile = os.path.join(os.path.join(CaseFolder, folder), file)
72 BusList, LinesList, TransfosList = getNominalkV(CaseFile)
73 #print "version en dur : decommenter la ligne suivante"
74 #getTrueLines(CaseFile)
76 # exc_type, exc_obj, exc_tb = sys.exec_info()
78 # print(exc_type, exc_tb.tb_lineno)
81 for e in self.jdc.etapes:
82 if e.nom == 'CASE_SELECTION' :
85 self.jdc.editor.changeIntoMC(e, 'BusesList', BusList)
86 self.jdc.editor.changeIntoMC(e, 'LinesList', LinesList)
87 self.jdc.editor.changeIntoMC(e, 'TransformersList', TransfosList)
89 self.jdc.editor.changeIntoDefMC('CONTINGENCY_SELECTION', ('Automatic_N_2_Selection', 'BusesList'), BusList)
90 self.jdc.editor.changeIntoDefMC('CONTINGENCY_SELECTION', ('Automatic_N_2_Selection', 'LinesList'), LinesList)
91 self.jdc.editor.changeIntoDefMC('CONTINGENCY_SELECTION', ('Automatic_N_2_Selection', 'TransformersList'), TransfosList)
95 print "version en dur : decommenter la ligne suivante"
97 self.jdc.editor.changeIntoDefMC('CONTINGENCY_SELECTION', ('MultipleContingencyList', 'ComponentList'), Options.ContFullList)
98 except Exception as e:
99 exc_type, exc_obj, exc_tb = sys.exec_info()
101 print(exc_type, exc_tb.tb_lineno)
107 def INCLUDE_context(self,d):
109 Fonction op_init pour macro INCLUDE
111 for k,v in self.g_context.items():
115 def PROCESS_context(self,d):
116 print "dans le init du Process"
117 if self.get_child('XLS_file').valeur == "" or self.get_child('XLS_file').valeur== None : return
118 self.OngletsSelectionnes= self.get_child('b_TabList').get_child('TabList').valeur
119 print "fin de PROCESS_context"
121 def PROCESS(self,XLS_file,**args):
123 # self = Accas.A_MACRO_ETAPE.MACRO_ETAPE
125 if XLS_file == "" or XLS_file == None: return
127 #Storage.csvFileName = XLS_file
128 # c est la premiere fois
130 if not (hasattr(self,'sheets')) :
131 #print 'attention en dur'
132 #from Processor_Storage import *
135 #ComponentList, ContingencyList = getComponentandContingencyList(Storage.sheets[0])
137 #print ContingencyList
138 #Storage.selectedDoubleRow[Storage.sheets[0]]=['PV MATIMBA']
139 #Storage.selectedDoubleCol[Storage.sheets[0]]=['MAZENOD_MHDAM_LI1_']
140 #self.jdc.editor.changeIntoMC(self,'TabList',Storage.sheets)
141 #self.sheets=Storage.sheets
142 #self.OngletsValeurs=[]
144 from Processor import getXLSinfo
145 self.sheets = getXLSinfo(XLS_file)
146 self.jdc.editor.changeIntoMC(self,'TabList',self.sheets.keys(),('b_TabList',))
149 self.OngletsSelectionnes=[]
152 # On a selectionne un onglet
153 # On teste si on a modifie la liste des onglets
155 nouveauxOngletsSelectionnes= self.get_child('b_TabList').get_child('TabList').valeur
156 if nouveauxOngletsSelectionnes==self.OngletsSelectionnes : return
157 if nouveauxOngletsSelectionnes==() or nouveauxOngletsSelectionnes == [] :
158 for MC in self.MCAjoutes : self.jdc.editor.deleteMC(self,MC,('b_TabList',))
160 self.OngletsSelectionnes=[]
161 self.jdc.editor.fenetreCentraleAffichee.reaffiche()
164 for Onglet in nouveauxOngletsSelectionnes:
165 if Onglet in self.OngletsSelectionnes : continue
167 MCFils='Component_List_For_'+Onglet
168 monInto=self.sheets[Onglet][0]
169 self.jdc.editor.ajoutDefinitionMC('CONTINGENCY_PROCESSING',('b_TabList',),MCFils,'TXM',min=0, max='**', into=monInto, homo= 'SansOrdreNiDoublon')
170 self.jdc.editor.ajoutMC(self,MCFils,[],('b_TabList',))
171 self.MCAjoutes.append(MCFils)
173 MCFils='Contingency_List_For_'+Onglet
174 monInto=self.sheets[Onglet][1]
175 self.jdc.editor.ajoutDefinitionMC('CONTINGENCY_PROCESSING',('b_TabList',),MCFils,'TXM',min=0, max='**', into=monInto, homo= 'SansOrdreNiDoublon')
176 self.jdc.editor.ajoutMC(self,MCFils,[],('b_TabList',))
177 self.MCAjoutes.append(MCFils)
180 for Onglet in self.OngletsSelectionnes:
181 if Onglet in nouveauxOngletsSelectionnes : continue
183 MCFils='Contingency_List_For_'+Onglet
184 self.jdc.editor.deleteMC(self,MCFils,('b_TabList',))
185 self.jdc.editor.deleteDefinitionMC('CONTINGENCY_PROCESSING',('b_TabList',),MCFils)
186 self.MCAjoutes.remove(MCFils)
188 MCFils='Component_List_For_'+Onglet
189 self.jdc.editor.deleteMC(self,MCFils,('b_TabList',))
190 self.jdc.editor.deleteDefinitionMC('CONTINGENCY_PROCESSING',('b_TabList',),MCFils)
191 self.MCAjoutes.remove(MCFils)
193 self.OngletsSelectionnes=nouveauxOngletsSelectionnes
194 self.jdc.editor.fenetreCentraleAffichee.reaffiche()