wolfhece 1.8.13__py3-none-any.whl → 2.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. wolfhece/GraphNotebook.py +0 -1
  2. wolfhece/PyCrosssections.py +591 -5
  3. wolfhece/PyDraw.py +1151 -413
  4. wolfhece/PyGui.py +2 -4
  5. wolfhece/PyParams.py +1515 -852
  6. wolfhece/PyVertex.py +73 -73
  7. wolfhece/PyVertexvectors.py +226 -808
  8. wolfhece/RatingCurve.py +19 -6
  9. wolfhece/apps/wolf2D.py +11 -0
  10. wolfhece/apps/wolfcompare2Darrays.py +51 -22
  11. wolfhece/bernoulli/NetworkOpenGL.py +337 -341
  12. wolfhece/drawing_obj.py +25 -0
  13. wolfhece/hydrology/Catchment.py +77 -77
  14. wolfhece/hydrology/Optimisation.py +206 -53
  15. wolfhece/hydrology/PostProcessHydrology.py +22 -22
  16. wolfhece/hydrology/SubBasin.py +17 -17
  17. wolfhece/hydrology/constant.py +4 -0
  18. wolfhece/hydrology/cst_exchanges.py +2 -1
  19. wolfhece/lazviewer/processing/estimate_normals/estimate_normals.cp310-win_amd64.pyd +0 -0
  20. wolfhece/lazviewer/vfuncs/vfuncs.cp310-win_amd64.pyd +0 -0
  21. wolfhece/libs/WolfDll.dll +0 -0
  22. wolfhece/libs/wolfogl.cp310-win_amd64.pyd +0 -0
  23. wolfhece/libs/wolfpy.cp310-win_amd64.pyd +0 -0
  24. wolfhece/mesh2d/wolf2dprev.py +4 -4
  25. wolfhece/multiprojects.py +13 -13
  26. wolfhece/pylogging.py +1 -1
  27. wolfhece/pyviews.py +23 -23
  28. wolfhece/wolf_array.py +69 -152
  29. wolfhece/wolf_texture.py +39 -16
  30. wolfhece/wolfresults_2D.py +1 -1
  31. {wolfhece-1.8.13.dist-info → wolfhece-2.0.0.dist-info}/METADATA +3 -2
  32. {wolfhece-1.8.13.dist-info → wolfhece-2.0.0.dist-info}/RECORD +37 -33
  33. wolfhece/apps/wolfgpu.py +0 -19
  34. /wolfhece/lazviewer/processing/estimate_normals/{estimate_normals.pyd → estimate_normals.cp39-win_amd64.pyd} +0 -0
  35. /wolfhece/lazviewer/vfuncs/{vfuncs.pyd → vfuncs.cp39-win_amd64.pyd} +0 -0
  36. {wolfhece-1.8.13.dist-info → wolfhece-2.0.0.dist-info}/LICENCE +0 -0
  37. {wolfhece-1.8.13.dist-info → wolfhece-2.0.0.dist-info}/WHEEL +0 -0
  38. {wolfhece-1.8.13.dist-info → wolfhece-2.0.0.dist-info}/top_level.txt +0 -0
@@ -15,7 +15,7 @@ import wx.lib.mixins.listctrl as listmix
15
15
  from os.path import dirname, join, curdir
16
16
  import re
17
17
  from math import pi,ceil,sin,cos,sqrt
18
- import logging
18
+ import logging
19
19
 
20
20
  try:
21
21
  from OpenGL.GL import *
@@ -29,7 +29,7 @@ except:
29
29
 
30
30
  from ..PyTranslate import _
31
31
  from ..pylogging import create_wxlogwindow
32
- from ..PyParams import Wolf_Param
32
+ from ..PyParams import Wolf_Param, Type_Param, key_Param
33
33
  from ..PyPalette import wolfpalette
34
34
  try:
35
35
  from ..libs import wolfpy
@@ -39,7 +39,7 @@ except:
39
39
  msg+=_(' If your Python version is not 3.7.x or 3.9.x, you need to compile an adapted library with compile_wcython.py in wolfhece library path')
40
40
  msg+=_(' See comments in compile_wcython.py or launch *python compile_wcython.py build_ext --inplace* in :')
41
41
  msg+=' ' + dirname(__file__)
42
-
42
+
43
43
  raise Exception(msg)
44
44
 
45
45
  cubeVertices = ((100,100,0),(100,10,0),(100,200,0),(10,100,0))
@@ -82,7 +82,7 @@ class Bernoulli_Frame(wx.Frame):
82
82
  SaveNet=fileMenu.Append(wx.ID_SAVE, _('&Save'))
83
83
  Launch=fileMenu.Append(wx.ID_ANY, _('&Launch Simulation'))
84
84
  fileMenu.AppendSeparator()
85
-
85
+
86
86
  imp = wx.Menu()
87
87
  self.Network0D=False
88
88
  NWoE=imp.Append(wx.ID_ANY, _('Import EPANET'))
@@ -107,7 +107,7 @@ class Bernoulli_Frame(wx.Frame):
107
107
  self.menubar=menubar
108
108
  self.SetMenuBar(self.menubar)
109
109
  #Ouvrir box pour ajouter nouveau jeu ou nouveau lien
110
- #On associe les différents évènements
110
+ #On associe les différents évènements
111
111
 
112
112
  #Partie Toolbar
113
113
  self.count = 5
@@ -123,7 +123,7 @@ class Bernoulli_Frame(wx.Frame):
123
123
  self.Bind(wx.EVT_TOOL, self.OnQuit, texit)
124
124
  # self.Bind(wx.EVT_TOOL, self.OnUndo, tundo)
125
125
  # self.Bind(wx.EVT_TOOL, self.OnRedo, tredo)
126
-
126
+
127
127
  self.SetSize((600, 600))
128
128
  self.SetTitle(_('Network 0D'))
129
129
  self.Centre()
@@ -190,7 +190,7 @@ class Bernoulli_Frame(wx.Frame):
190
190
  #self=self.canvas.mpl_connect('button_press_event', self.OnClick)
191
191
  #Préparation des capacité externes liées à la manipulation de l'affichage
192
192
  self.Add_Properties()
193
- #Sous-routine pour extraire l'ensemble des numéros de vecteur et de noeuds
193
+ #Sous-routine pour extraire l'ensemble des numéros de vecteur et de noeuds
194
194
  #Création du réseau afin de l'afficher en rendant comme résultat les éléments d'une structure OpenGL
195
195
  TTTime=[0.0,0.0,0.0,0.0,0.0,0.0,0.0]
196
196
  start = time.time()
@@ -290,7 +290,7 @@ class Bernoulli_Frame(wx.Frame):
290
290
  namepath=dlg.GetPath()
291
291
  t=1
292
292
  dlg.Destroy()
293
-
293
+
294
294
  def OnOpen(self, e):
295
295
  """Obtention du patch menant au fichier ".vecz" pour obtenir fichier "zones" """
