]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
journee Kevin
authorpascale.noyret <pascale.noyret@edf.fr>
Wed, 20 Feb 2019 16:02:12 +0000 (17:02 +0100)
committerpascale.noyret <pascale.noyret@edf.fr>
Wed, 20 Feb 2019 16:02:12 +0000 (17:02 +0100)
PSSE_PF_Eficas/ExtractGeneratorLoadLineandTransfoDico.py
PSSE_PF_Eficas/com.py
PSSE_PF_Eficas/utils.py

index fd406be21ca790233874c65101700b0448174294..7d686a635baf222a1cefefa6d3d2ceb14552e5e9 100644 (file)
@@ -1,20 +1,23 @@
 
-############################################################
-# ojectif de ce module: extraire des donnes pour afficher dans l'interface Eficas
-############################################################
+###################################################################################
+# objectif de ce module: extraire des donnees pour afficher dans l'interface Eficas
+###################################################################################
 NoBreakersandSwitches = True
+#_____________ TODO : demander a Claire si il faut absolument garder cela
+# si oui, eventuellement en faire une option propre
 
+import os
+import sys
+import numpy as np
+import pickle
 from utils import nettoyeName
 
-def ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH, PSSPY_PATH):
 
-    import os
-    import sys
-    import numpy as np
+def initPSSE ( PSSE_PATH, PSSPY_PATH):
+#_____________________________________
+# initialisation de PSSE
+# Appele de  ExtractGeneratorLoadLineandTransfoDico 
 
-    #print NetworkFile
-    #print PSSE_PATH
-    #psspy_path34 = os.path.join("../", PSSE_PATH, "PSSPY27")
     sys.path.append(PSSPY_PATH)
     os.environ['PATH'] +=  ';' + PSSE_PATH + ';'
 
@@ -32,161 +35,114 @@ def ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH, PSSPY_PATH):
     islct=6 # 6=no output; 1=standard
     psspy.progress_output(islct)
 
-    #open Network File
+
+def ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH, PSSPY_PATH,debug=False):
+# ________________________________________________________________________________________
+# genere un dictionnaire contient reseau pour interface Eficas 
+# a partir d un fichier PSSE
+# return des 5 dicos et ecriture dans le fichier temp.txt
+
+    # initialisation PSS
+    if debug : print ('initialisation PSSE')
+    initPSSE ( PSSE_PATH, PSSPY_PATH)
+
+    # extration du Reseau
     psspy.case(NetworkFile)
 
-    #Extract Loads
+    # Remplit Les dicos pour eficas
+
+    #Extract Loads depuis PSSE
+    if debug : print ("Read Load")
     sid = -1 #all buses
     flag = 1 #all in service loads/generators (4 all loads/generators)
 
-
     string = ['NUMBER']
     ierr,iarray = psspy.aloadint(sid,flag,string)
-
     string = ['NAME','ID','EXNAME']
     ierr,carray = psspy.aloadchar(sid,flag,string)
-
     string = ['mvaact']
     ierr, xdata = psspy.aloadcplx(sid, flag, string)
 
     LoadDico = {}  # [Bus name, load ID, extended bus name, bus number]
     for i in range(len(iarray[0])):
         idname = "Lo" + carray[1][i].strip()
-#        try: #id is an integer
-#            idname = "Lo" + str(int(carray[1][i]))
-#        except: #id is not an integer
-#            idname = "Lo" + carray[1][i]
         loadname = carray[0][i].strip()+ "__" + idname
         loadname=nettoyeName(loadname)
-        #loadname = loadname.replace(" ","_")
-        #loadname = loadname.replace("-","_")
-        #loadname = loadname.replace(".","_")
-        #loadname = loadname.replace("&","and")
-        #loadname = loadname.replace("%","pct")
-        #loadname = loadname.replace("=","eq")
-        #loadname = loadname.replace("#","_")
-        #loadname = loadname.replace("$","_")
-        #loadname = loadname.replace("/","_")
-        #loadname = loadname.replace("\\","_")
-        #try:
-        #    int(loadname[0])
-        #    loadname="_" + loadname
-        #except:
-        #    pass
+
         LoadDico[loadname]= {}
