mg-pso-gui 0.1.243__py3-none-any.whl → 0.2.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.
@@ -9,8 +9,6 @@ import subprocess
9
9
  import platform
10
10
  import os
11
11
 
12
- global option_manager
13
-
14
12
  class OverrideParameterMetrics(CTkScrollableFrame):
15
13
  def __init__(self, *args,
16
14
  option_manager: None,
@@ -4,6 +4,7 @@ from . import StepView as sv
4
4
  from . import StaticParameterView as spv
5
5
  from . import CalibrationParametersView as cpv
6
6
  from . import OptimalParameterView as opv
7
+ from ..General import ParameterView as pv
7
8
 
8
9
  import customtkinter
9
10
 
@@ -43,12 +44,12 @@ def create_tab(self, tab):
43
44
  #self.paramtabview.tab(tab3).grid_columnconfigure(0, weight=1)
44
45
  #self.paramtabview.tab(tab3).grid_rowconfigure(0, weight=1)
45
46
 
46
- self.static_param_frame = spv.StaticParameterView(self.paramtabview.tab(tab1), option_manager=self.option_manager)
47
+ self.static_param_frame = pv.ParameterView(self.paramtabview.tab(tab1), option_manager=self.option_manager, list_name="model_parameters")
47
48
  self.static_param_frame.grid(row=0, column=0, padx=(10, 10), pady=(10, 0), sticky="nsew")
48
49
  self.static_param_frame.grid_columnconfigure(0, weight=1)
49
50
  self.static_param_frame.grid_rowconfigure(0, weight=1)
50
51
 
51
- self.calib_param_frame = cpv.CalibrationParametersView(self.paramtabview.tab(tab2), option_manager=self.option_manager)
52
+ self.calib_param_frame = pv.ParameterView(self.paramtabview.tab(tab2), option_manager=self.option_manager, list_name="hyperparameters")
52
53
  self.calib_param_frame.grid(row=0, column=0, padx=(10, 10), pady=(10, 0), sticky="nsew")
53
54
  self.calib_param_frame.grid_columnconfigure(0, weight=1)
54
55
  self.calib_param_frame.grid_rowconfigure(0, weight=1)
@@ -44,14 +44,16 @@ class StepView(CTkScrollableFrame):
44
44
 
45
45
  self.clear()
46
46
  example_step = [{ # step 1
47
- 'param': [
47
+ 'parameter_objects': [
48
48
  {
49
49
  'name': 'soilOutLPS',
50
- 'bounds': (0.0, 2.0)
50
+ 'min_bound': 0.0,
51
+ 'max_bound': 2.0
51
52
  },
52
53
  {
53
54
  'name': 'lagInterflow',
54
- 'bounds': (10.0, 80.0)
55
+ 'min_bound': 10.0,
56
+ 'max_bound': 80.0
55
57
  }
56
58
  ],
57
59
  'objfunc': [
@@ -79,11 +81,10 @@ class StepView(CTkScrollableFrame):
79
81
  self.containerFrame.grid_columnconfigure((0, 1), weight=1)
80
82
 
81
83
  self.steps = self.option_manager.get_steps()
82
- self.mode = self.option_manager.get_arguments()['mode'].get()
84
+ self.mode = self.option_manager.get_mode()
83
85
 
84
86
  if (self.mode == "Sensitivity Analysis"):
85
- info = self.option_manager.get_project_data()
86
- folder = os.path.join(info['path'], info['name'], "results")
87
+ folder = self.option_manager.get_project_folder()
87
88
 
88
89
  # File all CSV files in folder and put them into list with strings as path
89
90
  files = []
@@ -108,23 +109,18 @@ class StepView(CTkScrollableFrame):
108
109
 
109
110
  row += 1
110
111
 
111
- if (self.mode == "Sampling"):
112
+ elif (self.mode == "Sampling: Halton" or self.mode == "Sampling: Random"):
112
113
  header_padding_x = (5, 5)
113
114
  header_padding_y = (10, 10)
114
115
 
115
116
  self.file_selector_frame = CTkFrame(self.containerFrame)
116
117
  self.file_selector_frame.grid(row=0, column=0, sticky="nsew", columnspan=2)
117
- self.logo_label = CTkLabel(self.file_selector_frame, text="Sampling Method:")
118
- self.logo_label.grid(row=0, column=0, padx=(10, 10), pady=header_padding_y)
119
118
 
120
- self.sampling_method = CTkOptionMenu(self.file_selector_frame, values=["Halton", "Random"], width=50, variable=self.home_page.sampling_method)
121
- self.sampling_method.grid(row=0, column=1, padx=(10, 10), pady=header_padding_y)
122
-
123
119
  self.logo_label2 = CTkLabel(self.file_selector_frame, text="Output:")
124
- self.logo_label2.grid(row=0, column=2, padx=(20, 10), pady=header_padding_y)
120
+ self.logo_label2.grid(row=0, column=1, padx=(20, 10), pady=header_padding_y)
125
121
 
126
122
  self.output_method = CTkOptionMenu(self.file_selector_frame, values=["Replace", "Append"], width=50, variable=self.home_page.sampling_output)
127
- self.output_method.grid(row=0, column=3, padx=(10, 10), pady=header_padding_y)
123
+ self.output_method.grid(row=0, column=2, padx=(10, 10), pady=header_padding_y)
128
124
 
129
125
  row += 1
130
126
 
@@ -161,7 +157,7 @@ class StepView(CTkScrollableFrame):
161
157
 
162
158
  row += 1
163
159
 
164
- if step['open'] or (self.mode == "Sampling" or self.mode == "Sensitivity Analysis"):
160
+ if step['open'] or (self.mode == "Sampling: Halton" or self.mode == "Sampling: Random" or self.mode == "Sensitivity Analysis"):
165
161
  bounds = BoundsList.BoundsList(
166
162
  self.containerFrame, option_manager=self.option_manager, step_index=index)
167
163
  bounds.grid(row=row, column=0, padx=(10, 10),
@@ -19,7 +19,7 @@ class MatrixEditor(CTkFrame):
19
19
  self.option_manager = option_manager
20
20
  self.home_page = home_page
21
21
  self.columns = columns
22
- self.key_values = option_manager.get_arguments()['figure_parameters']
22
+ self.key_values = option_manager.get('figure_parameters')
23
23
  self.edit_mode = False
24
24
 
25
25
  self.render()
@@ -51,7 +51,7 @@ class MatrixEditor(CTkFrame):
51
51
  bb = CTkOptionMenu(self.containerFrame, values=self.columns, variable=self.key_values[index]["value"], command=self.home_page.update_graph)
52
52
  bb.grid(row=row, column=0, padx=(5, 5), pady=(5, 5), sticky="ew")
53
53
 
54
- return_func = lambda index=index: (self.clear(), self.option_manager.remove_figure_parameter(index), self.home_page.update_graph(0), self.render())
54
+ return_func = lambda index=index: (self.clear(), self.option_manager.remove_key_value('figure_parameters', index), self.home_page.update_graph(0), self.render())
55
55
  CTkButton(self.containerFrame, text="Remove", command=return_func).grid(row=row, column=1, padx=(5, 5), pady=(5, 5), sticky="ew")
56
56
  else:
57
57
  bb = CTkOptionMenu(self.containerFrame, values=self.columns, variable=self.key_values[index]["value"], command=self.home_page.update_graph)
@@ -64,5 +64,5 @@ class MatrixEditor(CTkFrame):
64
64
  else:
65
65
  CTkButton(self.containerFrame, text="Edit", width=100, command=self.toggle_edit_mode).grid(row=row, column=0, padx=(5, 5), pady=(5, 5), sticky="ew")
66
66
 
67
- add_key_func = lambda: (self.clear(), self.option_manager.add_figure_param("Fig " + str(len(self.key_values)) , self.columns[2]), self.home_page.update_graph(0), self.render())
67
+ add_key_func = lambda: (self.clear(), self.option_manager.add_key_value('figure_parameters', "Fig " + str(len(self.key_values)), self.columns[2], destination="NONE"), self.home_page.update_graph(0), self.render())
68
68
  CTkButton(self.containerFrame, text="Add Figure", width=100, command=add_key_func).grid(row=row, column=1, padx=(5, 5), pady=(5, 5), sticky="ew")
@@ -59,8 +59,7 @@ class SideBar(CTkScrollableFrame):
59
59
  pass
60
60
  elif (selected_graph == "Custom CSV"):
61
61
 
62
- info = self.option_manager.get_project_data()
63
- folder = os.path.join(info['path'], info['name'])
62
+ folder = self.option_manager.get_project_folder()
64
63
  if not os.path.exists(folder):
65
64
  os.makedirs(folder)
66
65
 
@@ -124,8 +123,7 @@ class SideBar(CTkScrollableFrame):
124
123
  self.home_page.csv_y2_selector.set(columns[3])
125
124
 
126
125
  elif (selected_graph == "Compare CSV"):
127
- info = self.option_manager.get_project_data()
128
- folder = os.path.join(info['path'], info['name'])
126
+ folder = self.option_manager.get_project_folder()
129
127
  if not os.path.exists(folder):
130
128
  os.makedirs(folder)
131
129
 
@@ -202,8 +200,7 @@ class SideBar(CTkScrollableFrame):
202
200
 
203
201
  elif (selected_graph == "Sampling CSV"):
204
202
 
205
- info = self.option_manager.get_project_data()
206
- folder = os.path.join(info['path'], info['name'])
203
+ folder = self.option_manager.get_project_folder()
207
204
  if not os.path.exists(folder):
208
205
  os.makedirs(folder)
209
206
 
@@ -274,8 +271,7 @@ class SideBar(CTkScrollableFrame):
274
271
 
275
272
  elif (selected_graph == "Matrix Editor"):
276
273
 
277
- info = self.option_manager.get_project_data()
278
- folder = os.path.join(info['path'], info['name'])
274
+ folder = self.option_manager.get_project_folder()
279
275
  if not os.path.exists(folder):
280
276
  os.makedirs(folder)
281
277
 
@@ -12,8 +12,7 @@ def create_tab(self, tab):
12
12
 
13
13
  def open_graph_in_browser():
14
14
  # Open the file in the default program
15
- info = self.option_manager.get_project_data()
16
- folder = os.path.join(info['path'], info['name'])
15
+ folder = self.option_manager.get_project_folder()
17
16
 
18
17
  if not os.path.exists(folder):
19
18
  os.makedirs(folder)
@@ -29,8 +28,7 @@ def create_tab(self, tab):
29
28
 
30
29
  def export_graph():
31
30
 
32
- info = self.option_manager.get_project_data()
33
- folder = os.path.join(info['path'], info['name'])
31
+ folder = self.option_manager.get_project_folder()
34
32
 
35
33
  if not os.path.exists(folder):
36
34
  os.makedirs(folder)
@@ -1,61 +0,0 @@
1
- from customtkinter import CTkScrollableFrame
2
- from customtkinter import CTkFrame
3
- from customtkinter import CTkLabel
4
- from customtkinter import CTkButton
5
- from customtkinter import CTkEntry
6
- import tkinter as tk
7
-
8
- global option_manager
9
-
10
- class ServiceParametersView(CTkScrollableFrame):
11
- def __init__(self, *args,
12
- option_manager: None,
13
- **kwargs):
14
- super().__init__(*args, **kwargs)
15
-
16
- self.option_manager = option_manager
17
- self.key_values = option_manager.get_arguments()['service_parameters']
18
- self.edit_mode = False
19
-
20
- self.render()
21
-
22
- def clear(self):
23
- self.containerFrame.destroy()
24
-
25
- def toggle_edit_mode(self):
26
- self.clear()
27
- self.edit_mode = not self.edit_mode
28
- self.render()
29
-
30
- def render(self):
31
- row = 0
32
- index = 0
33
-
34
- self.containerFrame = CTkFrame(self)
35
- self.containerFrame.grid(row=0, column=0, padx=(5, 5), pady=(5, 5), sticky="nsew")
36
- self.containerFrame.grid_columnconfigure((0, 1), weight=1)
37
-
38
- CTkLabel(self.containerFrame, text="Name:").grid(row=row, column=0, columnspan=1, padx=5, pady=5, sticky="")
39
- CTkLabel(self.containerFrame, text="Value:").grid(row=row, column=1, columnspan=1, padx=5, pady=5, sticky="")
40
- row += 1
41
-
42
- for key_value_pair in self.key_values:
43
- CTkEntry(self.containerFrame, textvariable=self.key_values[index]["name"]).grid(row=row, column=0, padx=(5, 5), pady=(5, 5), sticky="ew")
44
-
45
- if self.edit_mode:
46
- return_func = lambda index=index: (self.clear(), self.option_manager.remove_service_parameter(index), self.render())
47
- CTkButton(self.containerFrame, text="Remove", command=return_func).grid(row=row, column=1, padx=(5, 5), pady=(5, 5), sticky="ew")
48
- else:
49
- bb = CTkEntry(self.containerFrame)
50
- bb.grid(row=row, column=1, padx=(5, 5), pady=(5, 5), sticky="ew")
51
- bb.configure(textvariable=self.key_values[index]["value"])
52
- row += 1
53
- index += 1
54
-
55
- if self.edit_mode:
56
- CTkButton(self.containerFrame, text="Exit", command=self.toggle_edit_mode).grid(row=row, column=0, padx=(5, 5), pady=(5, 5), sticky="ew")
57
- else:
58
- CTkButton(self.containerFrame, text="Edit", command=self.toggle_edit_mode).grid(row=row, column=0, padx=(5, 5), pady=(5, 5), sticky="ew")
59
-
60
- add_key_func = lambda: (self.clear(), self.option_manager.add_service_param("name", "value"), self.render())
61
- CTkButton(self.containerFrame, text="Add Parameter", command=add_key_func).grid(row=row, column=1, padx=(5, 5), pady=(5, 5), sticky="ew")
@@ -1,61 +0,0 @@
1
- from customtkinter import CTkScrollableFrame
2
- from customtkinter import CTkFrame
3
- from customtkinter import CTkLabel
4
- from customtkinter import CTkButton
5
- from customtkinter import CTkEntry
6
- import tkinter as tk
7
-
8
- global option_manager
9
-
10
- class CalibrationParametersView(CTkScrollableFrame):
11
- def __init__(self, *args,
12
- option_manager: None,
13
- **kwargs):
14
- super().__init__(*args, **kwargs)
15
-
16
- self.option_manager = option_manager
17
- self.key_values = option_manager.get_arguments()['calibration_parameters']
18
- self.edit_mode = False
19
-
20
- self.render()
21
-
22
- def clear(self):
23
- self.containerFrame.destroy()
24
-
25
- def toggle_edit_mode(self):
26
- self.clear()
27
- self.edit_mode = not self.edit_mode
28
- self.render()
29
-
30
- def render(self):
31
- row = 0
32
- index = 0
33
-
34
- self.containerFrame = CTkFrame(self)
35
- self.containerFrame.grid(row=0, column=0, padx=(5, 5), pady=(5, 5), sticky="nsew")
36
- self.containerFrame.grid_columnconfigure((0, 1), weight=1)
37
-
38
- CTkLabel(self.containerFrame, text="Name:").grid(row=row, column=0, columnspan=1, padx=5, pady=5, sticky="")
39
- CTkLabel(self.containerFrame, text="Value:").grid(row=row, column=1, columnspan=1, padx=5, pady=5, sticky="")
40
- row += 1
41
-
42
- for key_value_pair in self.key_values:
43
- CTkEntry(self.containerFrame, textvariable=self.key_values[index]["name"]).grid(row=row, column=0, padx=(5, 5), pady=(5, 5), sticky="ew")
44
-
45
- if self.edit_mode:
46
- return_func = lambda index=index: (self.clear(), self.option_manager.remove_calibration_parameter(index), self.render())
47
- CTkButton(self.containerFrame, text="Remove", command=return_func).grid(row=row, column=1, padx=(5, 5), pady=(5, 5), sticky="ew")
48
- else:
49
- bb = CTkEntry(self.containerFrame)
50
- bb.grid(row=row, column=1, padx=(5, 5), pady=(5, 5), sticky="ew")
51
- bb.configure(textvariable=self.key_values[index]["value"])
52
- row += 1
53
- index += 1
54
-
55
- if self.edit_mode:
56
- CTkButton(self.containerFrame, text="Exit", command=self.toggle_edit_mode).grid(row=row, column=0, padx=(5, 5), pady=(5, 5), sticky="ew")
57
- else:
58
- CTkButton(self.containerFrame, text="Edit", command=self.toggle_edit_mode).grid(row=row, column=0, padx=(5, 5), pady=(5, 5), sticky="ew")
59
-
60
- add_key_func = lambda: (self.clear(), self.option_manager.add_calibration_param("name", "value"), self.render())
61
- CTkButton(self.containerFrame, text="Add Parameter", command=add_key_func).grid(row=row, column=1, padx=(5, 5), pady=(5, 5), sticky="ew")
@@ -1,61 +0,0 @@
1
- from customtkinter import CTkScrollableFrame
2
- from customtkinter import CTkFrame
3
- from customtkinter import CTkLabel
4
- from customtkinter import CTkButton
5
- from customtkinter import CTkEntry
6
- import tkinter as tk
7
-
8
- global option_manager
9
-
10
- class StaticParameterView(CTkScrollableFrame):
11
- def __init__(self, *args,
12
- option_manager: None,
13
- **kwargs):
14
- super().__init__(*args, **kwargs)
15
-
16
- self.option_manager = option_manager
17
- self.key_values = option_manager.get_arguments()['param']
18
- self.edit_mode = False
19
-
20
- self.render()
21
-
22
- def clear(self):
23
- self.containerFrame.destroy()
24
-
25
- def toggle_edit_mode(self):
26
- self.clear()
27
- self.edit_mode = not self.edit_mode
28
- self.render()
29
-
30
- def render(self):
31
- row = 0
32
- index = 0
33
-
34
- self.containerFrame = CTkFrame(self)
35
- self.containerFrame.grid(row=0, column=0, padx=(5, 5), pady=(5, 5), sticky="nsew")
36
- self.containerFrame.grid_columnconfigure((0, 1), weight=1)
37
-
38
- CTkLabel(self.containerFrame, text="Name:").grid(row=row, column=0, columnspan=1, padx=5, pady=5, sticky="")
39
- CTkLabel(self.containerFrame, text="Value:").grid(row=row, column=1, columnspan=1, padx=5, pady=5, sticky="")
40
- row += 1
41
-
42
- for key_value_pair in self.key_values:
43
- CTkEntry(self.containerFrame, textvariable=self.key_values[index]["name"]).grid(row=row, column=0, padx=(5, 5), pady=(5, 5), sticky="ew")
44
-
45
- if self.edit_mode:
46
- return_func = lambda index=index: (self.clear(), self.option_manager.remove_argument(index), self.render())
47
- CTkButton(self.containerFrame, text="Remove", command=return_func).grid(row=row, column=1, padx=(5, 5), pady=(5, 5), sticky="ew")
48
- else:
49
- bb = CTkEntry(self.containerFrame)
50
- bb.grid(row=row, column=1, padx=(5, 5), pady=(5, 5), sticky="ew")
51
- bb.configure(textvariable=self.key_values[index]["value"])
52
- row += 1
53
- index += 1
54
-
55
- if self.edit_mode:
56
- CTkButton(self.containerFrame, text="Exit", command=self.toggle_edit_mode).grid(row=row, column=0, padx=(5, 5), pady=(5, 5), sticky="ew")
57
- else:
58
- CTkButton(self.containerFrame, text="Edit", command=self.toggle_edit_mode).grid(row=row, column=0, padx=(5, 5), pady=(5, 5), sticky="ew")
59
-
60
- add_key_func = lambda: (self.clear(), self.option_manager.add_argument("name", "value"), self.render())
61
- CTkButton(self.containerFrame, text="Add Parameter", command=add_key_func).grid(row=row, column=1, padx=(5, 5), pady=(5, 5), sticky="ew")