296
296
  dlg = wx.FileDialog(self, _("Choose the .vecz file"),
@@ -332,7 +332,7 @@ class Bernoulli_Frame(wx.Frame):
332
332
  #New_frame=NewEdgeFrame('New edge in the network',self)
333
333
  #self.frame_number += 1
334
334
 
335
-
335
+
336
336
  def Initialise_Network(self):
337
337
  """Initialisation des variables du système"""
338
338
  self.Nodes={}
@@ -340,7 +340,7 @@ class Bernoulli_Frame(wx.Frame):
340
340
  self.Nodes['IncJunctions']={}
341
341
  Test=0
342
342
 
343
-
343
+
344
344
  def Assoc_element(self):
345
345
  """Procédure utilisée pour identifier le noeud ou vecteur le plus proche d'un clic effectué par l'utilisateur"""
346
346
  Index,dist=closest_node(self.LocNode, self.List_Nodes_OGL['CoordPlan'][:])
@@ -371,31 +371,31 @@ class Bernoulli_Frame(wx.Frame):
371
371
 
372
372
  return Test
373
373
 
374
-
374
+
375
375
  def Node_To_add(self,e):
376
376
  """Procédure d'ajout d'un noeud au sein du réseau"""
377
377
  Test=1
378
378
  #Nouvelle fenêtre s'ouvrant permettant ainsi d'ajouter les coordonnées du noeud
379
379
  New_frame=NewNodeFrame('New node in the network',self)
380
- #
381
-
380
+ #
381
+
382
382
  def Edge_To_add(self,e):
383
383
  """Procédure d'ajout d'un Edge au sein du réseau"""
384
- Test=1
384
+ Test=1
385
385
  #Parcours du Graph à faire afin de s'assurer qu'au minimum deux noeuds sont bien présents au sein du réseau
386
386
  New_frame=NewEdgeFrame('New edge in the network',self)
387
-
388
-
387
+
388
+
389
389
  def Pattern_To_add(self,e):
390
390
  """Procédure d'ajout d'un Pattern au sein du réseau"""
391
- Test=1
391
+ Test=1
392
392
  #Nouvelle fenêtre permettant d'à la fois
393
393
  #New_Pattern=NewPatternFrame('New pattern in the network',self)
394
394
  dia = MyDialog(self, -1, 'Add new patterns (Quit to activate your choices)')
395
395
  dia.ShowModal()
396
396
  dia.Destroy()
397
397
 
398
-
398
+
399
399
  def Edition_Evaluation(self,e):
400
400
  """Mise à jour des variables d'édition notamment pour arrêter ou commencer la phase d'édition du réseau"""
401
401
  self.First_Node=[]
@@ -419,7 +419,7 @@ class Bernoulli_Frame(wx.Frame):
419
419
  def Network_To_Show(self):
420
420
  """Mise en place d'une procédure uniquement dédiée à initier la représentation du réseau """
421
421
  self.Show_Network()
422
-
422
+
423
423
  def onMotion(self, evt):
424
424
  """This is a bind event for the mouse moving on the MatPlotLib graph
425
425
  screen. It will give the x,y coordinates of the mouse pointer.
@@ -434,8 +434,8 @@ class Bernoulli_Frame(wx.Frame):
434
434
  y = ""
435
435
 
436
436
  self.Text.SetLabelText("x : %s ,y: %s" % (x,y))
437
-
438
-
437
+
438
+
439
439
  def Print_VectorData(self):
440
440
  """Sous-routine utilisée pour ouvrir une nouvelle fenêtre locale via un clic gauche afin d'afficher les informations du vecteur sélectionné"""
441
441
  #Ouverture d'une nouvelle fenêtre
@@ -450,7 +450,7 @@ class Bernoulli_Frame(wx.Frame):
450
450
  title = 'Vector ID: '+VecName
451
451
  frame = Mywin(parent=self,title=title,MainW=self,Type_Element=0)
452
452
 
453
-
453
+
454
454
  def Print_NodeData(self):
455
455
  """Sous-routine utilisée pour ouvrir une nouvelle fenêtre locale via un clic gauche afin d'afficher les informations du noeud sélectionné"""
456
456
  #Ouverture d'une nouvelle fenêtre
@@ -466,7 +466,7 @@ class Bernoulli_Frame(wx.Frame):
466
466
  title = 'Node ID: '+NodeName
467
467
  frame = Mywin(parent=self,title=title,MainW=self,Type_Element=1)
468
468
 
469
-
469
+
470
470
  def Import_Directory(self):
471
471
  """On vient demander à l'utilisateur de fournir le fichier principal de son réseau, dans laquel il souhaite sauvegarder celui-ci potentiellement"""
472
472
  dlg = wx.DirDialog(self, "Choose the Network directory")
@@ -480,8 +480,8 @@ class Bernoulli_Frame(wx.Frame):
480
480
  dlg.Destroy()
481
481
  Name='Test_Network'
482
482
  return Name,Directory
483
-
484
-
483
+
484
+
485
485
  def Prepare_Network(self,pathname):
486
486
  """On vient écrire dans le dossier remis par l'utilisateur les paramètres afin de les afficher à l'écran pour éventuellement les modifier via l'utilisateur"""
487
487
  #Partie exportation des fichiers principaux généraux
@@ -489,8 +489,8 @@ class Bernoulli_Frame(wx.Frame):
489
489
  self.ParamFile=pathname+'\\General_Network.param'
490
490
  self.GeneralParam = Wolf_Param(self, filename=self.ParamFile)
491
491
  Test=1
492
-
493
-
492
+
493
+
494
494
  def Import_General_Parameters(self,namepath):
495
495
  """On va recherche les différents paramètres généraux utiles de la simulation selon leur catégorie afin de former un dictionnaire"""
496
496
  #Dossier Principal
@@ -562,16 +562,16 @@ class Bernoulli_Frame(wx.Frame):
562
562
  Test=1
563
563
  return Param
564
564
 
565
-
565
+
566
566
  def Update_Param(self):
567
567
  """Mise-à-jour des paramètres sur base de la sauvegarde du fichier de paramètres"""
568
568
  ParFrame=self.GeneralParam
569
569
  for group in ParFrame.myparams.keys():
570
570
  for param_name in ParFrame.myparams[group].keys():
571
- self.Param[group][param_name]=ParFrame.myparams[group][param_name]['value']
571
+ self.Param[group][param_name]=ParFrame.myparams[group][param_name][key_Param.VALUE]
572
572
  Test=1
573
573
  Test=1
574
-
574
+
575
575
  def Select_Node(self,LocNode,List_Nodes):
576
576
  #Choix à faire du premier ou second noeud de l'Edge : on vient donc associer selon les coordonnées du noeud, celui qui est le plus proche
577
577
  #Loc_Node,dis=closest_node(LocNode, Discr_Nodes['Coord'][:])
@@ -617,10 +617,10 @@ class Bernoulli_Frame(wx.Frame):
617
617
  self.Last_Node=[]
618
618
  Test=1
619
619
 
620
-
620
+
621
621
  def Show_Network(self):
622
622
  """Sous-routine spécifique dédiée à l'affichage du réseau"""
623
- self.Centre()
623
+ self.Centre()
624
624
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
625
625
 
626
626
  #Partie Figure
@@ -669,12 +669,12 @@ class Bernoulli_Frame(wx.Frame):
669
669
 
670
670
  frame_sizer.Add(self.canvas, 0, wx.EXPAND)
671
671
 
672
-
672
+
673
673
  self.SetSizer(frame_sizer)
674
674
  Test=1
675
675
  #self.Fit()
676
-
677
-
676
+
677
+
678
678
  def Gen_Param_To_show(self,e):
679
679
  """Sous-routine pour l'ouverture d'une frame permettant d'illustrer les paramètres généraux de résolution du système"""
680
680
  if self.GeneralParam is not None:
@@ -683,8 +683,8 @@ class Bernoulli_Frame(wx.Frame):
683
683
  # #New_frame=GenParamFrame('Used parameters in the network',self)
684
684
  # ParamFile=join(self.mainpath, 'General_Network.param')
685
685
  # self.GeneralParam=Wolf_Param(self,filename=ParamFile)
686
-
687
-
686
+
687
+
688
688
  def General_Parameters_Menu(self):
689
689
  """Menu permettant d'accéder au contenu des paramètres généraux du dossier afin de réaliser comment est construit le réseau"""
690
690
  AddMenu = wx.Menu()
@@ -693,8 +693,8 @@ class Bernoulli_Frame(wx.Frame):
693
693
  MenuName='Show'
694
694
  General_Download=AddMenu.Append(wx.ID_ANY, MenuName)
695
695
  self.Bind(wx.EVT_MENU, self.Gen_Param_To_show, General_Download)
696
-
697
-
696
+
697
+
698
698
  def Pattern_To_show(self,e):
699
699
  """Affichage du Pattern sous format de Tableau + possibilité affichage graphique Matplotlib"""
700
700
  Test=1
@@ -703,7 +703,7 @@ class Bernoulli_Frame(wx.Frame):
703
703
  New_frame=NewPatternFrame('Used pattern in the network',self)
704
704
  test=1
705
705
 
706
-
706
+
707
707
  def Patterns_Exchange_Menu(self):
708
708
  """Mise en place des Menus de Pattern"""
709
709
 
@@ -727,7 +727,7 @@ class Bernoulli_Frame(wx.Frame):
727
727
 
728
728
  Test=1
729
729
 
730
-
730
+
731
731
  def Patterns_Pumps_Menu(self):
732
732
  """Mise en place des Menus de Pattern"""
733
733
 
@@ -752,7 +752,7 @@ class Bernoulli_Frame(wx.Frame):
752
752
 
753
753
  Test=1
754
754
 
755
-
755
+
756
756
  def Pump_To_show(self,e):
757
757
  """Affichage du Pattern sous format de Tableau + possibilité affichage graphique Matplotlib"""
758
758
  Test=1
@@ -761,8 +761,8 @@ class Bernoulli_Frame(wx.Frame):
761
761
  New_frame=NewPumpFrame('Used pump in the network',self)
762
762
 
763
763
  test=1
764
-
765
-
764
+
765
+
766
766
  def SaveNetwork(self,e):
767
767
  """Procedure d'écriture des différents fichiers du réseau implémenté pour sauvegarder modifications ou exécuter simulation"""
768
768
  #Première étape liée au choix du dossier où le nouveau dossier réseau est placé ainsi que le nom de ce dossier réseau
@@ -801,14 +801,14 @@ class Bernoulli_Frame(wx.Frame):
801
801
 
802
802
  self.mainpath=pathname
803
803
  return pathname
804
-
805
-
804
+
805
+
806
806
  def Find_Spec_Elem(self,e):
807
807
  """Evènement permettant d'identifier la position immédiate d'un noeud ou d'une canalisation sur base de son nom"""
808
808
  #Nouvelle fenêtre s'ouvrant permettant ainsi d'ajouter le nom de l'élément ainsi que le type d'élément à rechercher
809
809
  New_frame=IdElementFrame('Researched element in the network',self)
810
-
811
-
810
+
811
+
812
812
  def Show_Spec_Elem(self,e):
813
813
  """Sous-routine destinée à aller chercher les informations paramétriques disponibles pour étudier l'influence des paramètres sur indicateur de réseau"""
814
814
  #Première étape est de demander à l'utilisateur de fournir nom de fichier où trouver l'étude paramétrique du réseau
@@ -842,7 +842,7 @@ class Bernoulli_Frame(wx.Frame):
842
842
  if(File_To_Read):
843
843
  with open(namepath) as f:
844
844
  content = f.readlines()
845
- content = [x.rstrip('\n') for x in content]
845
+ content = [x.rstrip('\n') for x in content]
846
846
  for NewLine in content:
847
847
  NewLine=NewLine.lstrip()
848
848
  if(NewLine==NewParam):
@@ -876,8 +876,8 @@ class Bernoulli_Frame(wx.Frame):
876
876
  New_frame=ParamToShow(self,'Parameters to show')
877
877
  else:
878
878
  self.Show_Param_Clients=True
879
-
880
-
879
+
880
+
881
881
  def analyse_params(self):
882
882
  """Analyse de tous les paramètres présents """
883
883
  Test_Node=2
@@ -963,7 +963,7 @@ class Bernoulli_Frame(wx.Frame):
963
963
  cpt_elem += 1
964
964
  return Test_Node,Test_Vector,Loc_Param_Color
965
965
 
966
-
966
+
967
967
  def analyse_params_Clients(self):
968
968
  """Analyse de tous les paramètres présents pour évaluer la présence et proportions de clients selon chaque méthode d'aggrégation"""
969
969
  Test_Node=2
@@ -1051,13 +1051,13 @@ class Bernoulli_Frame(wx.Frame):
1051
1051
  cpt_elem += 1
1052
1052
  return Test_Node,Test_Vector,Loc_Param_Color
1053
1053
 
1054
-
1054
+
1055
1055
  def Add_Properties(self):
1056
1056
  """Sous-routine destinée à initier les capacités de l'affichage (zoom, ...)"""
1057
1057
  self.Zoom=0
1058
1058
  self.NodeZoom=0
1059
1059
  self.ZoomN=[[],[],[],[]]
1060
-
1060
+
1061
1061
  def Zoom_Elem(self,e):
1062
1062
  """#Sous-routine permettant d'initialiser la procédure de Zoom consistant à sélectionner les deux coins opposés d'un rectangle pour définir
1063
1063
  #zone de zoom"""
@@ -1103,7 +1103,7 @@ class Bernoulli_Frame(wx.Frame):
1103
1103
  self.menubar.Refresh()
1104
1104
  Test=1
1105
1105
 
1106
-
1106
+
1107
1107
  def LaunchSimul(self,e):
1108
1108
  """Sous-routine dédiée au lancement d'une simulation en ouvrant notamment une fenêtre qui permet d'identifier le type de simulation voulue par l'utilisateur"""
1109
1109
  #Il faut sauvegarder le réseau si des modifications ont été réalisées ou si le réseau est nouveau
@@ -1112,8 +1112,8 @@ class Bernoulli_Frame(wx.Frame):
1112
1112
  else:
1113
1113
  Text='There is no saved network. Try again.'
1114
1114
  logging.info(Text)
1115
-
1116
-
1115
+
1116
+
1117
1117
  def Verified_Launch(self):
1118
1118
  """Simulation permettant le lancement de la simulation ainsi que sauvegarde des résultats"""
1119
1119
  if(not(self.Saved_Network)):
@@ -1143,7 +1143,7 @@ class Bernoulli_Frame(wx.Frame):
1143
1143
 
1144
1144
  def Provide_Values(self,file):
1145
1145
  with open(file) as f:
1146
- content = f.read().splitlines()
1146
+ content = f.read().splitlines()
1147
1147
 
1148
1148
  #On ferme le fichier créé uniquement pour obtenir les noms
1149
1149
 
@@ -1165,8 +1165,8 @@ class Bernoulli_Frame(wx.Frame):
1165
1165
  cpt_Node+=1
1166
1166
  Test=1
1167
1167
  return Nodes
1168
-
1169
-
1168
+
1169
+
1170
1170
  def Attr_Values_Vectors(self,Zones,Q,NameListVec,ID_Zone,total_div_time):
1171
1171
  """S'applique à une catégorie d'élément dans le réseau"""
1172
1172
  cpt_vec=0
@@ -1296,7 +1296,7 @@ class MyCanvasBase(glcanvas.GLCanvas):
1296
1296
  self.new_edge=self.loc_new_edge
1297
1297
  if(hasattr(self,'Edition_Mode_Local')):
1298
1298
  self.Edition_Mode=self.Edition_Mode_Local
1299
- #Clic gauche renvoie des informations minimes sur le noeud ou tronçon le plus proche
1299
+ #Clic gauche renvoie des informations minimes sur le noeud ou tronçon le plus proche
1300
1300
  if(self.Parent.Edition_Mode):
1301
1301
  Test=1
1302
1302
  #Clic gauche utilisé directement pour faire les liaisons entre les noeuds en venant soit sélectionner le premier noeud ou le second noeud pour faire la liaison
@@ -1331,7 +1331,7 @@ class MyCanvasBase(glcanvas.GLCanvas):
1331
1331
  self.Edition_Mode=self.Edition_Mode_Local
1332
1332
  #clic droit ouvre sur une fenêtre ouvrant sur la plupart des attributs de l'élément afin de les modifier (écriture souple ou lourde)
1333
1333
  if(self.Parent.Edition_Mode):
1334
- #Le clic droit amène directement dans la sous-routine d'ajout de noeud
1334
+ #Le clic droit amène directement dans la sous-routine d'ajout de noeud
1335
1335
  New_frame=NewNodeFrame('New node in the network',self)
1336
1336
  else:
1337
1337
  #Clic Droit
@@ -1345,17 +1345,17 @@ class MyCanvasBase(glcanvas.GLCanvas):
1345
1345
  #self.Show_Results=False
1346
1346
  #Test temporaire afin de réaliser cette fois une surimpression du réseau en affichant des résultats
1347
1347
  #Phase de reconnaissance des coordonnées afin d'y associer l'élément le plus proche
1348
- test=1
1349
-
1348
+ test=1
1349
+
1350
1350
  #La fermeture de la fenêtre secondaire vient donc indiquer que l'utilisateur a potentiellement renseigné ce qui l'intéressait.
1351
1351
  #def OnChildFrameClose(self, event):
1352
-
1352
+
1353
1353
  # self.child_frame.Close()
1354
1354
  # self.child_frame.Destroy()
1355
1355
 
1356
1356
  # Test=1
1357
1357
  class CubeCanvas(MyCanvasBase):
1358
-
1358
+
1359
1359
  #Procédure pour créer le réseau : on doit conserver les proportions dans l'affichage final
1360
1360
  def wireCube(self):
1361
1361
  Coord=[]
@@ -1374,7 +1374,7 @@ class CubeCanvas(MyCanvasBase):
1374
1374
  Test_Node=0
1375
1375
  Parent=self.GetParent()
1376
1376
  TypeNode=['IncJunctions','Reservoirs']
1377
- #Partie colorisation pour affichage de résultats selon
1377
+ #Partie colorisation pour affichage de résultats selon
1378
1378
  if(hasattr(Parent,'Show_Param_Results')):
1379
1379
  if(bool(Parent.Show_Param_Results)):
1380
1380
  Test_Node,Test_Vector,Param_Color=Parent.analyse_params()
@@ -1473,7 +1473,7 @@ class CubeCanvas(MyCanvasBase):
1473
1473
  self.PosVert.append(cubeVertex)
1474
1474
  self.IndEdge.append(cpt_edge)
1475
1475
  for i in range(3):
1476
- Coord[i].append(self.List_Nodes_OGL['Coord'][cubeVertex][i])
1476
+ Coord[i].append(self.List_Nodes_OGL['Coord'][cubeVertex][i])
1477
1477
  cpt_edge=cpt_edge+1
1478
1478
  self.MaxCoord=[]
1479
1479
  self.MinCoord=[]
@@ -1511,7 +1511,7 @@ class CubeCanvas(MyCanvasBase):
1511
1511
  DeltaZoom=[]
1512
1512
  for Coord in Parent.ZoomN:
1513
1513
  Size += 1
1514
- if(Size<3):
1514
+ if(Size<3):
1515
1515
  Index = 0
1516
1516
  for Position in Coord:
1517
1517
  Loc_Pos[Index].append(Position)
@@ -1661,7 +1661,7 @@ class CubeCanvas(MyCanvasBase):
1661
1661
  Pos=Parent.Nodes[Type][NameNode]['IndPos']
1662
1662
  Reduc_R[Pos]=Parent.Nodes[Type][NameNode]['Radius']
1663
1663
  PartParam[Pos]=Parent.Nodes[Type][NameNode]['Part_Params']
1664
-
1664
+
1665
1665
  end = time.time()
1666
1666
  TTTime[3]=end-start
1667
1667
  start = time.time()
@@ -1685,13 +1685,13 @@ class CubeCanvas(MyCanvasBase):
1685
1685
  if(self.List_Nodes_OGL['TypeNode'][cpt_node]!='Reservoirs'):
1686
1686
  glVertex3dv(cubeVertex)
1687
1687
  cpt_edge=cpt_edge+1
1688
-
1688
+
1689
1689
  cpt_node=cpt_node+1
1690
1690
  if(Test_Node!=2):
1691
- glEnd()
1691
+ glEnd()
1692
1692
  cpt_node=0
1693
1693
  cpt_edge=0
1694
- glColor3f(0.0, 0.0, 0.0)
1694
+ glColor3f(0.0, 0.0, 0.0)
1695
1695
  #On s'occupe ensuite des réservoirs
1696
1696
  for cubeVertex in self.NewVertiList:
1697
1697
  if(self.List_Nodes_OGL['SpecNode'][cpt_node]==1):
@@ -1776,14 +1776,14 @@ class CubeCanvas(MyCanvasBase):
1776
1776
  return
1777
1777
  #Dessin adapté pour les carrés utilisés pour représenter les réservoirs
1778
1778
  def draw_square(self,x, y, width,MinSize,SizeMax,SizMax):
1779
- glBegin(GL_QUADS)
1779
+ glBegin(GL_QUADS)
1780
1780
  widthx=width*SizeMax[0]*MinSize/SizMax[0]
1781
1781
  widthy=width*SizeMax[1]*MinSize/SizMax[1]
1782
- glVertex2f(x + widthx/2.0, y+widthy/2.0)
1783
- glVertex2f(x + widthx/2.0, y-widthy/2.0)
1784
- glVertex2f(x - widthx/2.0, y-widthy/2.0)
1785
- glVertex2f(x - widthx/2.0, y+widthy/2.0)
1786
- glEnd()
1782
+ glVertex2f(x + widthx/2.0, y+widthy/2.0)
1783
+ glVertex2f(x + widthx/2.0, y-widthy/2.0)
1784
+ glVertex2f(x - widthx/2.0, y-widthy/2.0)
1785
+ glVertex2f(x - widthx/2.0, y+widthy/2.0)
1786
+ glEnd()
1787
1787
 
1788
1788
  #Sous-routine générale pour le dessin d'éléments particuliers de type connecteur
1789
1789
  def DrawSpecEl(self,NewVertiList,cubeEdge,Case,Length,MinSize,SizeMax,SizMax):
@@ -1815,8 +1815,8 @@ class CubeCanvas(MyCanvasBase):
1815
1815
  glColor3f(color[0],color[1],color[2])
1816
1816
  glVertex3f(Node1[0],Node1[1],0.0)
1817
1817
  glVertex3f(Node2[0],Node2[1],0.0)
1818
- glVertex3f(Node3[0],Node3[1],0.0)
1819
- glEnd()
1818
+ glVertex3f(Node3[0],Node3[1],0.0)
1819
+ glEnd()
1820
1820
 
1821
1821
  def refresh2d(self,width,height):
1822
1822
  #glViewport(0, 0, width, height)
@@ -1842,22 +1842,22 @@ class CubeCanvas(MyCanvasBase):
1842
1842
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
1843
1843
  #glClearColor(0,0,1,0)
1844
1844
  glLoadIdentity()
1845
- self.refresh2d(width,height)
1846
- glColor3f(0.0, 0.0, 0.0)
1845
+ self.refresh2d(width,height)
1846
+ glColor3f(0.0, 0.0, 0.0)
1847
1847
  self.wireCube()
1848
1848
 
1849
1849
  #glTranslatef(0.0, 0.0, -5)
1850
1850
 
1851
1851
 
1852
1852
  self.SwapBuffers()
1853
-
1853
+
1854
1854
 
1855
1855
  class NewNodeFrame(wx.Frame):
1856
1856
  """
1857
- Frame utilisée pour permettre la mise en place du nouveau noeud
1857
+ Frame utilisée pour permettre la mise en place du nouveau noeud
1858
1858
  """
1859
1859
  def __init__(self, title, parent):
1860
- super(NewNodeFrame, self).__init__(parent, title = title,size = (300,200),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
1860
+ super(NewNodeFrame, self).__init__(parent, title = title,size = (300,200),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
1861
1861
  #Ajout d'un nouveau noeud entraîne à l'activiation du mode d'édition du réseau
1862
1862
  parent.Edition_Mode_Local=True
1863
1863
 
@@ -1888,52 +1888,52 @@ class NewNodeFrame(wx.Frame):
1888
1888
  else:
1889
1889
  self.Default_Values=['Node_1','J','0.0','0.0','0.0','0']
1890
1890
 
1891
- vbox = wx.BoxSizer(wx.VERTICAL)
1891
+ vbox = wx.BoxSizer(wx.VERTICAL)
1892
1892
 
1893
- self.Centre()
1893
+ self.Centre()
1894
1894
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
1895
1895
  #frame_sizer.Add(panel, 1, wx.EXPAND| wx.LEFT | wx.RIGHT, wx.ALIGN_CENTER)
1896
-
1896
+
1897
1897
  #Message d'annonce pour savoir ce qui est à réaliser
1898
1898
  Message='Characteristics of the new node'
1899
1899
  self.message = wx.StaticText(self, -1, Message)
1900
1900
  frame_sizer.Add(self.message, 0, wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND)
1901
-
1902
- #Partiée à la grille des coordonnées du noeud
1901
+
1902
+ #Partiée à la grille des coordonnées du noeud
1903
1903
  self.panel = PanelGeneral(self)
1904
1904
  frame_sizer.Add(self.panel, 1, wx.EXPAND)
1905
1905
  #Partie liée aux choix de validation ou d'annulation
1906
1906
  sz2 = wx.BoxSizer(wx.HORIZONTAL)
1907
1907
  self.btn=wx.Button(self,-1,"Add")
1908
1908
  sz2.Add(self.btn,0, wx.ALL, 10)
1909
- self.btn.Bind(wx.EVT_BUTTON,self.Saved_Node)
1909
+ self.btn.Bind(wx.EVT_BUTTON,self.Saved_Node)
1910
1910
 
1911
1911
  self.btn2=wx.Button(self,-1,"Close")
1912
1912
  sz2.Add(self.btn2,0, wx.ALL, 10)
1913
- self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
1913
+ self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
1914
1914
 
1915
1915
  self.btn3=wx.Button(self,-1,"Browse")
1916
1916
  sz2.Add(self.btn3,0, wx.ALL, 10)
1917
- self.btn3.Bind(wx.EVT_BUTTON,self.BrowseFile)
1917
+ self.btn3.Bind(wx.EVT_BUTTON,self.BrowseFile)
1918
1918
 
1919
1919
  frame_sizer.Add(sz2, 0, wx.ALIGN_CENTER)
1920
1920
  self.SetAutoLayout(True)
1921
1921
  self.SetSizerAndFit(frame_sizer)
1922
1922
  self.Show()
1923
1923
  Test=1
1924
-
1924
+
1925
1925
  #Sous-routine utilisée dans le but d'ajouter un noeud supplémentaire au réseau déjà présent
1926
1926
  def Saved_Node(self, e):
1927
1927
 
1928
1928
  Main=self.GetParent()
1929
- #Il faut rechercher les valeurs dans la grille pour ajouter un nouveau noeud en faisant test sur le type de noeud
1929
+ #Il faut rechercher les valeurs dans la grille pour ajouter un nouveau noeud en faisant test sur le type de noeud
1930
1930
  MyPanel=self.panel
1931
1931
  Nb_Rows=MyPanel.thegrid.GetNumberRows()
1932
1932
  Valid_Test=True
1933
1933
  #Sauvegarde des valeurs de la grille
1934
1934
  MyPanel.GridValues=[]
1935
1935
  for Row in range(Nb_Rows):
1936
- MyPanel.GridValues.append( MyPanel.thegrid.GetCellValue(Row,0))
1936
+ MyPanel.GridValues.append( MyPanel.thegrid.GetCellValue(Row,0))
1937
1937
  for Row in range(Nb_Rows):
1938
1938
  Value=MyPanel.GridValues[Row]
1939
1939
  if(MyPanel.Main_Attr[Row]==self.Main_Attr[1]):
@@ -1944,8 +1944,8 @@ class NewNodeFrame(wx.Frame):
1944
1944
  None, "The proposed format for the type of Node is not good. Impose the J Format ?", "Incorrect format", wx.YES_NO | wx.CANCEL | wx.CENTRE
1945
1945
  )
1946
1946
  result = dlg.ShowModal()
1947
- self.Centre()
1948
- self.Show()
1947
+ self.Centre()
1948
+ self.Show()
1949
1949
  Valid_Test=False
1950
1950
  if result == wx.ID_YES:
1951
1951
  Type_Node='j'
@@ -1980,7 +1980,7 @@ class NewNodeFrame(wx.Frame):
1980
1980
  Test=1
1981
1981
  return Test
1982
1982
  #Remplacement via les données réelles
1983
-
1983
+
1984
1984
  #L'annulation étant choisie par l'utilisateur, l'option est donc levée et la fenêtre est simplement fermée
1985
1985
  def CloseFrame(self, e):
1986
1986
  Test=1
@@ -2000,7 +2000,7 @@ class NewNodeFrame(wx.Frame):
2000
2000
  if(pathfile!='X'):
2001
2001
  #On a bien un fichier valide à lire
2002
2002
  Main=self.GetParent()
2003
- Main.Nodes,Main.AttrNode,Main.ListedAttr,Main.DftAttrNode,Main.FoundAttr=Import_Nodes_Attributes(pathfile,Main.List_Nodes_OGL,Main.Param,Type_Analysis)
2003
+ Main.Nodes,Main.AttrNode,Main.ListedAttr,Main.DftAttrNode,Main.FoundAttr=Import_Nodes_Attributes(pathfile,Main.List_Nodes_OGL,Main.Param,Type_Analysis)
2004
2004
  Test=1
2005
2005
  if(bool(Main.Nodes['Reservoirs']) or bool(Main.Nodes['IncJunctions'])):
2006
2006
  Main.NewNetwork=True
@@ -2019,7 +2019,7 @@ class NewNodeFrame(wx.Frame):
2019
2019
  else:
2020
2020
  Message='There is no node in the network. Repeat again the procedure with the right directory.'
2021
2021
  logging.info(Message)
2022
-
2022
+
2023
2023
  #Recherche du dossier pour partager les données sur les noeuds
2024
2024
  def OnOpen(self):
2025
2025
  namepath='X'
@@ -2029,7 +2029,7 @@ class NewNodeFrame(wx.Frame):
2029
2029
  t=1
2030
2030
  dlg.Destroy()
2031
2031
  return namepath
2032
-
2032
+
2033
2033
  #Préparation de la nouvelle frame pour aller rechercher les attributs manquants pour chaque élément du type
2034
2034
  def PrepareNewFrame(self):
2035
2035
  Main=self.GetParent()
@@ -2125,7 +2125,7 @@ class NewSubNodeFrame(wx.Frame):
2125
2125
  Frame utilisée pour ajouter les paramètres propres à chaque catégorie d'élément connecteur
2126
2126
  """
2127
2127
  def __init__(self, title, parent):
2128
- super(NewSubNodeFrame, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
2128
+ super(NewSubNodeFrame, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
2129
2129
 
2130
2130
  #Initialisation de la grille = évaluation du nombre d'attributs à afficher
2131
2131
  #Les attributs dépendent du type d'élément qui est ajouté par l'utilisateur
@@ -2150,7 +2150,7 @@ class NewSubNodeFrame(wx.Frame):
2150
2150
  self.Default_Values.append('XX')
2151
2151
  cpt_ptrn+=1
2152
2152
 
2153
- self.Centre()
2153
+ self.Centre()
2154
2154
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
2155
2155
 
2156
2156
  #Message d'annonce pour savoir ce qui est à réaliser
@@ -2158,18 +2158,18 @@ class NewSubNodeFrame(wx.Frame):
2158
2158
  self.message = wx.StaticText(self, -1, Message)
2159
2159
  #frame_sizer.Add(self.message, 0, wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND)
2160
2160
  frame_sizer.Add(self.message, 0, wx.EXPAND)
2161
- #Partiée à la grille des coordonnées du noeud
2161
+ #Partiée à la grille des coordonnées du noeud
2162
2162
  self.panel = PanelGeneral(self)
2163
2163
  frame_sizer.Add(self.panel, 1, wx.EXPAND)
2164
2164
  #Partie liée aux choix de validation ou d'annulation
2165
2165
  sz2 = wx.BoxSizer(wx.HORIZONTAL)
2166
2166
  self.btn=wx.Button(self,-1,"Ok")
2167
2167
  sz2.Add(self.btn,0, wx.ALL, 10)
2168
- self.btn.Bind(wx.EVT_BUTTON,self.Saved_char_Node)
2168
+ self.btn.Bind(wx.EVT_BUTTON,self.Saved_char_Node)
2169
2169
 
2170
2170
  self.btn2=wx.Button(self,-1,"Close")
2171
2171
  sz2.Add(self.btn2,0, wx.ALL, 10)
2172
- self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
2172
+ self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
2173
2173
 
2174
2174
  frame_sizer.Add(sz2, 0, wx.ALIGN_CENTER)
2175
2175
  self.SetAutoLayout(True)
@@ -2184,7 +2184,7 @@ class NewSubNodeFrame(wx.Frame):
2184
2184
  logging.info(Message)
2185
2185
  self.Close()
2186
2186
  self.Destroy()
2187
-
2187
+
2188
2188
  #On va donc replacer l'ensemble des informations obtenues pour le réseau
2189
2189
  def Saved_char_Node(self,e):
2190
2190
  self.parent.Save_Valid_Node()
@@ -2229,7 +2229,7 @@ class NewAttrNodeFrame(wx.Frame):
2229
2229
  Ajout des paramètres absents selon catégorie de noeuds
2230
2230
  """
2231
2231
  def __init__(self, title, parent):
2232
- super(NewAttrNodeFrame, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
2232
+ super(NewAttrNodeFrame, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
2233
2233
 
2234
2234
  #Initialisation de la grille = évaluation du nombre d'attributs à afficher
2235
2235
  #Les attributs dépendent du type d'élément qui est ajouté par l'utilisateur
@@ -2240,7 +2240,7 @@ class NewAttrNodeFrame(wx.Frame):
2240
2240
  self.Main_Attr=parent.MissingAttr
2241
2241
  self.Default_Values=parent.DftValue
2242
2242
 
2243
- self.Centre()
2243
+ self.Centre()
2244
2244
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
2245
2245
 
2246
2246
  #Message d'annonce pour savoir ce qui est à réaliser
@@ -2248,18 +2248,18 @@ class NewAttrNodeFrame(wx.Frame):
2248
2248
  self.message = wx.StaticText(self, -1, Message)
2249
2249
  #frame_sizer.Add(self.message, 0, wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND)
2250
2250
  frame_sizer.Add(self.message, 0, wx.EXPAND)
2251
- #Partiée à la grille des coordonnées du noeud
2251
+ #Partiée à la grille des coordonnées du noeud
2252
2252
  self.panel = PanelGeneral(self)
2253
2253
  frame_sizer.Add(self.panel, 1, wx.EXPAND)
2254
2254
  #Partie liée aux choix de validation ou d'annulation
2255
2255
  sz2 = wx.BoxSizer(wx.HORIZONTAL)
2256
2256
  self.btn=wx.Button(self,-1,"Ok")
2257
2257
  sz2.Add(self.btn,0, wx.ALL, 10)
2258
- self.btn.Bind(wx.EVT_BUTTON,self.Saved_char_Node)
2258
+ self.btn.Bind(wx.EVT_BUTTON,self.Saved_char_Node)
2259
2259
 
2260
2260
  self.btn2=wx.Button(self,-1,"Close")
2261
2261
  sz2.Add(self.btn2,0, wx.ALL, 10)
2262
- self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
2262
+ self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
2263
2263
 
2264
2264
  frame_sizer.Add(sz2, 0, wx.ALIGN_CENTER)
2265
2265
  self.SetAutoLayout(True)
@@ -2271,7 +2271,7 @@ class NewAttrNodeFrame(wx.Frame):
2271
2271
  def CloseFrame(self, e):
2272
2272
  Test=1
2273
2273
  self.Saved_char_Node(e)
2274
-
2274
+
2275
2275
  #On va donc replacer l'ensemble des informations obtenues pour le réseau
2276
2276
  def Saved_char_Node(self,e):
2277
2277
  Test=1
@@ -2320,13 +2320,13 @@ class Draw_Options(wx.Frame):
2320
2320
  """
2321
2321
  Ouverture d'une nouvelle fenêtre permettant de laisser le choix à l'utilisateur de sélectionner ce qu'il souhaite afficher
2322
2322
  """
2323
- def __init__(self, parent, title,MainW):
2324
- super(Draw_Options, self).__init__(parent, title = title,size = (300,200),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
2323
+ def __init__(self, parent, title,MainW):
2324
+ super(Draw_Options, self).__init__(parent, title = title,size = (300,200),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
2325
2325
  #panel = MyPanel(self,MainW)
2326
- #panel = wx.Panel(self)
2327
- vbox = wx.BoxSizer(wx.VERTICAL)
2326
+ #panel = wx.Panel(self)
2327
+ vbox = wx.BoxSizer(wx.VERTICAL)
2328
2328
 
2329
- self.Centre()
2329
+ self.Centre()
2330
2330
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
2331
2331
  #frame_sizer.Add(panel, 1, wx.EXPAND| wx.LEFT | wx.RIGHT, wx.ALIGN_CENTER)
2332
2332
  #Message d'annonce pour savoir ce qui est à réaliser
@@ -2343,23 +2343,23 @@ class Draw_Options(wx.Frame):
2343
2343
  #dlg1=sz2.Add(wx.Button(self, wx.ID_OK, ""), 0, wx.ALL, 10)
2344
2344
  self.btn=wx.Button(self,-1,"Ok")
2345
2345
  sz2.Add(self.btn,0, wx.ALL, 10)
2346
- self.btn.Bind(wx.EVT_BUTTON,self.Param_Read)
2346
+ self.btn.Bind(wx.EVT_BUTTON,self.Param_Read)
2347
2347
 
2348
2348
  #dlg2=sz2.Add(wx.Button(self, wx.ID_CANCEL, ""), 0, wx.ALL, 10)
2349
2349
  self.btn2=wx.Button(self,-1,"Annuler")
2350
2350
  sz2.Add(self.btn2,0, wx.ALL, 10)
2351
- self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
2351
+ self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
2352
2352
 
2353
2353
  frame_sizer.Add(sz2, 0, wx.ALIGN_CENTER)
2354
2354
  self.SetAutoLayout(True)
2355
2355
  self.SetSizerAndFit(frame_sizer)
2356
- self.Show()
2357
- self.CenterOnScreen()
2356
+ self.Show()
2357
+ self.CenterOnScreen()
2358
2358
  #self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
2359
2359
  Test=1
2360
2360
  #fdRet = dlgF.ShowModal()
2361
2361
  List_Params=[]
2362
-
2362
+
2363
2363
  #L'utilisateur choisit ok, mais on doit bien également s'assurer que des cases ont été cochées pour être capable d'afficher les résultats
2364
2364
  def Param_Read(self, e):
2365
2365
  Test=1
@@ -2393,10 +2393,10 @@ class Draw_Options(wx.Frame):
2393
2393
  self.Destroy()
2394
2394
 
2395
2395
  class ParamToShow(wx.Frame):
2396
- def __init__(self, parent, title):
2397
- super(ParamToShow, self).__init__(parent, title = title,size = (300,200),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
2398
- vbox = wx.BoxSizer(wx.VERTICAL)
2399
- self.Centre()
2396
+ def __init__(self, parent, title):
2397
+ super(ParamToShow, self).__init__(parent, title = title,size = (300,200),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
2398
+ vbox = wx.BoxSizer(wx.VERTICAL)
2399
+ self.Centre()
2400
2400
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
2401
2401
  #frame_sizer.Add(panel, 1, wx.EXPAND| wx.LEFT | wx.RIGHT, wx.ALIGN_CENTER)
2402
2402
  #Message d'annonce pour savoir ce qui est à réaliser
@@ -2417,16 +2417,16 @@ class ParamToShow(wx.Frame):
2417
2417
  sz2 = wx.BoxSizer(wx.HORIZONTAL)
2418
2418
  self.btn=wx.Button(self,-1,"Ok")
2419
2419
  sz2.Add(self.btn,0, wx.ALL, 10)
2420
- self.btn.Bind(wx.EVT_BUTTON,self.Param_Read)
2420
+ self.btn.Bind(wx.EVT_BUTTON,self.Param_Read)
2421
2421
 
2422
2422
  self.btn2=wx.Button(self,-1,"Annuler")
2423
2423
  sz2.Add(self.btn2,0, wx.ALL, 10)
2424
- self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
2424
+ self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
2425
2425
 
2426
2426
  frame_sizer.Add(sz2, 0, wx.ALIGN_CENTER)
2427
2427
  self.SetAutoLayout(True)
2428
2428
  self.SetSizerAndFit(frame_sizer)
2429
- self.Show()
2429
+ self.Show()
2430
2430
  #L'utilisateur choisit ok, mais on doit bien également s'assurer que des cases ont été cochées pour être capable d'afficher les résultats
2431
2431
  def Param_Read(self, e):
2432
2432
  Parent=self.GetParent()
@@ -2443,14 +2443,14 @@ class ParamToShow(wx.Frame):
2443
2443
  self.Close()
2444
2444
  self.Destroy()
2445
2445
 
2446
- #
2446
+ #
2447
2447
  class NewEdgeFrame(wx.Frame):
2448
2448
  """
2449
- Frame utilisée pour permettre la mise en place du nouveau élément connecteur
2449
+ Frame utilisée pour permettre la mise en place du nouveau élément connecteur
2450
2450
  """
2451
2451
  def __init__(self, title, parent):
2452
- super(NewEdgeFrame, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
2453
-
2452
+ super(NewEdgeFrame, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
2453
+
2454
2454
  #Ajout d'un nouveau noeud entraîne à l'activiation du mode d'édition du réseau
2455
2455
  parent.Edition_Mode_Local=True
2456
2456
  #Préparation des données par défaut et des attributs principaux
@@ -2476,17 +2476,17 @@ class NewEdgeFrame(wx.Frame):
2476
2476
  NameNode2=MainW.Ident_Nodes[1]
2477
2477
  self.Default_Values=[NameNode1,NameNode2,Edge_Name,'P']
2478
2478
 
2479
- self.Centre()
2479
+ self.Centre()
2480
2480
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
2481
2481
  #frame_sizer.Add(panel, 1, wx.EXPAND| wx.LEFT | wx.RIGHT, wx.ALIGN_CENTER)
2482
-
2482
+
2483
2483
  #Message d'annonce pour savoir ce qui est à réaliser
2484
2484
  Message='Characteristics of the new edge'
2485
2485
  self.message = wx.StaticText(self, -1, Message)
2486
2486
  #frame_sizer.Add(self.message, 0, wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND)
2487
2487
  frame_sizer.Add(self.message, 0, wx.EXPAND)
2488
2488
  self.parent=parent
2489
- #Partiée à la grille des coordonnées du noeud
2489
+ #Partiée à la grille des coordonnées du noeud
2490
2490
  #self.panel = PanelEdge(self,parent)
2491
2491
  self.panel = PanelGeneral(self)
2492
2492
  frame_sizer.Add(self.panel, 1, wx.EXPAND)
@@ -2494,15 +2494,15 @@ class NewEdgeFrame(wx.Frame):
2494
2494
  sz2 = wx.BoxSizer(wx.HORIZONTAL)
2495
2495
  self.btn=wx.Button(self,-1,"Add")
2496
2496
  sz2.Add(self.btn,0, wx.ALL, 10)
2497
- self.btn.Bind(wx.EVT_BUTTON,self.Save_Grid)
2497
+ self.btn.Bind(wx.EVT_BUTTON,self.Save_Grid)
2498
2498
 
2499
2499
  self.btn2=wx.Button(self,-1,"Close")
2500
2500
  sz2.Add(self.btn2,0, wx.ALL, 10)
2501
- self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
2501
+ self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
2502
2502
 
2503
2503
  self.btn3=wx.Button(self,-1,"Browse")
2504
2504
  sz2.Add(self.btn3,0, wx.ALL, 10)
2505
- self.btn3.Bind(wx.EVT_BUTTON,self.Browse_Edge)
2505
+ self.btn3.Bind(wx.EVT_BUTTON,self.Browse_Edge)
2506
2506
 
2507
2507
  frame_sizer.Add(sz2, 0, wx.ALIGN_CENTER)
2508
2508
  self.SetAutoLayout(True)
@@ -2526,8 +2526,8 @@ class NewEdgeFrame(wx.Frame):
2526
2526
  Parent.Browse_Method=False
2527
2527
  Parent.First_Node=[]
2528
2528
  Parent.Last_Node=[]
2529
- #Il faut rechercher les valeurs dans la grille pour ajouter un nouveau noeud en faisant test sur le type de noeud
2530
-
2529
+ #Il faut rechercher les valeurs dans la grille pour ajouter un nouveau noeud en faisant test sur le type de noeud
2530
+
2531
2531
  self.Main_Attr=['First Node Name','Second Node Name']
2532
2532
  Valid_Test=True
2533
2533
  Node_pos=[]
@@ -2569,7 +2569,7 @@ class NewEdgeFrame(wx.Frame):
2569
2569
  break
2570
2570
  if(Attr_Node[0]==1 and Attr_Node[1]==1):
2571
2571
  self.Pos_Nodo=Pos_Node
2572
- #On doit en réalité un nouveau subPanel pour permettre à l'utilisateur de renseigner l'ensemble des paramètres liés
2572
+ #On doit en réalité un nouveau subPanel pour permettre à l'utilisateur de renseigner l'ensemble des paramètres liés
2573
2573
  #à la catégorie d'éléments (pipes, pump ou valve)
2574
2574
  if(self.Edge_Extract_Option==1):
2575
2575
  self.Name_Edge=Name_Edge
@@ -2586,14 +2586,14 @@ class NewEdgeFrame(wx.Frame):
2586
2586
  Message=Empl_Node[Id_Node]+' Node is not présent in '+Node_pos[0]
2587
2587
  logging.info(Message)
2588
2588
 
2589
- self.Centre()
2590
- self.Show()
2589
+ self.Centre()
2590
+ self.Show()
2591
2591
  Valid_Test=False
2592
2592
  else:
2593
2593
  logging.info('Le type de l élément n est pas valide')
2594
2594
  return Test
2595
2595
  #Remplacement via les données réelles
2596
-
2596
+
2597
2597
  #Sous-routine ayant pour but de récupérer les coordonnées des noeuds extrême d'un élément connecteur du réseau
2598
2598
  def Ident_Coordinates(self):
2599
2599
  Parent=self.GetParent()
@@ -2673,7 +2673,7 @@ class NewEdgeFrame(wx.Frame):
2673
2673
  #On vient reset du coup également la grille pour que la valeur par défaut repasse au noeud suivant
2674
2674
  DfltName='Edge_'+str(Nb_cat_edges+2)
2675
2675
  MyPanel=self.panel
2676
- MyPanel.thegrid.SetCellValue(2,0, DfltName)
2676
+ MyPanel.thegrid.SetCellValue(2,0, DfltName)
2677
2677
 
2678
2678
  #L'annulation étant choisie par l'utilisateur, l'option est donc levée et la fenêtre est simplement fermée
2679
2679
  def CloseFrame(self, e):
@@ -2864,13 +2864,13 @@ class NewEdgeFrame(wx.Frame):
2864
2864
  Parent=self.GetParent()
2865
2865
  Parent.Browse_Method=False
2866
2866
 
2867
- #
2867
+ #
2868
2868
  class NewSubEdgeFrame(wx.Frame):
2869
2869
  """
2870
- Frame utilisée pour ajouter les paramètres propres à chaque catégorie d'élément connecteur
2870
+ Frame utilisée pour ajouter les paramètres propres à chaque catégorie d'élément connecteur
2871
2871
  """
2872
2872
  def __init__(self, title, parent):
2873
- super(NewSubEdgeFrame, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
2873
+ super(NewSubEdgeFrame, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
2874
2874
 
2875
2875
  #Initialisation de la grille = évaluation du nombre d'attributs à afficher
2876
2876
  #Les attributs dépendent du type d'élément qui est ajouté par l'utilisateur
@@ -2914,7 +2914,7 @@ class NewSubEdgeFrame(wx.Frame):
2914
2914
  self.Default_Values[cpt_attrib]=str(Length)
2915
2915
  cpt_attrib+=1
2916
2916
 
2917
- self.Centre()
2917
+ self.Centre()
2918
2918
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
2919
2919
 
2920
2920
  #Message d'annonce pour savoir ce qui est à réaliser
@@ -2922,18 +2922,18 @@ class NewSubEdgeFrame(wx.Frame):
2922
2922
  self.message = wx.StaticText(self, -1, Message)
2923
2923
  #frame_sizer.Add(self.message, 0, wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND)
2924
2924
  frame_sizer.Add(self.message, 0, wx.EXPAND)
2925
- #Partiée à la grille des coordonnées du noeud
2925
+ #Partiée à la grille des coordonnées du noeud
2926
2926
  self.panel = PanelGeneral(self)
2927
2927
  frame_sizer.Add(self.panel, 1, wx.EXPAND)
2928
2928
  #Partie liée aux choix de validation ou d'annulation
2929
2929
  sz2 = wx.BoxSizer(wx.HORIZONTAL)
2930
2930
  self.btn=wx.Button(self,-1,"Ok")
2931
2931
  sz2.Add(self.btn,0, wx.ALL, 10)
2932
- self.btn.Bind(wx.EVT_BUTTON,self.Saved_char_Edge)
2932
+ self.btn.Bind(wx.EVT_BUTTON,self.Saved_char_Edge)
2933
2933
 
2934
2934
  self.btn2=wx.Button(self,-1,"Close")
2935
2935
  sz2.Add(self.btn2,0, wx.ALL, 10)
2936
- self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
2936
+ self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
2937
2937
 
2938
2938
  frame_sizer.Add(sz2, 0, wx.ALIGN_CENTER)
2939
2939
  self.SetAutoLayout(True)
@@ -2946,7 +2946,7 @@ class NewSubEdgeFrame(wx.Frame):
2946
2946
  Test=1
2947
2947
  self.Close()
2948
2948
  self.Destroy()
2949
-
2949
+
2950
2950
  #On va donc replacer l'ensemble des informations obtenues pour le réseau
2951
2951
  def Saved_char_Edge(self,e):
2952
2952
  if(self.parent.Edge_Extract_Option==1):
@@ -3016,7 +3016,7 @@ class NewSubPumpFrame(wx.Frame):
3016
3016
  Frame utilisée pour ajouter les coefficients propres à une nouvelle pompe placée dans le réseau selon type de pompe
3017
3017
  """
3018
3018
  def __init__(self, title, parent):
3019
- super(NewSubPumpFrame, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
3019
+ super(NewSubPumpFrame, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
3020
3020
  #Préparation de l'initialisation du panel
3021
3021
  self.parent=parent
3022
3022
  MainEdge=parent.GetParent()
@@ -3043,7 +3043,7 @@ class NewSubPumpFrame(wx.Frame):
3043
3043
  self.Main_Attr.append('Coeff_P'+str(i+1))
3044
3044
  self.Default_Values.append('0.0')
3045
3045
 
3046
- self.Centre()
3046
+ self.Centre()
3047
3047
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
3048
3048
  #frame_sizer.Add(panel, 1, wx.EXPAND| wx.LEFT | wx.RIGHT, wx.ALIGN_CENTER)
3049
3049
  self.Name_Edge=parent.Name_Edge
@@ -3052,18 +3052,18 @@ class NewSubPumpFrame(wx.Frame):
3052
3052
  self.message = wx.StaticText(self, -1, Message)
3053
3053
  #frame_sizer.Add(self.message, 0, wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND)
3054
3054
  frame_sizer.Add(self.message, 0, wx.EXPAND)
3055
- #Partiée à la grille des coordonnées du noeud
3055
+ #Partiée à la grille des coordonnées du noeud
3056
3056
  self.panel = PanelGeneral(self)
3057
3057
  frame_sizer.Add(self.panel, 1, wx.EXPAND)
3058
3058
  #Partie liée aux choix de validation ou d'annulation
3059
3059
  sz2 = wx.BoxSizer(wx.HORIZONTAL)
3060
3060
  self.btn=wx.Button(self,-1,"Ok")
3061
3061
  sz2.Add(self.btn,0, wx.ALL, 10)
3062
- self.btn.Bind(wx.EVT_BUTTON,self.Saved_Coef_Pumps)
3062
+ self.btn.Bind(wx.EVT_BUTTON,self.Saved_Coef_Pumps)
3063
3063
 
3064
3064
  self.btn2=wx.Button(self,-1,"Close")
3065
3065
  sz2.Add(self.btn2,0, wx.ALL, 10)
3066
- self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
3066
+ self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
3067
3067
 
3068
3068
  frame_sizer.Add(sz2, 0, wx.ALIGN_CENTER)
3069
3069
  self.SetAutoLayout(True)
@@ -3076,7 +3076,7 @@ class NewSubPumpFrame(wx.Frame):
3076
3076
  Test=1
3077
3077
  self.Close()
3078
3078
  self.Destroy()
3079
-
3079
+
3080
3080
  #On va donc replacer l'ensemble des informations obtenues pour la pompe étudiée
3081
3081
  def Saved_Coef_Pumps(self,e):
3082
3082
  Test=1
@@ -3099,7 +3099,7 @@ class NewSubValveFrame(wx.Frame):
3099
3099
  Sous-routine liée à la mise en place des coefficients de fonctionnement de chaque valve
3100
3100
  """
3101
3101
  def __init__(self, title, parent):
3102
- super(NewSubValveFrame, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
3102
+ super(NewSubValveFrame, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
3103
3103
  #Préparation de l'initialisation du panel
3104
3104
  self.parent=parent
3105
3105
  MainEdge=parent.GetParent()
@@ -3116,7 +3116,7 @@ class NewSubValveFrame(wx.Frame):
3116
3116
  self.Nb_Coeffs=2
3117
3117
  self.Default_Values=['1.0','2.0']
3118
3118
 
3119
- self.Centre()
3119
+ self.Centre()
3120
3120
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
3121
3121
  #frame_sizer.Add(panel, 1, wx.EXPAND| wx.LEFT | wx.RIGHT, wx.ALIGN_CENTER)
3122
3122
  self.Name_Edge=parent.Name_Edge
@@ -3125,18 +3125,18 @@ class NewSubValveFrame(wx.Frame):
3125
3125
  self.message = wx.StaticText(self, -1, Message)
3126
3126
  #frame_sizer.Add(self.message, 0, wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND)
3127
3127
  frame_sizer.Add(self.message, 0, wx.EXPAND)
3128
- #Partiée à la grille des coordonnées du noeud
3128
+ #Partiée à la grille des coordonnées du noeud
3129
3129
  self.panel = PanelGeneral(self)
3130
3130
  frame_sizer.Add(self.panel, 1, wx.EXPAND)
3131
3131
  #Partie liée aux choix de validation ou d'annulation
3132
3132
  sz2 = wx.BoxSizer(wx.HORIZONTAL)
3133
3133
  self.btn=wx.Button(self,-1,"Ok")
3134
3134
  sz2.Add(self.btn,0, wx.ALL, 10)
3135
- self.btn.Bind(wx.EVT_BUTTON,self.Saved_Coef_Valves)
3135
+ self.btn.Bind(wx.EVT_BUTTON,self.Saved_Coef_Valves)
3136
3136
 
3137
3137
  self.btn2=wx.Button(self,-1,"Close")
3138
3138
  sz2.Add(self.btn2,0, wx.ALL, 10)
3139
- self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
3139
+ self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
3140
3140
 
3141
3141
  frame_sizer.Add(sz2, 0, wx.ALIGN_CENTER)
3142
3142
  self.SetAutoLayout(True)
@@ -3149,7 +3149,7 @@ class NewSubValveFrame(wx.Frame):
3149
3149
  Test=1
3150
3150
  self.Close()
3151
3151
  self.Destroy()
3152
-
3152
+
3153
3153
  #On va donc replacer l'ensemble des informations obtenues pour la pompe étudiée
3154
3154
  def Saved_Coef_Valves(self,e):
3155
3155
  Test=1
@@ -3162,10 +3162,10 @@ class NewSubValveFrame(wx.Frame):
3162
3162
  #Création de la grille permettant l'implémentation des coefficients de la pompe selon type de loi
3163
3163
 
3164
3164
  class PanelGeneral(wx.Panel):
3165
-
3165
+
3166
3166
  def __init__(self, parent):
3167
3167
  super(PanelGeneral, self).__init__(parent)
3168
-
3168
+
3169
3169
  self.Main_Attr=parent.Main_Attr
3170
3170
  Default_Values=parent.Default_Values
3171
3171
  Nb_attrib=len(self.Main_Attr)
@@ -3184,7 +3184,7 @@ class PanelGeneral(wx.Panel):
3184
3184
  mygrid.SetRowLabelValue(cpt_row,Attr)
3185
3185
  mygrid.SetCellAlignment(cpt_row, 0, wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)
3186
3186
  mygrid.SetCellValue(cpt_row,0, Default_Values[cpt_row])
3187
- self.GridValues.append(Default_Values[cpt_row])
3187
+ self.GridValues.append(Default_Values[cpt_row])
3188
3188
  cpt_row=cpt_row+1
3189
3189
  #mygrid.AutoSizeColumns(False)
3190
3190
  mygrid.SetRowLabelSize(150)
@@ -3199,36 +3199,36 @@ class PanelGeneral(wx.Panel):
3199
3199
  Test=1
3200
3200
  self.modified_grid=False
3201
3201
  self.thegrid.Bind(grid.EVT_GRID_CELL_CHANGED, self.Saved_Modifications)
3202
-
3202
+
3203
3203
  def Saved_Modifications(self,e):
3204
3204
  self.modified_grid=True
3205
3205
  #Sauvegarde des valeurs de la grille
3206
3206
  Nb_Rows=self.thegrid.GetNumberRows()
3207
3207
  self.GridValues=[]
3208
3208
  for Row in range(Nb_Rows):
3209
- self.GridValues.append(self.thegrid.GetCellValue(Row,0))
3209
+ self.GridValues.append(self.thegrid.GetCellValue(Row,0))
3210
3210
 
3211
3211
 
3212
- #
3212
+ #
3213
3213
  class NewPatternFrame2(wx.Frame):
3214
3214
  """
3215
3215
  Frame utilisée pour permettre la mise en place du nouveau pattern
3216
3216
  """
3217
3217
  def __init__(self, title, parent):
3218
- super(NewPatternFrame2, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
3218
+ super(NewPatternFrame2, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
3219
3219
  #Ajout d'un nouveau noeud entraîne à l'activiation du mode d'édition du réseau
3220
3220
  parent.Edition_Mode_Local=True
3221
3221
 
3222
- self.Centre()
3222
+ self.Centre()
3223
3223
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
3224
3224
  #frame_sizer.Add(panel, 1, wx.EXPAND| wx.LEFT | wx.RIGHT, wx.ALIGN_CENTER)
3225
-
3225
+
3226
3226
  #Message d'annonce pour savoir ce qui est à réaliser
3227
3227
  Message='Characteristics of the new Pattern'
3228
3228
  self.message = wx.StaticText(self, -1, Message)
3229
3229
  #frame_sizer.Add(self.message, 0, wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND)
3230
3230
  frame_sizer.Add(self.message, 0, wx.EXPAND)
3231
-
3231
+
3232
3232
  #Partie liée à l'ajout des informations du Pattern
3233
3233
  self.panel = PanelPattern(self,parent)
3234
3234
  frame_sizer.Add(self.panel, 1, wx.EXPAND)
@@ -3236,11 +3236,11 @@ class NewPatternFrame2(wx.Frame):
3236
3236
  sz2 = wx.BoxSizer(wx.HORIZONTAL)
3237
3237
  self.btn=wx.Button(self,-1,"Ok")
3238
3238
  sz2.Add(self.btn,0, wx.ALL, 10)
3239
- self.btn.Bind(wx.EVT_BUTTON,self.Saved_Pattern)
3239
+ self.btn.Bind(wx.EVT_BUTTON,self.Saved_Pattern)
3240
3240
 
3241
3241
  self.btn2=wx.Button(self,-1,"Annuler")
3242
3242
  sz2.Add(self.btn2,0, wx.ALL, 10)
3243
- self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
3243
+ self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
3244
3244
 
3245
3245
  frame_sizer.Add(sz2, 0, wx.ALIGN_CENTER)
3246
3246
  self.SetAutoLayout(True)
@@ -3262,27 +3262,27 @@ class PanelPattern(wx.Panel):
3262
3262
  def __init__(self, parent,MainW):
3263
3263
  super(PanelPattern, self).__init__(parent)
3264
3264
 
3265
- #
3265
+ #
3266
3266
  class GenParamFrame(wx.Frame):
3267
3267
  """
3268
3268
  Frame utilisée pour permettre la mise en évidence des paramètres généraux actuels de résolution
3269
3269
  """
3270
3270
  def __init__(self, title, parent):
3271
- super(GenParamFrame, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
3271
+ super(GenParamFrame, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
3272
3272
  #Ajout d'un nouveau noeud entraîne à l'activiation du mode d'édition du réseau
3273
3273
  parent.Edition_Mode_Local=True
3274
3274
 
3275
- vbox = wx.BoxSizer(wx.VERTICAL)
3275
+ vbox = wx.BoxSizer(wx.VERTICAL)
3276
3276
 
3277
- self.Centre()
3277
+ self.Centre()
3278
3278
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
3279
3279
  #frame_sizer.Add(panel, 1, wx.EXPAND| wx.LEFT | wx.RIGHT, wx.ALIGN_CENTER)
3280
-
3280
+
3281
3281
  #Message d'annonce pour savoir ce qui est à réaliser
3282
3282
  Message='General parameters of the Network'
3283
3283
  self.message = wx.StaticText(self, -1, Message)
3284
3284
  frame_sizer.Add(self.message, 0, wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND)
3285
-
3285
+
3286
3286
  #Partiée liée à l'affichage des informations du pattern (menu défilant ?)
3287
3287
  self.panel = PanelParams(self,parent)
3288
3288
  frame_sizer.Add(self.panel, 1, wx.EXPAND)
@@ -3291,18 +3291,18 @@ class GenParamFrame(wx.Frame):
3291
3291
 
3292
3292
  self.btn2=wx.Button(self,-1,"Save Modifications")
3293
3293
  sz2.Add(self.btn2,0, wx.ALL, 10)
3294
- self.btn2.Bind(wx.EVT_BUTTON,self.SaveModifications)
3294
+ self.btn2.Bind(wx.EVT_BUTTON,self.SaveModifications)
3295
3295
 
3296
3296
  self.btn2=wx.Button(self,-1,"Annuler")
3297
3297
  sz2.Add(self.btn2,0, wx.ALL, 10)
3298
- self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
3298
+ self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
3299
3299
 
3300
3300
  frame_sizer.Add(sz2, 0, wx.ALIGN_CENTER)
3301
3301
  self.SetAutoLayout(True)
3302
3302
  self.SetSizerAndFit(frame_sizer)
3303
3303
  self.Show()
3304
3304
 
3305
-
3305
+
3306
3306
  #L'annulation étant choisie par l'utilisateur, la fenêtre est simplement fermée
3307
3307
  def CloseFrame(self, e):
3308
3308
  self.Close()
@@ -3339,8 +3339,8 @@ class GenParamFrame(wx.Frame):
3339
3339
  None, Dial, "Wrong Entry", wx.OK | wx.CENTRE
3340
3340
  )
3341
3341
  result = dlg.ShowModal()
3342
- self.Centre()
3343
- self.Show()
3342
+ self.Centre()
3343
+ self.Show()
3344
3344
  if result == wx.ID_YES:
3345
3345
  Test=1
3346
3346
  self.Destroy()
@@ -3357,10 +3357,10 @@ class PanelParams(wx.Panel):
3357
3357
  """
3358
3358
  Création de la grille permettant l'affichage des principaux attributs du réseau
3359
3359
  """
3360
-
3360
+
3361
3361
  def __init__(self, parent,MainW):
3362
3362
  super(PanelParams, self).__init__(parent)
3363
-
3363
+
3364
3364
  #Initialisation des grilles liées à chaque dossier important : paramètres généraux, temps et optimisation
3365
3365
  self.list_ctrl_params = [0,0,0]
3366
3366
  for i in range(len(self.list_ctrl_params)):
@@ -3431,31 +3431,31 @@ class PanelParams(wx.Panel):
3431
3431
  #L'entrée soumise n'est donc pas valide : il faut prévenir l'utilisateur via ouverture fenêtre
3432
3432
  Test=1
3433
3433
  break
3434
-
3434
+
3435
3435
  cpt_special += 1
3436
3436
  return Value,Comment
3437
3437
 
3438
- #
3438
+ #
3439
3439
  class NewPatternFrame(wx.Frame):
3440
3440
  """
3441
3441
  Frame utilisée pour permettre la mise en place du pattern
3442
3442
  """
3443
3443
  def __init__(self, title, parent):
3444
- super(NewPatternFrame, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
3444
+ super(NewPatternFrame, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
3445
3445
  #Ajout d'un nouveau noeud entraîne à l'activiation du mode d'édition du réseau
3446
3446
  parent.Edition_Mode_Local=True
3447
3447
 
3448
- vbox = wx.BoxSizer(wx.VERTICAL)
3448
+ vbox = wx.BoxSizer(wx.VERTICAL)
3449
3449
 
3450
- self.Centre()
3450
+ self.Centre()
3451
3451
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
3452
3452
  #frame_sizer.Add(panel, 1, wx.EXPAND| wx.LEFT | wx.RIGHT, wx.ALIGN_CENTER)
3453
-
3453
+
3454
3454
  #Message d'annonce pour savoir ce qui est à réaliser
3455
3455
  Message='Characteristics of the Pattern'
3456
3456
  self.message = wx.StaticText(self, -1, Message)
3457
3457
  frame_sizer.Add(self.message, 0, wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND)
3458
-
3458
+
3459
3459
  #Partiée liée à l'affichage des informations du pattern (menu défilant ?)
3460
3460
  self.panel = PanelPattern(self,parent)
3461
3461
  frame_sizer.Add(self.panel, 1, wx.EXPAND)
@@ -3463,22 +3463,22 @@ class NewPatternFrame(wx.Frame):
3463
3463
  sz2 = wx.BoxSizer(wx.HORIZONTAL)
3464
3464
  self.btn=wx.Button(self,-1,"Show Pattern")
3465
3465
  sz2.Add(self.btn,0, wx.ALL, 10)
3466
- self.btn.Bind(wx.EVT_BUTTON,self.Show_Pattern)
3466
+ self.btn.Bind(wx.EVT_BUTTON,self.Show_Pattern)
3467
3467
 
3468
3468
  self.btn2=wx.Button(self,-1,"Save")
3469
3469
  sz2.Add(self.btn2,0, wx.ALL, 10)
3470
- self.btn2.Bind(wx.EVT_BUTTON,self.SaveModPattern)
3470
+ self.btn2.Bind(wx.EVT_BUTTON,self.SaveModPattern)
3471
3471
 
3472
3472
  self.btn2=wx.Button(self,-1,"Annuler")
3473
3473
  sz2.Add(self.btn2,0, wx.ALL, 10)
3474
- self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
3474
+ self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
3475
3475
 
3476
3476
  frame_sizer.Add(sz2, 0, wx.ALIGN_CENTER)
3477
3477
  self.SetAutoLayout(True)
3478
3478
  self.SetSizerAndFit(frame_sizer)
3479
3479
  self.Show()
3480
3480
 
3481
-
3481
+
3482
3482
  #L'annulation étant choisie par l'utilisateur, la fenêtre est simplement fermée
3483
3483
  def CloseFrame(self, e):
3484
3484
  self.Close()
@@ -3503,7 +3503,7 @@ class NewPatternFrame(wx.Frame):
3503
3503
 
3504
3504
  #
3505
3505
  class MyDialog(wx.Dialog):
3506
- """
3506
+ """
3507
3507
  Méthode d'ajout du pattern
3508
3508
  """
3509
3509
 
@@ -3564,7 +3564,7 @@ class MyDialog(wx.Dialog):
3564
3564
  self.Bind (wx.EVT_BUTTON, self.OnClear, id=12)
3565
3565
  self.Bind (wx.EVT_BUTTON, self.OnClose, id=13)
3566
3566
  self.Bind (wx.EVT_BUTTON, self.AutRead, id=14)
3567
-
3567
+
3568
3568
  def OnAdd(self, event):
3569
3569
  if not self.tc1.GetValue() or not self.tc2.GetValue():
3570
3570
  return
@@ -3671,27 +3671,27 @@ class MyDialog(wx.Dialog):
3671
3671
  else:
3672
3672
  break
3673
3673
 
3674
- #
3674
+ #
3675
3675
  class NewPumpFrame(wx.Frame):
3676
3676
  """
3677
3677
  Frame utilisée pour permettre la mise en place d'une pompe
3678
3678
  """
3679
3679
  def __init__(self, title, parent):
3680
- super(NewPumpFrame, self).__init__(parent, title = title,size = (700,700),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
3680
+ super(NewPumpFrame, self).__init__(parent, title = title,size = (700,700),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
3681
3681
  #Ajout d'un nouveau noeud entraîne à l'activiation du mode d'édition du réseau
3682
3682
  parent.Edition_Mode_Local=True
3683
3683
 
3684
- vbox = wx.BoxSizer(wx.VERTICAL)
3684
+ vbox = wx.BoxSizer(wx.VERTICAL)
3685
3685
 
3686
- self.Centre()
3686
+ self.Centre()
3687
3687
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
3688
3688
  #frame_sizer.Add(panel, 1, wx.EXPAND| wx.LEFT | wx.RIGHT, wx.ALIGN_CENTER)
3689
-
3689
+
3690
3690
  #Message d'annonce pour savoir ce qui est à réaliser
3691
3691
  Message='Characteristics of the Pump'
3692
3692
  self.message = wx.StaticText(self, -1, Message)
3693
3693
  frame_sizer.Add(self.message, 0, wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND)
3694
-
3694
+
3695
3695
  #Partiée liée à l'affichage des informations du pattern (menu défilant ?)
3696
3696
  self.panel = PanelPump(self,parent)
3697
3697
  frame_sizer.Add(self.panel, 1, wx.EXPAND)
@@ -3699,22 +3699,22 @@ class NewPumpFrame(wx.Frame):
3699
3699
  sz2 = wx.BoxSizer(wx.HORIZONTAL)
3700
3700
  self.btn=wx.Button(self,-1,"Show Pump")
3701
3701
  sz2.Add(self.btn,0, wx.ALL, 10)
3702
- self.btn.Bind(wx.EVT_BUTTON,self.Show_Pump)
3702
+ self.btn.Bind(wx.EVT_BUTTON,self.Show_Pump)
3703
3703
 
3704
3704
  self.btn2=wx.Button(self,-1,"Save")
3705
3705
  sz2.Add(self.btn2,0, wx.ALL, 10)
3706
- self.btn2.Bind(wx.EVT_BUTTON,self.SaveModPump)
3706
+ self.btn2.Bind(wx.EVT_BUTTON,self.SaveModPump)
3707
3707
 
3708
3708
  self.btn2=wx.Button(self,-1,"Annuler")
3709
3709
  sz2.Add(self.btn2,0, wx.ALL, 10)
3710
- self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
3710
+ self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
3711
3711
 
3712
3712
  frame_sizer.Add(sz2, 0, wx.ALIGN_CENTER)
3713
3713
  self.SetAutoLayout(True)
3714
3714
  self.SetSizerAndFit(frame_sizer)
3715
3715
  self.Show()
3716
3716
 
3717
-
3717
+
3718
3718
  #L'annulation étant choisie par l'utilisateur, la fenêtre est simplement fermée
3719
3719
  def CloseFrame(self, e):
3720
3720
  self.Close()
@@ -3763,7 +3763,7 @@ class PanelPattern(wx.Panel):
3763
3763
  """
3764
3764
  def __init__(self, parent,MainW):
3765
3765
  super(PanelPattern, self).__init__(parent)
3766
-
3766
+
3767
3767
  #Initialisation de la grille = évaluation du nombre d'attributs à afficher
3768
3768
 
3769
3769
  #Mise en place de la liste de contrôle
@@ -3781,7 +3781,7 @@ class PanelPattern(wx.Panel):
3781
3781
  self.list_ctrl.InsertColumn(i, "Value")
3782
3782
  else:
3783
3783
  self.list_ctrl.InsertColumn(i, "Ctrl Position")
3784
-
3784
+
3785
3785
  index = 0
3786
3786
  row_position = 0
3787
3787
  for row in MainW.Patterns[IDPattern]['Values']:
@@ -3794,21 +3794,21 @@ class PanelPattern(wx.Panel):
3794
3794
  self.list_ctrl.SetColumnWidth(row_position, wx.LIST_AUTOSIZE)
3795
3795
  row_position += 1
3796
3796
  index = 0
3797
-
3797
+
3798
3798
  sizer = wx.BoxSizer(wx.VERTICAL)
3799
3799
  sizer.Add(self.list_ctrl, 0, wx.ALL|wx.EXPAND, 5)
3800
3800
  self.SetSizer(sizer)
3801
3801
 
3802
- #
3802
+ #
3803
3803
  class PatternShow(wx.Frame):
3804
3804
  """
3805
3805
  Frame utilisée pour permettre la mise en place du nouveau noeud
3806
3806
  """
3807
3807
  def __init__(self, title, parent):
3808
- super(PatternShow, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
3808
+ super(PatternShow, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
3809
3809
  #Ajout d'un nouveau noeud entraîne à l'activiation du mode d'édition du réseau
3810
3810
 
3811
- self.Centre()
3811
+ self.Centre()
3812
3812
  MainW=self.Parent.Parent
3813
3813
  IDPattern=MainW.PosPattern
3814
3814
 
@@ -3850,7 +3850,7 @@ class PatternShow(wx.Frame):
3850
3850
  TimeVal.append(TimeLoc)
3851
3851
  Val=float(MainW.Patterns[IDPattern]['Values'][1][i])
3852
3852
  ValPtrn.append(Val)
3853
- #Evaluation du Pattern selon le type de Pattern
3853
+ #Evaluation du Pattern selon le type de Pattern
3854
3854
  if(MainW.Patterns[IDPattern]['Meth_Interp']=='2' or MainW.Patterns[IDPattern]['Meth_Interp']=='0'):
3855
3855
  #Echange de type optimisation avec donc valeurs d'échanges constantes sur chaque pas de temps
3856
3856
  Test=1
@@ -3891,7 +3891,7 @@ class PatternShow(wx.Frame):
3891
3891
  frame_sizer.Add(self.canvas, 1, wx.EXPAND)
3892
3892
  self.SetSizer(frame_sizer)
3893
3893
  self.Fit()
3894
- self.Show()
3894
+ self.Show()
3895
3895
  Test=1
3896
3896
 
3897
3897
  #
@@ -3901,7 +3901,7 @@ class PanelPump(wx.Panel):
3901
3901
  """
3902
3902
  def __init__(self, parent,MainW):
3903
3903
  super(PanelPump, self).__init__(parent)
3904
-
3904
+
3905
3905
  #Initialisation de la grille = évaluation du nombre d'attributs à afficher
3906
3906
  Index=len(MainW.Zones[1]['Name'])
3907
3907
  #Mise en place de la liste de contrôle
@@ -3941,9 +3941,9 @@ class PanelPump(wx.Panel):
3941
3941
  index += 1
3942
3942
  pos=1
3943
3943
  id_coeff=0
3944
- for Coeff in MainW.Zones[1]['Coefficients'][PosPump]:
3944
+ for Coeff in MainW.Zones[1]['Coefficients'][PosPump]:
3945
3945
  Name='Pump coeff.'+normal[id_coeff]
3946
- self.list_ctrl_pump.InsertItem(index, Name)
3946
+ self.list_ctrl_pump.InsertItem(index, Name)
3947
3947
  self.list_ctrl_pump.SetItem(index, row_position, str(float(MainW.Zones[1]['Coefficients'][PosPump][id_coeff])))
3948
3948
  pos += 1
3949
3949
  id_coeff +=1
@@ -3956,16 +3956,16 @@ class PanelPump(wx.Panel):
3956
3956
  sizer.Add(self.list_ctrl_pump, 1, wx.ALL|wx.EXPAND, 5)
3957
3957
  self.SetSizer(sizer)
3958
3958
 
3959
- #
3959
+ #
3960
3960
  class PumpShow(wx.Frame):
3961
3961
  """
3962
3962
  Frame utilisée pour permettre d'afficher la courbe de pompe utilisée
3963
3963
  """
3964
3964
  def __init__(self, title, parent):
3965
- super(PumpShow, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
3965
+ super(PumpShow, self).__init__(parent, title = title,size = (400,300),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
3966
3966
  #Ajout d'un nouveau noeud entraîne à l'activiation du mode d'édition du réseau
3967
3967
 
3968
- self.Centre()
3968
+ self.Centre()
3969
3969
  MainW=self.Parent.Parent
3970
3970
  IDPump=MainW.IDLocPump
3971
3971
 
@@ -3989,7 +3989,7 @@ class PumpShow(wx.Frame):
3989
3989
  #Prochaine étape est de reconstruire la loi sur base des coefficients proposés
3990
3990
  HeadVal=[]
3991
3991
  ValPtrn=[]
3992
- #Evaluation du Pattern selon le type de Pattern
3992
+ #Evaluation du Pattern selon le type de Pattern
3993
3993
  if(MainW.Zones[1]['Type'][MainW.PosPump]==2):
3994
3994
  #Pompe de type "3 points" avec H(Q)=C-BQ^A
3995
3995
  if(len(CoeffList)==3):
@@ -4005,40 +4005,40 @@ class PumpShow(wx.Frame):
4005
4005
  frame_sizer.Add(self.canvas, 1, wx.EXPAND)
4006
4006
  self.SetSizer(frame_sizer)
4007
4007
  self.Fit()
4008
- self.Show()
4008
+ self.Show()
4009
4009
 
4010
- #
4011
- class Mywin(wx.Frame):
4010
+ #
4011
+ class Mywin(wx.Frame):
4012
4012
  """
4013
4013
  Nouvelle fenêtre pour la mise en valeur de données liées à un vecteur ou tout type de noeud
4014
4014
  """
4015
4015
 
4016
- def __init__(self, parent, title, MainW, Type_Element):
4017
- super(Mywin, self).__init__(parent, title = title,size = (300,200),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
4016
+ def __init__(self, parent, title, MainW, Type_Element):
4017
+ super(Mywin, self).__init__(parent, title = title,size = (300,200),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
4018
4018
  self.Type_Element=Type_Element
4019
4019
  if(Type_Element==0):
4020
4020
  panel = MyVectorPanel(self,MainW)
4021
4021
  else:
4022
4022
  panel = MyNodePanel(self,MainW)
4023
- #panel = wx.Panel(self)
4024
- vbox = wx.BoxSizer(wx.VERTICAL)
4023
+ #panel = wx.Panel(self)
4024
+ vbox = wx.BoxSizer(wx.VERTICAL)
4025
4025
  #On vient donc afficher dans le petit tableau d'exportation le nom de l'attribut ainsi que sa valeur
4026
4026
  Test=1
4027
- self.Centre()
4027
+ self.Centre()
4028
4028
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
4029
4029
  frame_sizer.Add(panel, 1, wx.EXPAND)
4030
4030
  self.SetSizerAndFit(frame_sizer)
4031
4031
  #self.SetWindowStyle(wx.FRAME_FLOAT_ON_PARENT)
4032
- self.Show()
4033
- #self.Fit()
4032
+ self.Show()
4033
+ #self.Fit()
4034
4034
  Test=1
4035
4035
  self.OrigFrame=MainW
4036
4036
  self.locpanel=panel
4037
4037
  self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
4038
4038
 
4039
- def OnClicked(self, event):
4039
+ def OnClicked(self, event):
4040
4040
  btn = event.GetEventObject().GetLabel()
4041
-
4041
+
4042
4042
  #Vérification à la sortie de la fenêtre si des valeurs ont été modifiées et si c'est le cas, demande pour enregistrer les modifications
4043
4043
  def OnCloseWindow(self, event):
4044
4044
  #On va rechercher si un évènement de modification a été identifié
@@ -4052,8 +4052,8 @@ class Mywin(wx.Frame):
4052
4052
  None, "Do you want to save the modifications ?", "Save the results", wx.YES_NO | wx.CANCEL | wx.CENTRE
4053
4053
  )
4054
4054
  result = dlg.ShowModal()
4055
- self.Centre()
4056
- self.Show()
4055
+ self.Centre()
4056
+ self.Show()
4057
4057
  if result == wx.ID_YES:
4058
4058
  Test=1
4059
4059
  self.Save_Modifications()
@@ -4075,7 +4075,7 @@ class Mywin(wx.Frame):
4075
4075
  NumZone=MainW.List_Nodes_OGL['IdZone'][Index]
4076
4076
  NumVec=MainW.List_Nodes_OGL['NbrElVec'][Index]
4077
4077
  Main_Attr=MainW.Zones[NumZone]['Princ_Attrib']
4078
- for Attrib in Main_Attr:
4078
+ for Attrib in Main_Attr:
4079
4079
  if(Attrib in MainW.Zones[NumZone]):
4080
4080
  if(bool(MainW.Zones[NumZone][Attrib])):
4081
4081
  if(isinstance(MainW.Zones[NumZone][Attrib][NumVec],list)):
@@ -4113,7 +4113,7 @@ class Mywin(wx.Frame):
4113
4113
  MainW.Nodes[TypeNode][NameNode][SubAttr[0]][cpt_pos]=self.GridValues[cpt_val]
4114
4114
  else:
4115
4115
  MainW.Nodes[TypeNode][NameNode][SubAttr[0]]=self.GridValues[cpt_val]
4116
- return Test
4116
+ return Test
4117
4117
 
4118
4118
  #
4119
4119
  class MyVectorPanel(wx.Panel):
@@ -4123,7 +4123,7 @@ class MyVectorPanel(wx.Panel):
4123
4123
 
4124
4124
  def __init__(self, parent,MainW):
4125
4125
  super(MyVectorPanel, self).__init__(parent)
4126
-
4126
+
4127
4127
  #Initialisation de la grille = évaluation du nombre d'attributs à afficher
4128
4128
  MyVectorPanel.MainW=MainW
4129
4129
  self.parent=parent
@@ -4136,7 +4136,7 @@ class MyVectorPanel(wx.Panel):
4136
4136
  Val_Attr=[]
4137
4137
  normal = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-=()"
4138
4138
  Main_Attr=MainW.Zones[NumZone]['Princ_Attrib']
4139
- for Attrib in Main_Attr:
4139
+ for Attrib in Main_Attr:
4140
4140
  if(Attrib in MainW.Zones[NumZone]):
4141
4141
  PosEl=Main_Attr.index(Attrib)
4142
4142
  if(bool(MainW.Zones[NumZone][Attrib])):
@@ -4179,7 +4179,7 @@ class MyVectorPanel(wx.Panel):
4179
4179
  sz2 = wx.BoxSizer(wx.HORIZONTAL)
4180
4180
  self.btn=wx.Button(self,-1,"Spec. Results")
4181
4181
  sz2.Add(self.btn,0, wx.ALL, 10)
4182
- self.btn.Bind(wx.EVT_BUTTON,self.Show_Spec_Results)
4182
+ self.btn.Bind(wx.EVT_BUTTON,self.Show_Spec_Results)
4183
4183
  sizer.Add(sz2, 0, wx.ALIGN_CENTER)
4184
4184
  #Elément supplémentaire est lié à la nature du vecteur et de la présence de variables supplémentaires additionnelles
4185
4185
  if(NumZone==2):
@@ -4191,7 +4191,7 @@ class MyVectorPanel(wx.Panel):
4191
4191
  self.btn=wx.Button(self,-1,"Open. Factor valve")
4192
4192
  sz3.Add(self.btn,0, wx.ALL, 10)
4193
4193
  self.Spec_case=2
4194
- self.btn.Bind(wx.EVT_BUTTON,self.Show_Spec_Results)
4194
+ self.btn.Bind(wx.EVT_BUTTON,self.Show_Spec_Results)
4195
4195
  sizer.Add(sz3, 0, wx.ALIGN_CENTER)
4196
4196
 
4197
4197
  self.thegrid=mygrid
@@ -4199,16 +4199,16 @@ class MyVectorPanel(wx.Panel):
4199
4199
  Test=1
4200
4200
  self.parent.modified_grid=False
4201
4201
  self.thegrid.Bind(grid.EVT_GRID_CELL_CHANGED, self.Saved_Modifications)
4202
-
4202
+
4203
4203
  def Saved_Modifications(self,e):
4204
4204
  self.parent.modified_grid=True
4205
4205
  #Sauvegarde des valeurs de la grille
4206
4206
  Nb_Rows=self.thegrid.GetNumberRows()
4207
4207
  self.parent.GridValues=[]
4208
4208
  for Row in range(Nb_Rows):
4209
- self.parent.GridValues.append(self.thegrid.GetCellValue(Row,0))
4209
+ self.parent.GridValues.append(self.thegrid.GetCellValue(Row,0))
4210
4210
  Test=1
4211
- #On vient ainsi lancer l'initialisation d'une nouvelle fenêtre afin de montrer les résultats
4211
+ #On vient ainsi lancer l'initialisation d'une nouvelle fenêtre afin de montrer les résultats
4212
4212
  def Show_Spec_Results(self,e):
4213
4213
  Test=1
4214
4214
  title='Node results'
@@ -4226,8 +4226,8 @@ class MyVectorPanel(wx.Panel):
4226
4226
  None, Dial, "No available data", wx.OK | wx.CENTRE
4227
4227
  )
4228
4228
  result = dlg.ShowModal()
4229
- self.Centre()
4230
- self.Show()
4229
+ self.Centre()
4230
+ self.Show()
4231
4231
  if result == wx.ID_YES:
4232
4232
  Test=1
4233
4233
  self.Destroy()
@@ -4240,7 +4240,7 @@ class MyNodePanel(wx.Panel):
4240
4240
 
4241
4241
  def __init__(self, parent,MainW):
4242
4242
  super(MyNodePanel, self).__init__(parent)
4243
-
4243
+
4244
4244
  #Initialisation de la grille = évaluation du nombre d'attributs à afficher
4245
4245
  self.MainW=MainW
4246
4246
  self.parent=parent
@@ -4311,7 +4311,7 @@ class MyNodePanel(wx.Panel):
4311
4311
  sz2 = wx.BoxSizer(wx.HORIZONTAL)
4312
4312
  self.btn=wx.Button(self,-1,"Spec. Results")
4313
4313
  sz2.Add(self.btn,0, wx.ALL, 10)
4314
- self.btn.Bind(wx.EVT_BUTTON,self.Show_Spec_Results)
4314
+ self.btn.Bind(wx.EVT_BUTTON,self.Show_Spec_Results)
4315
4315
 
4316
4316
  sizer.Add(sz2, 0, wx.ALIGN_CENTER)
4317
4317
 
@@ -4326,8 +4326,8 @@ class MyNodePanel(wx.Panel):
4326
4326
  Nb_Rows=self.thegrid.GetNumberRows()
4327
4327
  self.parent.GridValues=[]
4328
4328
  for Row in range(Nb_Rows):
4329
- self.parent.GridValues.append(self.thegrid.GetCellValue(Row,0))
4330
- #On vient ainsi lancer l'initialisation d'une nouvelle fenêtre afin de montrer les résultats
4329
+ self.parent.GridValues.append(self.thegrid.GetCellValue(Row,0))
4330
+ #On vient ainsi lancer l'initialisation d'une nouvelle fenêtre afin de montrer les résultats
4331
4331
  def Show_Spec_Results(self,e):
4332
4332
  Test=1
4333
4333
  title='Node results'
@@ -4344,20 +4344,20 @@ class MyNodePanel(wx.Panel):
4344
4344
  None, Dial, "No available data", wx.OK | wx.CENTRE
4345
4345
  )
4346
4346
  result = dlg.ShowModal()
4347
- self.Centre()
4348
- self.Show()
4347
+ self.Centre()
4348
+ self.Show()
4349
4349
  if result == wx.ID_YES:
4350
4350
  Test=1
4351
4351
  self.Destroy()
4352
4352
 
4353
4353
  #
4354
- class Spec_Results(wx.Frame):
4354
+ class Spec_Results(wx.Frame):
4355
4355
  """
4356
4356
  Nouvelle fenêtre pour la mise en valeur des résultats d'un noeud ou d'une canalisation
4357
4357
  """
4358
4358
 
4359
- def __init__(self, parent, title, Type_Element):
4360
- super(Spec_Results, self).__init__(parent, title = title,size = (600,500),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
4359
+ def __init__(self, parent, title, Type_Element):
4360
+ super(Spec_Results, self).__init__(parent, title = title,size = (600,500),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
4361
4361
 
4362
4362
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
4363
4363
  #Implémentation de la Figure
@@ -4415,7 +4415,7 @@ class Spec_Results(wx.Frame):
4415
4415
  frame_sizer.Add(self.canvas, 1, wx.EXPAND)
4416
4416
  self.SetSizer(frame_sizer)
4417
4417
  self.Fit()
4418
- self.Show()
4418
+ self.Show()
4419
4419
 
4420
4420
  #
4421
4421
  class MyFrame_Slider(wx.Frame):
@@ -4425,15 +4425,15 @@ class MyFrame_Slider(wx.Frame):
4425
4425
 
4426
4426
  def __init__(self, parent, title,Max_Val):
4427
4427
  super(MyFrame_Slider, self).__init__(parent, title =title, size = (400,200))
4428
-
4429
-
4428
+
4429
+
4430
4430
  self.panel = MyPanel_Slider(self,Max_Val,parent)
4431
4431
  self.Show()
4432
4432
 
4433
4433
  class MyPanel_Slider(wx.Panel):
4434
4434
  def __init__(self, parent,Max_Val,MainW):
4435
4435
  super(MyPanel_Slider, self).__init__(parent)
4436
-
4436
+
4437
4437
  vbox = wx.BoxSizer(wx.VERTICAL)
4438
4438
  #Partie message d'introduction
4439
4439
  Message='Choice of the time step'
@@ -4442,7 +4442,7 @@ class MyPanel_Slider(wx.Panel):
4442
4442
  #Partie liée à la revue automatique des différents pas de temps en permettant aussi un temps de lecture
4443
4443
  Choices=['Automatic Review']
4444
4444
  Name_Box='Draw_Box'
4445
- #Ajout de la possibilité de faire
4445
+ #Ajout de la possibilité de faire
4446
4446
  #frame_sizer = wx.BoxSizer(wx.HORIZONTAL)
4447
4447
  #self.CheckBox = wx.CheckListBox(self, choices=Choices, name=Name_Box)
4448
4448
  #frame_sizer.Add(self.CheckBox, 1, wx.EXPAND | wx.LEFT | wx.RIGHT)
@@ -4453,18 +4453,18 @@ class MyPanel_Slider(wx.Panel):
4453
4453
  self.MaxVal=Max_Val
4454
4454
  self.slider = wx.Slider(self, value=1, minValue=1, maxValue=Max_Val,
4455
4455
  style=wx.SL_HORIZONTAL | wx.SL_LABELS)
4456
-
4456
+
4457
4457
  vbox.Add(self.slider,-1, flag = wx.EXPAND | wx.TOP, border = 5)
4458
-
4458
+
4459
4459
  self.btn=wx.Button(self,-1,"Ok")
4460
- vbox.Add(self.btn,0, wx.CENTER)
4460
+ vbox.Add(self.btn,0, wx.CENTER)
4461
4461
  self.btn.Bind(wx.EVT_BUTTON,self.Slider_Read)
4462
4462
 
4463
4463
  self.Frame=MainW
4464
4464
  self.slider.Bind(wx.EVT_SLIDER, self.OnSliderScroll)
4465
4465
  self.SetSizerAndFit(vbox)
4466
4466
  self.Center()
4467
-
4467
+
4468
4468
  #On identifie de la sorte le nouveau réseau à afficher
4469
4469
  def Slider_Read(self, e):
4470
4470
  Test=1
@@ -4483,7 +4483,7 @@ class MyPanel_Slider(wx.Panel):
4483
4483
  Nb_cases=int(self.MaxVal)-int(Frame_loc.Time_Step)+1
4484
4484
  else:
4485
4485
  Nb_cases=1
4486
- for cpt_cases in range(Nb_cases):
4486
+ for cpt_cases in range(Nb_cases):
4487
4487
  Loc_step=Frame_loc.Time_Step+cpt_cases
4488
4488
  #Frame_loc.Show_Results,Frame_loc.ExtrNodes,Frame_loc.ExtrVectors=Show_Results(Frame_loc.Param_Simul,Frame_loc.Zones,Frame_loc.Nodes,Loc_step)
4489
4489
  MainW.Show_Results,MainW.ExtrNodes,MainW.ExtrVectors=Show_Results(MainW.Param_Simul,MainW.Zones,MainW.Nodes,Loc_step)
@@ -4511,7 +4511,7 @@ class MyPanel_Slider(wx.Panel):
4511
4511
  class LineBuilder:
4512
4512
  """
4513
4513
  Partie liée à la mise en place d'actions lorsque l'utilisateur souhaite obtenir des informations à propos du réseau ou souhaite le modifier/construire
4514
- Construction de segments pour le réseau
4514
+ Construction de segments pour le réseau
4515
4515
  """
4516
4516
 
4517
4517
  def __init__(self, line):
@@ -4530,24 +4530,24 @@ class LineBuilder:
4530
4530
  xdata=self.xs
4531
4531
  ydata=self.xs
4532
4532
 
4533
- #
4533
+ #
4534
4534
  class IdElementFrame(wx.Frame):
4535
4535
  """
4536
4536
  Partie liée à la construction
4537
4537
  """
4538
4538
  def __init__(self, title, parent):
4539
- super(IdElementFrame, self).__init__(parent, title = title,size = (300,200),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
4539
+ super(IdElementFrame, self).__init__(parent, title = title,size = (300,200),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
4540
4540
  #Ajout d'un nouveau noeud entraîne à l'activiation du mode d'édition du réseau
4541
4541
  parent.Edition_Mode_Local=True
4542
4542
 
4543
- vbox = wx.BoxSizer(wx.VERTICAL)
4543
+ vbox = wx.BoxSizer(wx.VERTICAL)
4544
4544
 
4545
- self.Centre()
4545
+ self.Centre()
4546
4546
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
4547
4547
  #Message d'annonce pour savoir ce qui est à réaliser
4548
4548
  Message='What are you looking for ? Node or Link ?'
4549
4549
  #Préparation du choix d'éléments
4550
- #Choix disponibles selon les éléments présents au sein du réseau
4550
+ #Choix disponibles selon les éléments présents au sein du réseau
4551
4551
  TypeNode=['Reservoirs','IncJunctions']
4552
4552
  TypeEl=['Pipe','Pump','Valve','Deversoir']
4553
4553
  ChoicesEleme=[]
@@ -4577,12 +4577,12 @@ class IdElementFrame(wx.Frame):
4577
4577
  sz2 = wx.BoxSizer(wx.HORIZONTAL)
4578
4578
  self.btn=wx.Button(self,-1,"Ok")
4579
4579
  sz2.Add(self.btn,0, wx.ALL, 10)
4580
- self.btn.Bind(wx.EVT_BUTTON,self.Recherche)
4580
+ self.btn.Bind(wx.EVT_BUTTON,self.Recherche)
4581
4581
 
4582
4582
 
4583
4583
  self.btn2=wx.Button(self,-1,"Close")
4584
4584
  sz2.Add(self.btn2,0, wx.ALL, 10)
4585
- self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
4585
+ self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
4586
4586
 
4587
4587
  frame_sizer.Add(sz2, 0, wx.ALIGN_CENTER)
4588
4588
  self.SetAutoLayout(True)
@@ -4631,7 +4631,7 @@ class ExtractElement(wx.Panel):
4631
4631
  def __init__(self, parent,MainW,Message,ChoicesEleme,NameBoxes,Name_Element,Init_Pos):
4632
4632
  super(ExtractElement, self).__init__(parent)
4633
4633
 
4634
- self.Centre()
4634
+ self.Centre()
4635
4635
  self.Name_Element=Name_Element
4636
4636
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
4637
4637
 
@@ -4639,7 +4639,7 @@ class ExtractElement(wx.Panel):
4639
4639
  frame_sizer.Add(self.message, 0, wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND)
4640
4640
 
4641
4641
  #Partie liée à la box pour les choix d'éléments
4642
- self.rbox = wx.RadioBox(self, label = 'Elements', pos = (80,10), choices = ChoicesEleme, majorDimension = 1, style = wx.RA_SPECIFY_ROWS)
4642
+ self.rbox = wx.RadioBox(self, label = 'Elements', pos = (80,10), choices = ChoicesEleme, majorDimension = 1, style = wx.RA_SPECIFY_ROWS)
4643
4643
  #self.rbox.Bind(wx.EVT_RADIOBOX, self.OnRadiogroup)
4644
4644
  #Partie pour définir l'élément de base sélectionné dans la RadioBox
4645
4645
  self.rbox.SetSelection(Init_Pos)
@@ -4649,24 +4649,24 @@ class ExtractElement(wx.Panel):
4649
4649
  self.IDName='NotAName'
4650
4650
  #Partie pour nom élément si cela est nécessaire
4651
4651
  if(self.Name_Element):
4652
- nm = wx.StaticBox(self, -1,NameBoxes[0])
4652
+ nm = wx.StaticBox(self, -1,NameBoxes[0])
4653
4653
  nmbox = wx.BoxSizer(wx.HORIZONTAL)
4654
- fn = wx.StaticText(self, -1,NameBoxes[1])
4655
- nmbox.Add(fn, 0, wx.ALL|wx.CENTER, 5)
4656
- nm1 = wx.TextCtrl(self, -1, style = wx.ALIGN_LEFT)
4657
- #nm2 = wx.TextCtrl(panel, -1, style = wx.ALIGN_LEFT)
4658
- #ln = wx.StaticText(panel, -1, "Last Name")
4659
- nm1.Bind(wx.EVT_TEXT,self.OnKeyTyped)
4660
- nmbox.Add(nm1, 0, wx.ALL|wx.CENTER, 5)
4654
+ fn = wx.StaticText(self, -1,NameBoxes[1])
4655
+ nmbox.Add(fn, 0, wx.ALL|wx.CENTER, 5)
4656
+ nm1 = wx.TextCtrl(self, -1, style = wx.ALIGN_LEFT)
4657
+ #nm2 = wx.TextCtrl(panel, -1, style = wx.ALIGN_LEFT)
4658
+ #ln = wx.StaticText(panel, -1, "Last Name")
4659
+ nm1.Bind(wx.EVT_TEXT,self.OnKeyTyped)
4660
+ nmbox.Add(nm1, 0, wx.ALL|wx.CENTER, 5)
4661
4661
  #nmbox.Add(nm2, 0, wx.ALL|wx.CENTER, 5)
4662
- nmSizer = wx.StaticBoxSizer(nm, wx.VERTICAL)
4662
+ nmSizer = wx.StaticBoxSizer(nm, wx.VERTICAL)
4663
4663
  nmSizer.Add(nmbox, 0, wx.ALL|wx.CENTER, 10)
4664
- frame_sizer.Add(nmSizer,0, wx.ALL|wx.CENTER, 5)
4664
+ frame_sizer.Add(nmSizer,0, wx.ALL|wx.CENTER, 5)
4665
4665
  self.SetSizerAndFit(frame_sizer)
4666
4666
  self.TypeElement=-1
4667
- def OnKeyTyped(self, event):
4667
+ def OnKeyTyped(self, event):
4668
4668
  if(self.Name_Element):
4669
- self.IDName=event.GetString()
4669
+ self.IDName=event.GetString()
4670
4670
  self.TypeElement = self.rbox.StringSelection
4671
4671
  r=1
4672
4672
 
@@ -4676,11 +4676,11 @@ class IdSimulationFrame(wx.Frame):
4676
4676
  Identification du type de simulation désirées par l'utilisateur : capacité de modifier avant lancement
4677
4677
  """
4678
4678
  def __init__(self, title, parent):
4679
- super(IdSimulationFrame, self).__init__(parent, title = title,size = (300,200),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
4679
+ super(IdSimulationFrame, self).__init__(parent, title = title,size = (300,200),style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_FLOAT_ON_PARENT)
4680
4680
 
4681
- vbox = wx.BoxSizer(wx.VERTICAL)
4681
+ vbox = wx.BoxSizer(wx.VERTICAL)
4682
4682
  self.parent=parent
4683
- self.Centre()
4683
+ self.Centre()
4684
4684
  frame_sizer = wx.BoxSizer(wx.VERTICAL)
4685
4685
  #Message d'annonce pour savoir ce qui est à réaliser
4686
4686
  Message='Which simulation do you want to launch ?'
@@ -4713,11 +4713,11 @@ class IdSimulationFrame(wx.Frame):
4713
4713
  sz2 = wx.BoxSizer(wx.HORIZONTAL)
4714
4714
  self.btn=wx.Button(self,-1,"Ok")
4715
4715
  sz2.Add(self.btn,0, wx.ALL, 10)
4716
- self.btn.Bind(wx.EVT_BUTTON,self.ApplyChoice)
4716
+ self.btn.Bind(wx.EVT_BUTTON,self.ApplyChoice)
4717
4717
 
4718
4718
  self.btn2=wx.Button(self,-1,"Close")
4719
4719
  sz2.Add(self.btn2,0, wx.ALL, 10)
4720
- self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
4720
+ self.btn2.Bind(wx.EVT_BUTTON,self.CloseFrame)
4721
4721
 
4722
4722
  frame_sizer.Add(sz2, 0, wx.ALIGN_CENTER)
4723
4723
  self.SetAutoLayout(True)
@@ -4740,9 +4740,9 @@ class IdSimulationFrame(wx.Frame):
4740
4740
 
4741
4741
  def Extract_SubStrings(String,Special_char):
4742
4742
  """
4743
- Python code to sort a list by creating
4743
+ Python code to sort a list by creating
4744
4744
  Extract_SubStrings : extraction de substrings séparés par des caractères spéciaux
4745
-
4745
+
4746
4746
  string : string complet auquel on va donc extraire la liste de substrings séparés par des caractères spéciaux
4747
4747
  special_char : caractère spécial utilisé pour séparer les substrings entre eux
4748
4748
  """
@@ -4886,13 +4886,13 @@ def Init_Zones():
4886
4886
  Zones[loc_zone]['Diameter']=[]
4887
4887
  if(loc_zone==2):
4888
4888
  Zones[loc_zone]['Width']=[]
4889
- Zones[loc_zone]['Height']=[]
4890
- Zones[loc_zone]['Type_Valve']=[]
4889
+ Zones[loc_zone]['Height']=[]
4890
+ Zones[loc_zone]['Type_Valve']=[]
4891
4891
  Zones[loc_zone]['Opening_Factor']=[]
4892
4892
  Zones[loc_zone]['Coeff_Valve']=[]
4893
4893
  if(loc_zone==1):
4894
4894
  Zones[loc_zone]['Type_Law']=[]
4895
- Zones[loc_zone]['Nb_Coefficients']=[]
4895
+ Zones[loc_zone]['Nb_Coefficients']=[]
4896
4896
  return Zones
4897
4897
 
4898
4898
  #Sous-routine de calcul de distance entre deux noeuds
@@ -4917,7 +4917,7 @@ def Export_vecz(Zones,filename):
4917
4917
  Next_line='\n'
4918
4918
  text_line='0 0'
4919
4919
  file.write(text_line+Next_line)
4920
-
4920
+
4921
4921
  NbZones=len(Zones)
4922
4922
  file.write(str(len(Zones))+Next_line)
4923
4923
  Blank=' '
@@ -4925,7 +4925,7 @@ def Export_vecz(Zones,filename):
4925
4925
  Line2='"...", 5, 0.000000, 0.000000,#FALSE#,#FALSE#,"arial", 10, 0,#FALSE#'
4926
4926
  Line3='#TRUE#'
4927
4927
  IERR=0
4928
-
4928
+
4929
4929
  for i in range(NbZones):
4930
4930
  file.write('zone'+Next_line)
4931
4931
  NbVectors=0
@@ -4954,9 +4954,9 @@ def Export_vecz(Zones,filename):
4954
4954
 
4955
4955
  def Create_Network(Zones):
4956
4956
  """Creation du réseau en vue de l'affichage via networkx et également sauvegarde de l'ensemble des noeuds présents au sein du réseau"""
4957
-
4957
+
4958
4958
  #cp = cProfile.Profile()
4959
- #cp.enable()
4959
+ #cp.enable()
4960
4960
  myfig = plt.figure()
4961
4961
  ax = myfig.add_subplot(111)
4962
4962
  #plt.figure()
@@ -5043,7 +5043,7 @@ def Create_Network(Zones):
5043
5043
  #List_Nodes['TypeEl'].append('Vector')
5044
5044
  #List_Nodes['InitNode'].append(-1)
5045
5045
  Last_Node=Cpt_Total_Node
5046
-
5046
+
5047
5047
 
5048
5048
  if(k==0 or (k==NbrVertex-1)):
5049
5049
  New_Node=True
@@ -5091,11 +5091,11 @@ def Create_Network(Zones):
5091
5091
  List_Add_Nodes.append((CoordX,CoordY,CoordZ))
5092
5092
  edges_to_add.append((First_Node,Last_Node))
5093
5093
  First_Node=Last_Node
5094
-
5095
- cpt_vec=cpt_vec+1
5094
+
5095
+ cpt_vec=cpt_vec+1
5096
5096
 
5097
5097
  #plot=edges_to_add[0]
5098
- # Vec_Name=Zones[i]['Name'][j]
5098
+ # Vec_Name=Zones[i]['Name'][j]
5099
5099
  if(Complete_Creation):
5100
5100
  List_Tuples=int(sum(map(len, edges_to_add))/2)
5101
5101
  for s in range(List_Tuples):
@@ -5191,9 +5191,9 @@ def Prepare_Node_Values(G_loc):
5191
5191
  cpt_elem=0
5192
5192
  for u in G_loc.nodes():
5193
5193
  cpt_elem=cpt_elem+1
5194
- Loc_Val=G_loc.nodes[u]['value']+float(cpt_elem)/float(1000000000)
5194
+ Loc_Val=G_loc.nodes[u][key_Param.VALUE]+float(cpt_elem)/float(1000000000)
5195
5195
  values.append(Loc_Val)
5196
- if(G_loc.nodes[u]['value']==0):
5196
+ if(G_loc.nodes[u][key_Param.VALUE]==0):
5197
5197
  Test=1
5198
5198
  return values
5199
5199
 
@@ -5230,8 +5230,8 @@ def Set_Up_Vector_Values(Zones,Param_Simul,Timing):
5230
5230
  Zones[Loc_Zone]['ShowVal'][Loc_Vec]='X'
5231
5231
  return Extr
5232
5232
 
5233
- #Sous-routine permettant d'identifier l'index du noeud le plus proche d'une liste
5234
- #node tuple de type (x,y)
5233
+ #Sous-routine permettant d'identifier l'index du noeud le plus proche d'une liste
5234
+ #node tuple de type (x,y)
5235
5235
  # nodes liste de tuple de type [(x1,y1),(x2,y2),...]
5236
5236
  def closest_node(node, nodes):
5237
5237
  nodes = np.asarray(nodes)
@@ -5326,7 +5326,7 @@ def Import_Nodes_Attributes(namepath,List_Nodes,Param,Type_Analysis):
5326
5326
  NodeTime[1]=end-start
5327
5327
  start=time.time()
5328
5328
 
5329
- #Recherche des différents attributs importants pour les réservoirs
5329
+ #Recherche des différents attributs importants pour les réservoirs
5330
5330
  Found_Node={}
5331
5331
  Found_Node['Reservoirs']=[]
5332
5332
  Found_Node['IncJunctions']=[]
@@ -5369,7 +5369,7 @@ def Import_Nodes_Attributes(namepath,List_Nodes,Param,Type_Analysis):
5369
5369
  Test=1
5370
5370
  return Nodes,MainAttr,ListedAttr,DftAttr,Found_Node
5371
5371
 
5372
- #Sous-routine
5372
+ #Sous-routine
5373
5373
  def Build_List_Nodes(List_Nodes,Nodes):
5374
5374
  Test=1
5375
5375
  TypeN=['Reservoirs','IncJunctions']
@@ -5417,7 +5417,7 @@ def Import_Vector_Attributes(namepath,Zones,Param,List_Position):
5417
5417
  Zones=Add_Indirect_Position(Zones,List_Position)
5418
5418
  return Zones
5419
5419
 
5420
- def Define_Node_Pos(Nodes,Type_Node,List_Nodes):
5420
+ def Define_Node_Pos(Nodes,Type_Node,List_Nodes):
5421
5421
  i=0
5422
5422
  ListCoord=[]
5423
5423
  for NodeName in Nodes[Type_Node]:
@@ -5498,7 +5498,7 @@ def Add_Node_Attributes(El_List,MainDir,List_Attr,Attr_File,Spec_Case):
5498
5498
  if(File_To_Read):
5499
5499
  with open(filename) as f:
5500
5500
  content = f.readlines()
5501
- content = [x.rstrip('\n') for x in content]
5501
+ content = [x.rstrip('\n') for x in content]
5502
5502
 
5503
5503
  if(Spec_Case==1):
5504
5504
  for NodeName in El_List:
@@ -5555,7 +5555,7 @@ def Add_Pattern_Dft_Value(Nodes):
5555
5555
  #Partie liée aux attributs cette fois pour les différents types de vecteurs
5556
5556
  def Add_Vector_Attributes(Zones,MainDir,List_Attr,Attr_File):
5557
5557
  #cp = cProfile.Profile()
5558
- #cp.enable()
5558
+ #cp.enable()
5559
5559
  Found_File=[1]*len(List_Attr)
5560
5560
  Cpt_attrib=-1
5561
5561
  for Attr in List_Attr:
@@ -5607,19 +5607,19 @@ def Add_Vector_Time(Zones,LocDir,Param):
5607
5607
  if(Nb_total_Time>Nb_Time_steps):
5608
5608
  Nb_Lines_to_read=Nb_Time_steps
5609
5609
  Nb_remaining_Lines=Nb_total_Time-Nb_Time_steps
5610
-
5610
+
5611
5611
  cpt_file=0
5612
5612
  for loc_file in local_file:
5613
5613
  filename=LocDir+loc_file
5614
5614
  if(os.path.isfile(filename)):
5615
5615
  with open(filename) as f:
5616
5616
  content = f.readlines()
5617
- content = [x.rstrip('\n') for x in content]
5617
+ content = [x.rstrip('\n') for x in content]
5618
5618
  NbVec=int(Zones[Id_Zone[cpt_file]]['NbrVec'])
5619
5619
  zeroArray = [0.0] * Nb_total_Time
5620
5620
  Zones[Id_Zone[cpt_file]][Arg_Attr[cpt_file]]=[zeroArray[:] for i in range(NbVec)]
5621
5621
  Zones[Id_Zone[cpt_file]]['ShowVal']=[0.0]*NbVec
5622
-
5622
+
5623
5623
  cpt_Entry=0
5624
5624
  Nb_Entries=len(content)
5625
5625
  for Nb_Entry in range(len(content)):
@@ -5711,7 +5711,7 @@ def Add_Spec_Vec_Attributes(Zones,MainDir):
5711
5711
  file = open(LocDir,'r')
5712
5712
  Found_Pump=False
5713
5713
  Spec_Pump=False
5714
- #Structure du fichier:
5714
+ #Structure du fichier:
5715
5715
  #Type element,Numéro élément de son type, Nom Element
5716
5716
  #Param sigmoïde H(Q),Param sigmoïde P(Q)
5717
5717
  #Param sigmoïde Hbep(Q),Param sigmoïde Pbep(Q)
@@ -5732,7 +5732,7 @@ def Add_Spec_Vec_Attributes(Zones,MainDir):
5732
5732
  if(not(Spec_Pump)):
5733
5733
  Zones=Initialise_Sigm_Pump(Zones)
5734
5734
  Test=1
5735
- #Première ligne dédiée
5735
+ #Première ligne dédiée
5736
5736
  Value=file.readline().rstrip('\n')
5737
5737
  Value=re.split(r'\,', Value)
5738
5738
  if(len(Value)==2):
@@ -5766,7 +5766,7 @@ def Add_Spec_Vec_Attributes(Zones,MainDir):
5766
5766
  else:
5767
5767
  Found_Files[1]=0
5768
5768
 
5769
-
5769
+
5770
5770
  Test=1
5771
5771
  return Zones,Found_Files
5772
5772
 
@@ -5849,7 +5849,7 @@ def Add_Node_Time3(Nodes,Type_Node,LocDir,Param):
5849
5849
  if(File_To_Read):
5850
5850
  with open(LocFile) as f:
5851
5851
  content = f.readlines()
5852
- content = [x.strip() for x in content]
5852
+ content = [x.strip() for x in content]
5853
5853
  end=time.time()
5854
5854
  NodeTime=end-start
5855
5855
 
@@ -5961,7 +5961,7 @@ def Import_Patterns(MainPath):
5961
5961
  Test=1
5962
5962
  return Patterns
5963
5963
 
5964
- #Lecture d'une catégorie d'informations pour compléter
5964
+ #Lecture d'une catégorie d'informations pour compléter
5965
5965
  def Read_Pattern_Attributes(Patterns,Ptrn_Dir,Name_file,Attr_Name,Param_Case,SubAttributes,Dflt_Val):
5966
5966
  Attr_file=Ptrn_Dir+Name_file
5967
5967
  Special_char=','
@@ -6000,7 +6000,7 @@ def Read_PatternsDir(Patterns,Ptrn_Dir,SubAttributes):
6000
6000
  Days=[[],[]]
6001
6001
  Calendar=[]
6002
6002
  Loc_Val=Dflt_Val
6003
- #On vient remplir les valeurs
6003
+ #On vient remplir les valeurs
6004
6004
  if(not(Ptrn_Name in Patterns)):
6005
6005
  Patterns[Ptrn_Name]={}
6006
6006
  cpt_attr=0
@@ -6080,7 +6080,7 @@ def Export_Vec_Attributes(Zones,Param,Path):
6080
6080
  except OSError:
6081
6081
  logging.warning("Creation of the directory %s failed" % Directory)
6082
6082
  #Deuxième étape est donc d'ajouter les différents fichiers d'attributs
6083
- Attributes=[[],[],[],[]]
6083
+ Attributes=[[],[],[],[]]
6084
6084
  ListFilename=[[],[],[],[]]
6085
6085
  Attributes[0]=['Diameter','IC_Cond','Length','Material','Rough_Coeff']
6086
6086
  ListFilename[0]=['\\Diameter.D','\\IC_Vector.D','\\Length.D','\\Material.S','\\Rugosity.D']
@@ -6206,14 +6206,14 @@ def Export_Node_Attributes(Nodes,Path):
6206
6206
  except OSError:
6207
6207
  logging.warning("Creation of the directory %s failed" % Directory[1])
6208
6208
  #Deuxième étape est donc d'ajouter les différents fichiers d'attributs
6209
- Attributes=[[],[]]
6209
+ Attributes=[[],[]]
6210
6210
  Type=['Reservoirs','IncJunctions']
6211
6211
  ListFilename=[[],[]]
6212
6212
  Attributes[0]=['SECTION','IC_V','Max_H','Min_H','Patterns']
6213
6213
  ListFilename[0]=['\\SECTION.D','\\IC_Reservoir.D','\\Max_Height.D','\\Minimum_H.D','\\BC_Water_Exchanges.S']
6214
6214
  Attributes[1]=['Patterns','Consumers']
6215
6215
  ListFilename[1]=['\\BC_Water_Exchanges.S','\\ConsMeters.I']
6216
- #On s'assure de la validité
6216
+ #On s'assure de la validité
6217
6217
  Attr=Attributes[1][0]
6218
6218
  Dflt_Name='X'
6219
6219
  Filename=Dflt_Name
@@ -6459,7 +6459,3 @@ if __name__=='__main__':
6459
6459
  ex = Bernoulli_Frame(None)
6460
6460
  ex.Show()
6461
6461
  app.MainLoop()
6462
-
6463
-
6464
-
6465
-