-        LoadDico[loadname]['NAME'] = carray[0][i].strip()
-        LoadDico[loadname]['ID'] = carray[1][i]
-        LoadDico[loadname]['EXNAME'] =carray[2][i]
-        LoadDico[loadname]['NUMBER']=iarray[0][i]
-        LoadDico[loadname]['P']=np.real(xdata)[0][i]
-        LoadDico[loadname]['Q']=np.imag(xdata)[0][i]
+        LoadDico[loadname]['NAME']   = carray[0][i].strip()
+        LoadDico[loadname]['ID']     = carray[1][i]
+        LoadDico[loadname]['EXNAME'] = carray[2][i]
+        LoadDico[loadname]['NUMBER'] = iarray[0][i]
+        LoadDico[loadname]['P']      = np.real(xdata)[0][i]
+        LoadDico[loadname]['Q']      = np.imag(xdata)[0][i]
 
     #Extract Generators
+    if debug : print ("Read Generators")
     sid = -1 #all buses
     flag = 1 #all in service loads/generators (4 all loads/generators)
-
     string = ['NUMBER']
     ierr,iarray = psspy.amachint(sid,flag,string)
-
     string = ['NAME','ID','EXNAME']
     ierr,carray = psspy.amachchar(sid,flag,string)
-
     rstrings = ['pgen','qgen','mbase','pmax','qmax','pmin','qmin']
     ierr, rarray = psspy.amachreal(sid, flag, rstrings)
 
     MachineDico = {} # [Bus name, machine ID, extended bus name, bus number]
     for i in range(len(iarray[0])):
         idname = "Gr" + carray[1][i].strip()
-##        try:
-##            idname = "Gr" + str(int(carray[1][i]))
-##        except:
-##            idname = "Gr" + carray[1][i]
         machinename = carray[0][i].strip()+ "__" + idname
         machinename=nettoyeName(machinename)
-        #machinename = machinename.replace(" ","_")
-        #machinename = machinename.replace("-","_")
-        #machinename = machinename.replace(".","_")
-        #machinename = machinename.replace("&","and")
-        #machinename = machinename.replace("%","pct")
-        #machinename = machinename.replace("=","eq")
-        #machinename = machinename.replace("#","_")
-        #machinename = machinename.replace("$","_")
-        #machinename = machinename.replace("/","_")
-        #machinename = machinename.replace("\\","_")            
-        #try:
-        #    int(machinename[0])
-        #    machinename="_" + machinename
-        #except:
-        #    pass
         MachineDico[machinename]={}
-        MachineDico[machinename]['NAME'] = carray[0][i].strip()
-        MachineDico[machinename]['ID'] = carray[1][i]
-        MachineDico[machinename]['EXNAME'] =carray[2][i]
-        MachineDico[machinename]['NUMBER']=iarray[0][i]
-        MachineDico[machinename]['P']=rarray[0][i]
-        MachineDico[machinename]['Q']=rarray[1][i]
-        MachineDico[machinename]['PMAX']=rarray[3][i]
-        MachineDico[machinename]['QMAX']=rarray[4][i]
-        MachineDico[machinename]['PMIN']=rarray[5][i]
-        MachineDico[machinename]['QMIN']=rarray[6][i]
+        MachineDico[machinename]['NAME']   = carray[0][i].strip()
+        MachineDico[machinename]['ID']     = carray[1][i]
+        MachineDico[machinename]['EXNAME'] = carray[2][i]
+        MachineDico[machinename]['NUMBER'] = iarray[0][i]
+        MachineDico[machinename]['P']      = rarray[0][i]
+        MachineDico[machinename]['Q']      = rarray[1][i]
+        MachineDico[machinename]['PMAX']   = rarray[3][i]
+        MachineDico[machinename]['QMAX']   = rarray[4][i]
+        MachineDico[machinename]['PMIN']   = rarray[5][i]
+        MachineDico[machinename]['QMIN']   = rarray[6][i]
 
     #Extract Motors
+    if debug : print ("Read Motors")
     sid = -1 #all buses
     flag = 1 #all in service loads/generators (4 all loads/generators)
 
     string = ['NUMBER','PSETCODE','BASECODE']
     ierr,iarray = psspy.aindmacint(sid,flag,string)
