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.
- {mg_pso_gui-0.1.243.dist-info → mg_pso_gui-0.2.0.dist-info}/METADATA +1 -1
- {mg_pso_gui-0.1.243.dist-info → mg_pso_gui-0.2.0.dist-info}/RECORD +23 -23
- mgpsogui/gui/General/ParameterView.py +90 -0
- mgpsogui/gui/General/__init__.py +0 -0
- mgpsogui/gui/HomePage.py +14 -52
- mgpsogui/gui/OptionManager.py +194 -195
- mgpsogui/gui/OptionManager_backup.py +443 -0
- mgpsogui/gui/PlatformTab/PlatformTab.py +3 -3
- mgpsogui/gui/SetupTab/BoundsList.py +10 -10
- mgpsogui/gui/SetupTab/CustomFunctionMetrics.py +2 -2
- mgpsogui/gui/SetupTab/FunctionsList.py +7 -7
- mgpsogui/gui/SetupTab/ListEditor.py +1 -3
- mgpsogui/gui/SetupTab/ListParametersView.py +7 -6
- mgpsogui/gui/SetupTab/OptimalParameterView.py +3 -5
- mgpsogui/gui/SetupTab/OverrideParameterMetrics.py +0 -2
- mgpsogui/gui/SetupTab/SetupTab.py +3 -2
- mgpsogui/gui/SetupTab/StepView.py +11 -15
- mgpsogui/gui/VisualizeTab/MatrixEditor.py +3 -3
- mgpsogui/gui/VisualizeTab/SideBar.py +4 -8
- mgpsogui/gui/VisualizeTab/VisualizeTab.py +2 -4
- mgpsogui/gui/PlatformTab/ServiceParametersView.py +0 -61
- mgpsogui/gui/SetupTab/CalibrationParametersView.py +0 -61
- mgpsogui/gui/SetupTab/StaticParameterView.py +0 -61
- {mg_pso_gui-0.1.243.dist-info → mg_pso_gui-0.2.0.dist-info}/WHEEL +0 -0
- {mg_pso_gui-0.1.243.dist-info → mg_pso_gui-0.2.0.dist-info}/entry_points.txt +0 -0
- {mg_pso_gui-0.1.243.dist-info → mg_pso_gui-0.2.0.dist-info}/top_level.txt +0 -0
@@ -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 =
|
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 =
|
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
|
-
'
|
47
|
+
'parameter_objects': [
|
48
48
|
{
|
49
49
|
'name': 'soilOutLPS',
|
50
|
-
'
|
50
|
+
'min_bound': 0.0,
|
51
|
+
'max_bound': 2.0
|
51
52
|
},
|
52
53
|
{
|
53
54
|
'name': 'lagInterflow',
|
54
|
-
'
|
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.
|
84
|
+
self.mode = self.option_manager.get_mode()
|
83
85
|
|
84
86
|
if (self.mode == "Sensitivity Analysis"):
|
85
|
-
|
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
|
-
|
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=
|
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=
|
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.
|
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.
|
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.
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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")
|
File without changes
|
File without changes
|
File without changes
|