Salome HOME
chgt Copyrigth
[tools/eficas.git] / OldCodes / ProcessOutputs_Eficas / opsPSEN_N1.py
1
2 # -*- coding: iso-8859-1 -*-
3 # Copyright (C) 2007-2021   EDF R&D
4 #
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.
9 #
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.
14 #
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
18 #
19 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 #
21
22 from ExtractGeneratorLoadLineandTransfoDicoProcess import *
23 import os
24
25 path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','TreatOutputs'))
26 sys.path.append(path1)
27 import Options
28
29 def INCLUDE(self,PSSE_path,**args):
30    """
31        Fonction sd_prod pour la macro INCLUDE
32    """
33    CaseFolder = args['output_folder']
34    Options.RecursiveDepth = args['MaxDepth']
35    if CaseFolder==None:
36       return
37    reevalue=0
38    if hasattr(self,'fichier_ini'):
39        reevalue=1
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)
44          self.jdc_aux=None
45          self.contexte_fichier_init={}
46          self.reevalue_sd_jdc()
47          self.jdc.reset_context()
48
49    self.fichier_ini=CaseFolder
50    self.contexte_fichier_init = {}
51    self.fichier_unite = 999
52    self.fichier_err = None
53    self.fichier_text=""
54
55    unite = 999
56
57    CaseFile = ''
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)
66                break
67          break
68
69            
70    #try:
71    if 1 :
72       BusList, LinesList, TransfosList = getNominalkV(CaseFile)
73       #print "version en dur : decommenter la ligne suivante"
74       #getTrueLines(CaseFile)
75    #except Exception, e:
76    #   exc_type, exc_obj, exc_tb = sys.exec_info()
77    #   print(e)
78    #   print(exc_type, exc_tb.tb_lineno)
79
80    
81    for e in self.jdc.etapes:
82        if e.nom == 'CASE_SELECTION' : 
83           etape=e
84           break
85    self.jdc.editor.changeIntoMC(e, 'BusesList', BusList)
86    self.jdc.editor.changeIntoMC(e, 'LinesList', LinesList)
87    self.jdc.editor.changeIntoMC(e, 'TransformersList', TransfosList)
88
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)
92    
93
94    try:
95        print "version en dur : decommenter la ligne suivante"
96        #a = updateConts()
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()
100       print(e)
101       print(exc_type, exc_tb.tb_lineno)
102
103
104
105
106
107 def INCLUDE_context(self,d):
108    """
109        Fonction op_init pour macro INCLUDE
110    """
111    for k,v in self.g_context.items():
112       d[k]=v
113
114
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"
120
121 def PROCESS(self,XLS_file,**args):
122
123     # self = Accas.A_MACRO_ETAPE.MACRO_ETAPE
124     self.sauve_args=args
125     if XLS_file == "" or XLS_file == None: return
126     #print XLS_file
127     #Storage.csvFileName = XLS_file
128     # c est la premiere fois
129     
130     if not (hasattr(self,'sheets')) :
131        #print 'attention en dur'
132        #from Processor_Storage import *
133        #print getSheets
134        #getSheets()
135        #ComponentList, ContingencyList = getComponentandContingencyList(Storage.sheets[0])
136        #print ComponentList
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=[]
143
144        from Processor import getXLSinfo        
145        self.sheets = getXLSinfo(XLS_file)
146        self.jdc.editor.changeIntoMC(self,'TabList',self.sheets.keys(),('b_TabList',))
147  
148        self.MCAjoutes=[]
149        self.OngletsSelectionnes=[]
150        
151     else :
152        # On a selectionne un onglet 
153        # On teste si on a modifie la liste des onglets
154
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',))
159           self.MCAjoutes=[]
160           self.OngletsSelectionnes=[]
161           self.jdc.editor.fenetreCentraleAffichee.reaffiche()
162           return
163           
164        for Onglet in nouveauxOngletsSelectionnes:
165            if Onglet in self.OngletsSelectionnes : continue
166
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)
172
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)
178
179
180        for Onglet in self.OngletsSelectionnes:
181            if Onglet in nouveauxOngletsSelectionnes : continue
182
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)
187
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)
192
193        self.OngletsSelectionnes=nouveauxOngletsSelectionnes
194        self.jdc.editor.fenetreCentraleAffichee.reaffiche()
195