-
     string = ['NAME','ID','EXNAME']
     ierr,carray = psspy.aindmacchar(sid,flag,string)
-
     rstrings = ['psetpoint','mbase','p','q']
     ierr, rarray = psspy.aindmacreal(sid, flag, rstrings)
 
-
     MotorDico = {} # [Bus name, machine ID, extended bus name, bus number]
     for i in range(len(iarray[0])):
         idname = "Mo" + carray[1][i].strip()
-##        try:
-##            idname = "Gr" + str(int(carray[1][i]))
-##        except:
-##            idname = "Gr" + carray[1][i]
         motorname = carray[0][i].strip()+ "__" + idname
-        motorname = motorname.replace(" ","_")
-        motorname = motorname.replace("-","_")
-        motorname = motorname.replace(".","_")
-        motorname = motorname.replace("&","and")
-        motorname = motorname.replace("%","pct")
-        motorname = motorname.replace("=","eq")
-        motorname = motorname.replace("#","_")
-        motorname = motorname.replace("$","_")
-        motorname = motorname.replace("/","_")
-        motorname = motorname.replace("\\","_")
-        
-        try:
-            int(motorname[0])
-            motorname="_" + motorname
-        except:
-            pass
+        motorname = nettoyeName(motorname)
         MotorDico[motorname]={}
-        MotorDico[motorname]['NAME'] = carray[0][i].strip()
-        MotorDico[motorname]['ID'] = carray[1][i]
-        MotorDico[motorname]['EXNAME'] =carray[2][i]
-        MotorDico[motorname]['NUMBER']=iarray[0][i]
-        MotorDico[motorname]['PSETCODE']=iarray[1][i]
-        MotorDico[motorname]['BASECODE']=iarray[2][i]
-        MotorDico[motorname]['PSETPOINT']=rarray[0][i]
-        MotorDico[motorname]['MBASE']=rarray[1][i]
-        MotorDico[motorname]['P']=rarray[2][i]
-        MotorDico[motorname]['Q']=rarray[3][i]
-
-
-    #Extract Lignes
-    sid = -1
+        MotorDico[motorname]['NAME']      = carray[0][i].strip()
+        MotorDico[motorname]['ID']        = carray[1][i]
+        MotorDico[motorname]['EXNAME']    = carray[2][i]
+        MotorDico[motorname]['NUMBER']    = iarray[0][i]
+        MotorDico[motorname]['PSETCODE']  = iarray[1][i]
+        MotorDico[motorname]['BASECODE']  = iarray[2][i]
+        MotorDico[motorname]['PSETPOINT'] = rarray[0][i]
+        MotorDico[motorname]['MBASE']     = rarray[1][i]
+        MotorDico[motorname]['P']         = rarray[2][i]
+        MotorDico[motorname]['Q']         = rarray[3][i]
+
+
+    #Extract Line
+    if debug : print ("Read Line")
+    sid   = -1
     owner = 1
-    ties = 1
-    flag = 2 #6 for two-winding transfos
-    entry = 1 #each branch once, not both directions
+    ties  = 1
+    flag  = 2            #6 for two-winding transfos
+    entry = 1            #each branch once, not both directions
     string = ['FROMNUMBER','TONUMBER']
     ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)
     string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']
@@ -195,144 +151,84 @@ def ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH, PSSPY_PATH):
     LineDico = {} #[linename, Bus name 1, Bus name 2, ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]
     for i in range(len(iarray[0])):
         idname = carray[4][i].strip()
-        #idname = carray[4][i]
-        if '@' in idname:
-            idname = idname.replace('@','Br')
-        elif '*' in idname:
-            idname = idname.replace('*','Sw')
-        else:
-            try:
-                idname = 'Li' + str(int(idname))
-            except:
-                idname = 'Li' + idname
-        linename =carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname
-        linename = linename.replace(" ","_")
-        linename = linename.replace("-","_")
-        linename = linename.replace(".","_")
-        linename = linename.replace("&","and")
-        linename = linename.replace("%","pct")
-        linename = linename.replace("=","eq")
-        linename = linename.replace("#","_")
-        linename = linename.replace("$","_")
-        linename = linename.replace("/","_")
-        linename = linename.replace("\\","_")
-        try:
-            int(linename[0])
-            linename="_" + linename
-        except:
-            pass
+        linename = nettoyeName(linename)
+
+# TODO ______ 
+#   Attention : ceci peut exlure des lignes qui auraient leur place ici et qui s apelleraient BRquelquechose
+#   faire le test avant le remplacement dans la chaine et utilser continue
         if NoBreakersandSwitches:
             if 'Br' not in idname and 'Sw' not in idname:
                 LineDico[linename]={}
-                LineDico[linename]['FROMNAME']=carray[0][i].strip()
-                LineDico[linename]['TONAME']=carray[1][i].strip()
-                LineDico[linename]['ID']=carray[4][i]
-                LineDico[linename]['FROMEXNAME']=carray[2][i]
-                LineDico[linename]['TOEXNAME']=carray[3][i]
-                LineDico[linename]['FROMNUMBER']=iarray[0][i]
-                LineDico[linename]['TONUMBER']=iarray[1][i]
+                LineDico[linename]['FROMNAME']   = carray[0][i].strip()
+                LineDico[linename]['TONAME']     = carray[1][i].strip()
+                LineDico[linename]['ID']         = carray[4][i]
+                LineDico[linename]['FROMEXNAME'] = carray[2][i]
+                LineDico[linename]['TOEXNAME']   = carray[3][i]
+                LineDico[linename]['FROMNUMBER'] = iarray[0][i]
+                LineDico[linename]['TONUMBER']   = iarray[1][i]
 
 
-    print "Read lines"
     
     #Extract Transfos
+    if debug : print ("Read Transfos")
+# TODO ______ 
+# se renseigner sur sid owner  ...
     sid = -1
     owner = 1
     ties = 1
-    flag = 6 #two-winding transfos
-    entry = 1 #each branch once, not both directions
+    flag = 6               #two-winding transfos
+    entry = 1              #each branch once, not both directions
     string = ['FROMNUMBER','TONUMBER']
     ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)
     string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']
     ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string)
 
-    TfoDico = {} #[linename, Bus name 1, Bus name 2, machine ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]
+    TfoDico = {}              #[linename, Bus name 1, Bus name 2, machine ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]
     for i in range(len(iarray[0])):
         idname = 'Tr' + carray[4][i].strip()
-##        try:
-##            idname = 'Tr' + str(int(carray[4][i]))
-##        except:
-##            idname = 'Tr' + carray[4][i]
         tfoname = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname
-        tfoname = tfoname.replace(" ","_")
-        tfoname = tfoname.replace("-","_")
-        tfoname = tfoname.replace(".","_")
-        tfoname = tfoname.replace("&","and")
-        tfoname = tfoname.replace("%","pct")
-        tfoname = tfoname.replace("=","eq")
-        tfoname = tfoname.replace("#","_")
-        tfoname = tfoname.replace("$","_")
-        tfoname = tfoname.replace("/","_")
-        tfoname = tfoname.replace("\\","_")
-        try:
-            int(tfoname[0])
-            tfoname="_" + tfoname
-        except:
-            pass
+        tfoname = nettoyeName(tfoname)
         TfoDico[tfoname]={}
-        TfoDico[tfoname]['FROMNAME']=carray[0][i].strip()
-        TfoDico[tfoname]['TONAME']=carray[1][i].strip()
-        TfoDico[tfoname]['ID']=carray[4][i]
-        TfoDico[tfoname]['FROMEXNAME']=carray[2][i]
-        TfoDico[tfoname]['TOEXNAME']=carray[3][i]
-        TfoDico[tfoname]['FROMNUMBER']=iarray[0][i]
-        TfoDico[tfoname]['TONUMBER']=iarray[1][i]
-        TfoDico[tfoname]['#WIND']=2
-    print "Read Transfos"
+        TfoDico[tfoname]['FROMNAME']   = carray[0][i].strip()
+        TfoDico[tfoname]['TONAME']     = carray[1][i].strip()
+        TfoDico[tfoname]['ID']         = carray[4][i]
+        TfoDico[tfoname]['FROMEXNAME'] = carray[2][i]
+        TfoDico[tfoname]['TOEXNAME']   = carray[3][i]
+        TfoDico[tfoname]['FROMNUMBER'] = iarray[0][i]
+        TfoDico[tfoname]['TONUMBER']   = iarray[1][i]
+        TfoDico[tfoname]['#WIND']      = 2
 
     #Extract 3 winding Transfos
-    sid = -1 #assume a subsystem containing all buses in working case
-    owner_3flow = 1 #1 = use bus ownership 2 = use tfo ownership
-    ties_3flow = 3 #ignored bc sid is negative. 3 = interior subsystem and subsystem tie 3 winding transformers 
-    flag=3 #all 3 winding transfo windings
-    string = ['wind1number','wind2number','wind3number']
+    if debug : print ("Read winding Transfos")
+    sid = -1                    # assume a subsystem containing all buses in working case
+    owner_3flow = 1             #1 = use bus ownership 2 = use tfo ownership
+    ties_3flow = 3              #ignored bc sid is negative. 3 = interior subsystem and subsystem tie 3 winding transformers 
+    flag=3                      #all 3 winding transfo windings
+    string      = ['wind1number','wind2number','wind3number']
     ierr,iarray = psspy.awndint(sid,owner,ties,flag,entry,string)
-    string = ['wind1name','wind2name','wind3name','wind1exname','wind2exname','wind3exname','id']
+    string      = ['wind1name','wind2name','wind3name','wind1exname','wind2exname','wind3exname','id']
     ierr,carray = psspy.awndchar(sid,owner,ties,flag,entry,string)
 
     #[Bus name 1, Bus name 2, Bus name 3, machine ID, extended bus name 1, extended bus name 2, extended bus name 3, bus number 1, bus number 2, bus number 3]
+
     for i in range(len(iarray[0])):
         idname = 'Tr' + carray[6][i].strip()
-##        try:
-##            idname = 'Tr' + str(int(carray[4][i]))
-##        except:
-##            idname = 'Tr' + carray[4][i]
+        tfoname = nettoyeName(tfoname)
         tfoname = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + carray[2][i].strip() + "__" + idname
-        tfoname = tfoname.replace(" ","_")
-        tfoname = tfoname.replace("-","_")
-        tfoname = tfoname.replace(".","_")
-        tfoname = tfoname.replace("&","and")
-        tfoname = tfoname.replace("%","pct")
-        tfoname = tfoname.replace("=","eq")
-        tfoname = tfoname.replace("#","_")
-        tfoname = tfoname.replace("$","_")
-        tfoname = tfoname.replace("/","_")
-        tfoname = tfoname.replace("\\","_")
-        try:
-            int(tfoname[0])
-            tfoname="_" + tfoname
-        except:
-            pass
         TfoDico[tfoname]={}
-        TfoDico[tfoname]['FROMNAME']=carray[0][i].strip()
-        TfoDico[tfoname]['TONAME']=carray[1][i].strip()
-        TfoDico[tfoname]['3NAME']=carray[2][i].strip()
-        TfoDico[tfoname]['ID']=carray[6][i]
-        TfoDico[tfoname]['FROMEXNAME']=carray[3][i]
-        TfoDico[tfoname]['TOEXNAME']=carray[4][i]
-        TfoDico[tfoname]['3EXNAME']=carray[5][i]
-        TfoDico[tfoname]['FROMNUMBER']=iarray[0][i]
-        TfoDico[tfoname]['TONUMBER']=iarray[1][i]
-        TfoDico[tfoname]['3NUMBER']=iarray[2][i]
-        TfoDico[tfoname]['#WIND']=3
-    print "Read 3-Winding Transfos"
-    # path1 = os.getcwd()
-    # import json
-    # path_temp=os.path.dirname(NetworkFile)
-    # # filew = open(path_temp+'/temp.txt', 'w')
-    # json.dump(MachineDico, open("toto.txt", 'w'))
-    # # filew.write(MachineDico)
-    # # filew.close()
+        TfoDico[tfoname]['FROMNAME']   = carray[0][i].strip()
+        TfoDico[tfoname]['TONAME']     = carray[1][i].strip()
+        TfoDico[tfoname]['3NAME']      = carray[2][i].strip()
+        TfoDico[tfoname]['ID']         = carray[6][i]
+        TfoDico[tfoname]['FROMEXNAME'] = carray[3][i]
+        TfoDico[tfoname]['TOEXNAME']   = carray[4][i]
+        TfoDico[tfoname]['3EXNAME']    = carray[5][i]
+        TfoDico[tfoname]['FROMNUMBER'] = iarray[0][i]
+        TfoDico[tfoname]['TONUMBER']   = iarray[1][i]
+        TfoDico[tfoname]['3NUMBER']    = iarray[2][i]
+        TfoDico[tfoname]['#WIND']      = 3
+
+# ___ TODO __ verifier si on peut les enlever pour PSSE ?
     filew = open('temp.txt', 'w')
     filew.write(NetworkFile + '\n')
     filew.write(PSSE_PATH + '\n')
@@ -341,54 +237,66 @@ def ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH, PSSPY_PATH):
     return MachineDico, LoadDico, LineDico, TfoDico, MotorDico
 
 
-def PFExtractGeneratorLoadLineandTransfoDico(NetworkFile, PF_PATH,Python3_path):
-    # PSEN sous PowerFactory Lecture les donnees de Generateur,Load,Line,Transfo
-    import os,pickle
-    import sys, subprocess
-    import numpy as np
+def convert(data):
+# _________________
+# fonction recursive permettant de relire les data issues de python3
+# appelee uniquement par PFExtractGeneratorLoadLineandTransfoDico
+# a resorber si le code est compatible python 2 / 3
+
+    import collections
+    if isinstance(data, basestring):
+       return str(data)
+    elif isinstance(data, collections.Mapping):
+       return dict(map(convert, data.iteritems()))
+    elif isinstance(data, collections.Iterable):
+       return type(data)(map(convert, data))
+    else:
+       return data
+
+def PFExtractGeneratorLoadLineandTransfoDico(NetworkFile, PF_PATH, Python3_path):
+#_________________________________________________________________________________
+# PSEN sous PowerFactory Lecture les donnees de Generateur,Load,Line,Transfo
+# fonction identique mais lit un reseau PowerFactory et non PSSE
+# attention --> python3 et non python2 dou subprocess et ecriture de fichier pour passer/recuperer  les donnees 
+# a simplifier lorsqu on aura un code compatible 2.7 et 3
+# lance le code com.py dans un sous process
+
     path1=os.getcwd()
-    # path_temp=os.path.dirname(NetworkFile)
     filew=open('temp.txt','w')
     filew.write(NetworkFile+'\n')
     filew.write(PF_PATH + '\n')
     filew.write(Python3_path + '\n')
     filew.close()
-    print('changer le chemin de Python3 executable')
-    lancer = [Python3_path+'/python.exe', path1+'/com.py']# changer le chemin de Python3 executable
+
+# ___ TODO __ verifier que python.exe est bien sous Python3_path et sinon 
+# afficher un message 
+    #print('changer le chemin de Python3 executable')
+
+    lancer = [Python3_path+'/python.exe', path1+'/com.py']
+    import subprocess
     proc = subprocess.Popen(lancer)
     proc.wait()
+
+# reconvertit les donnees crees en python3 pour les returner a Eficas
     with open('Data_for_interface', 'rb') as fichier:
        mon_depickler = pickle.Unpickler(fichier)
        data_file = mon_depickler.load()
-
-    import collections
-    def convert(data):
-        if isinstance(data, basestring):
-            return str(data)
-        elif isinstance(data, collections.Mapping):
-            return dict(map(convert, data.iteritems()))
-        elif isinstance(data, collections.Iterable):
-            return type(data)(map(convert, data))
-        else:
-            return data
     data=convert(data_file)
-    MachineDico=data['MachineDico']
-    LoadDico = data['LoadDico']
-    LineDico = data['LineDico']
-    TfoDico = data['TransfoDico']
-    MotorDico = data['MotorDico']
-    os.remove('Data_for_interface')
 
+    MachineDico = data['MachineDico']
+    LoadDico    = data['LoadDico']
+    LineDico    = data['LineDico']
+    TfoDico     = data['TransfoDico']
+    MotorDico   = data['MotorDico']
+    os.remove('Data_for_interface')
     
     return MachineDico, LoadDico, LineDico, TfoDico, MotorDico
 
+if __name__ == "__main__":
+     pass
 
-#NetworkFile=r"C:\Users\j15773\Documents\Projects\DEWA\Task 4\FEWA_GCCIA_SUMMAX2018_OPF_EQ2.sav"
-
-#PSSE_PATH=r"C:\Program Files (x86)\PTI\PSSE34\PSSBIN"
-#PSSPY_PATH=r"C:\Program Files (x86)\PTI\PSSE34\PSSPY27"
-
-#PSSE_PATH=r"C:\Program Files (x86)\PTI\PSSE33\PSSBIN"
-#PSSPY_PATH=r"C:\Program Files (x86)\PTI\PSSE33\PSSBIN"
-
-#MachineDico, LoadDico, LineDico, TfoDico, MotorDico = ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH,PSSPY_PATH)
+     # tester convert
+     # faire 2 methodes testPFExtractGeneratorLoadLineandTransfoDico et testExtractGeneratorLoadLineandTransfoDico
+     # appelle les methodes PFExtractGeneratorLoadLineandTransfoDico et  ExtractGeneratorLoadLineandTransfoDico avec un mini reseau connu
+     # on verifie que MachineDico, LoadDico, LineDico, TfoDico, MotorDico contiennent bien ce qu on attendait 
+     # les 2 fichiers contenant les reseaux seront dans la base git
index 77e9ec83df7f5d28226ffc6e3c63ceb83847fa2d..0e656bf4335dbfafd4d9d84f9e32837d12fad7c0 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/python3
-########################################################################################################################
+##############################################################################################################################################
 # ojectif de ce module: extraire des donnes pour afficher dans l'interface Eficas. Subprocess dans la fonction PFExtractGeneratorLoadLineandTransfoDico
-########################################################################################################################
+##############################################################################################################################################
 import pdb
 
 NoBreakersandSwitches = True
@@ -28,12 +28,12 @@ def PFExtractData(NetworkFile, PF_PATH):
     user = app.GetCurrentUser()
     ComImp = user.CreateObject('ComPFDIMPORT')# objet pour importer pfd file
 
-    app.SetWriteCacheEnabled(1)  # Disable consistency check
-    ComImp.g_file = NetworkFile
-    ComImp.g_target = user  # project is imported under the user account
-    err = ComImp.Execute()  # Execute command starts the import process
+    app.SetWriteCacheEnabled(1)             # Disable consistency check
+    ComImp.g_file   = NetworkFile
+    ComImp.g_target = user                  # project is imported under the user account
+    err = ComImp.Execute()                  # Execute command starts the import process
     ComImp.Delete()
-    app.SetWriteCacheEnabled(0)  # Enable consistency check
+    app.SetWriteCacheEnabled(0)             # Enable consistency check
     prjs = user.GetContents('*.IntPrj')
     prjs.sort(key=lambda x: x.gnrl_modif, reverse=True)
     #•pdb.set_trace()
index f37c2d2f54d67cd18eb14464c5e08c6ca876d242..5b36e5e302fbd94135cd23639fa519e705c5ff61 100644 (file)
@@ -5,16 +5,19 @@
 debug = True
 
 dicoCaracteresSpeciaux = {
-        " ":"_",
-        "-" : "_" ,
-        "." : "_" ,
-        "&" : "and" ,
-        "%" : "pct" ,
-        "=" : "eq" ,
-        "#" : "_" ,
-        "$" : "_" ,
-        "/" : "_" ,
+        " "  : "_",
+        "-"  : "_" ,
+        "."  : "_" ,
+        "&"  : "and" ,
+        "%"  : "pct" ,
+        "="  : "eq" ,
+        "#"  : "_" ,
+        "$"  : "_" ,
+        "/"  : "_" ,
         "\\" : "_" ,
+        "@"  : "Br",
+        "*"  : "Sw",
+        "'"  : "_"
        }
 def nettoyeName (name)  : 
 # ---------------------