mg-pso-gui 0.1.237__py3-none-any.whl → 0.1.239__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mg-pso-gui
3
- Version: 0.1.237
3
+ Version: 0.1.239
4
4
  Summary: GUI for MG-PSO
5
5
  Author: Robert Cordingly
6
6
  Author-email: <rcording@uw.ed>
@@ -2,9 +2,10 @@ mgpsogui/__init__.py,sha256=q7AfBjeJABnFtbsZnsObpUwaXKPDVYtz46G6MKXLF74,42
2
2
  mgpsogui/mgpsogui.py,sha256=NIZmyNcbwC8EgSwf1ubdMUSJscrIEgoD4jLYziqHQ-k,148
3
3
  mgpsogui/start.yaml,sha256=ZjCVLb-MLqAxrGRm9kA7_SDpa-45EuKIELNQ2QqCAiU,4713
4
4
  mgpsogui/gui/HomePage.py,sha256=F0QIzkkM4cDvaFZq_Uy5cDFL6wb1-HV8AB44K-QqB4o,23227
5
- mgpsogui/gui/OptionManager.py,sha256=DxOZbos8d1p3j3Krs534JJaCZKLl3hqmauPUx7lbr4o,16360
5
+ mgpsogui/gui/OptionManager.py,sha256=2Fckux8P8xrkPWmQtqi8pCOO1mvRc8IjfPjxmyoLLTM,17362
6
6
  mgpsogui/gui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- mgpsogui/gui/PlatformTab/PlatformTab.py,sha256=q8x_tvVgSoyGINuQbivXRThF3gaSSfg8X_dsLSPv4F0,10492
7
+ mgpsogui/gui/PlatformTab/PlatformTab.py,sha256=Uug0hUzwF7mpmnMOs6lXZMAN8AGoeV5VWtPBqYwUV0c,10897
8
+ mgpsogui/gui/PlatformTab/ServiceParametersView.py,sha256=0oWkRCUjqVNj4jhAqtczz_REef5MWZymWA-8JWBRl3E,2916
8
9
  mgpsogui/gui/PlatformTab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
10
  mgpsogui/gui/RunTab/RunTab.py,sha256=8FT7mdxNRQrftDuU0v4LoK1eyH8_RHwLOyM4dz8O_4A,1850
10
11
  mgpsogui/gui/RunTab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -16,10 +17,10 @@ mgpsogui/gui/SetupTab/CustomFunctionMetrics.py,sha256=hAVZSJMgHEQYrFsgUUnil17pWM
16
17
  mgpsogui/gui/SetupTab/FunctionsList.py,sha256=cMBv87GeRACiJ1DPxFrPvZJOZ3fK6FUVAeUaQCR9dn0,6375
17
18
  mgpsogui/gui/SetupTab/ListEditor.py,sha256=vlP0KDPu8J1_6KXuUTlE7OClgfF0Qk6cISsFm_SglUw,3232
18
19
  mgpsogui/gui/SetupTab/ListParametersView.py,sha256=wYcDcaooYkw-y7XW6dJUwhTWxLuUUOK5tGUFVHBf3ck,7352
19
- mgpsogui/gui/SetupTab/OptimalParameterView.py,sha256=VKn-4BlVyqspFIOkbWsM0q9pYVsmqnSND0xP2hDKb60,1785
20
- mgpsogui/gui/SetupTab/SetupTab.py,sha256=NmCPb9tGVJmUy1HG3G26y5RibtVZNeN9XFyomVnageQ,2792
20
+ mgpsogui/gui/SetupTab/OptimalParameterView.py,sha256=H92S6ioJI2iTjFBspEzyDxluagCEgfFSW5AkqQFO-l8,1738
21
+ mgpsogui/gui/SetupTab/SetupTab.py,sha256=RuAn6inLUX12i6-4RmXkteIiGtxh27nYY34mFmbb3xs,2810
21
22
  mgpsogui/gui/SetupTab/StaticParameterView.py,sha256=iEG-UpBBlAJabZo3MG768oLqOROjUPc23tKOSd47IUc,2739
22
- mgpsogui/gui/SetupTab/StepView.py,sha256=fWzKw4B0HT-d81FlWVN98oHD7gaAos4bON7OjftEUHo,11593
23
+ mgpsogui/gui/SetupTab/StepView.py,sha256=UQNLRxCEQQPvdW5UIT703TnmEfnjgchGIBFnCg4K3Zs,8557
23
24
  mgpsogui/gui/SetupTab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
25
  mgpsogui/gui/VisualizeTab/MatrixEditor.py,sha256=JPQmfljdddIwHtTKpFqUdk7hRzVdX-IKl4neOk3DsjM,3132
25
26
  mgpsogui/gui/VisualizeTab/SideBar.py,sha256=MtZfDScNFN0fQ8DyPm6bZGJSrFRgT14fZeUq-qc61O8,21936
@@ -62,8 +63,8 @@ mgpsogui/util/recosu/utils/trace_writer.py,sha256=V9BJlOjCbNYGoXGEk3CF5wjifBxvar
62
63
  mgpsogui/util/recosu/utils/utils.py,sha256=QB8vftq3142ekG0ORjz0ZBHU5YknXbR0oTsrxrPAsF0,3951
63
64
  mgpsogui/util/recosu/utils/plot/__init__.py,sha256=h1KjM7_tNDv351pcwt8A6Ibb1jhwWyx5Gbu-zj-sI3Q,71
64
65
  mgpsogui/util/recosu/utils/plot/cost_steps.py,sha256=1Ce11AJyweWkmvjXPxEygzS-h8yVLmQEDLS53yjPLqQ,3779
65
- mg_pso_gui-0.1.237.dist-info/METADATA,sha256=-zn5-a8zXHUIqOSTpL_FPN1tTEtOpvBzcbIbJvfV-Y0,9456
66
- mg_pso_gui-0.1.237.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
67
- mg_pso_gui-0.1.237.dist-info/entry_points.txt,sha256=jg82VOFjR1XDGrchs1wJSCqKYE4Ozv12aBcCSp--koA,117
68
- mg_pso_gui-0.1.237.dist-info/top_level.txt,sha256=y7JuS9xJN5YdxUsQ3PSVjN8MzQAnR146bP3ZN3PYWdE,9
69
- mg_pso_gui-0.1.237.dist-info/RECORD,,
66
+ mg_pso_gui-0.1.239.dist-info/METADATA,sha256=6QhLxssfrs7PPVwYKXoyIyYyHGAsITbKdQ7kHgGkZdA,9456
67
+ mg_pso_gui-0.1.239.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
68
+ mg_pso_gui-0.1.239.dist-info/entry_points.txt,sha256=jg82VOFjR1XDGrchs1wJSCqKYE4Ozv12aBcCSp--koA,117
69
+ mg_pso_gui-0.1.239.dist-info/top_level.txt,sha256=y7JuS9xJN5YdxUsQ3PSVjN8MzQAnR146bP3ZN3PYWdE,9
70
+ mg_pso_gui-0.1.239.dist-info/RECORD,,
@@ -15,6 +15,7 @@ class OptionManager():
15
15
  "mode": sv(),
16
16
  "files": {},
17
17
  "calibration_parameters": [],
18
+ "service_parameters": [],
18
19
  "figure_parameters": [],
19
20
  "sensitivity_parameters": [],
20
21
  "sensitivity_positiveBestMetrics": [],
@@ -35,6 +36,7 @@ class OptionManager():
35
36
  self.arguments['mode'].set("Optimization")
36
37
  self.arguments['files'] = {}
37
38
  self.arguments['calibration_parameters'].clear()
39
+ self.arguments['service_parameters'].clear()
38
40
  self.arguments['figure_parameters'].clear()
39
41
  self.arguments['sensitivity_parameters'].clear()
40
42
  self.arguments['sensitivity_positiveBestMetrics'].clear()
@@ -74,6 +76,14 @@ class OptionManager():
74
76
  obj["name"].set(name)
75
77
  obj["value"].set(value)
76
78
  self.arguments["calibration_parameters"].append(obj)
79
+
80
+ for param in arguments["service_parameters"]:
81
+ name = param["name"]
82
+ value = param["value"]
83
+ obj = {"name": sv(), "value": sv()}
84
+ obj["name"].set(name)
85
+ obj["value"].set(value)
86
+ self.arguments["service_parameters"].append(obj)
77
87
 
78
88
  def add_steps(self, steps):
79
89
  for step in steps:
@@ -233,6 +243,12 @@ class OptionManager():
233
243
  obj["value"].set(value)
234
244
  self.arguments["calibration_parameters"].append(obj)
235
245
 
246
+ def add_service_param(self, key, value):
247
+ obj = {"name": sv(), "value": sv()}
248
+ obj["name"].set(key)
249
+ obj["value"].set(value)
250
+ self.arguments["service_parameters"].append(obj)
251
+
236
252
  def add_figure_param(self, key, value):
237
253
  obj = {"name": sv(), "value": sv()}
238
254
  obj["name"].set(key)
@@ -282,6 +298,9 @@ class OptionManager():
282
298
  def remove_calibration_parameter(self, index):
283
299
  self.arguments["calibration_parameters"].pop(index)
284
300
 
301
+ def remove_service_parameter(self, index):
302
+ self.arguments["service_parameters"].pop(index)
303
+
285
304
  def remove_figure_parameter(self, index):
286
305
  self.arguments["figure_parameters"].pop(index)
287
306
 
@@ -330,6 +349,7 @@ class OptionManager():
330
349
  result = {}
331
350
  result['arguments'] = {}
332
351
  result['calibration_parameters'] = []
352
+ result['service_parameters'] = []
333
353
  result['service_parameters'] = {}
334
354
  result['project_data'] = self.project_data
335
355
  for key, value in self.arguments.items():
@@ -347,6 +367,10 @@ class OptionManager():
347
367
  #result['calibration_parameters'][key] = []
348
368
  for obj in value:
349
369
  result['calibration_parameters'].append({'name': obj['name'].get(), 'value': obj['value'].get()})
370
+ elif key == "service_parameters":
371
+ #result['service_parameters'][key] = []
372
+ for obj in value:
373
+ result['service_parameters'].append({'name': obj['name'].get(), 'value': obj['value'].get()})
350
374
  result['steps'] = []
351
375
  for step in self.steps:
352
376
  step_result = {}
@@ -5,6 +5,8 @@ import subprocess
5
5
  import customtkinter
6
6
  import platform
7
7
 
8
+ from . import ServiceParametersView as spv
9
+
8
10
  import tkinter as tk
9
11
 
10
12
  def create_tab(self, tab):
@@ -114,6 +116,7 @@ def create_tab(self, tab):
114
116
 
115
117
  tab.grid_columnconfigure(0, weight=1)
116
118
  tab.grid_columnconfigure(1, weight=1)
119
+ tab.grid_columnconfigure(2, weight=1)
117
120
  tab.grid_rowconfigure(0, weight=1)
118
121
 
119
122
  """
@@ -131,9 +134,15 @@ def create_tab(self, tab):
131
134
  self.load_parameters.grid(row=0, column=2, padx=(20, 20), pady=(20, 20), sticky="nsew")
132
135
 
133
136
  """
137
+
138
+ self.service_param_frame = spv.ServiceParametersView(tab, option_manager=self.option_manager)
139
+ self.service_param_frame.grid(row=0, column=0, padx=(20, 20), pady=(20, 20), sticky="nsew")
140
+ self.service_param_frame.grid_columnconfigure(0, weight=1)
141
+ self.service_param_frame.grid_rowconfigure(0, weight=1)
142
+
134
143
 
135
144
  self.service_editor = customtkinter.CTkScrollableFrame(tab, label_text="Service Editor")
136
- self.service_editor.grid(row=0, column=0, padx=(20, 20), pady=(20, 20), sticky="nsew")
145
+ self.service_editor.grid(row=0, column=1, padx=(20, 20), pady=(20, 20), sticky="nsew")
137
146
  self.service_editor.grid_columnconfigure(0, weight=1)
138
147
  self.service_editor.grid_rowconfigure(0, weight=1)
139
148
 
@@ -162,7 +171,7 @@ def create_tab(self, tab):
162
171
  self.service_details.grid(row=8, column=0, padx=(20, 20), pady=(5, 5), sticky="ew")
163
172
 
164
173
  self.environment_editor = customtkinter.CTkScrollableFrame(tab, label_text="Environment Editor")
165
- self.environment_editor.grid(row=0, column=1, padx=(20, 20), pady=(20, 20), sticky="nsew")
174
+ self.environment_editor.grid(row=0, column=2, padx=(20, 20), pady=(20, 20), sticky="nsew")
166
175
  self.environment_editor.grid_columnconfigure(0, weight=1)
167
176
  self.environment_editor.grid_rowconfigure(0, weight=1)
168
177
 
@@ -0,0 +1,64 @@
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="Service Parameters").grid(row=row, column=0, columnspan=2, padx=5, pady=5, sticky="")
39
+ row += 1
40
+
41
+ CTkLabel(self.containerFrame, text="Name:").grid(row=row, column=0, columnspan=1, padx=5, pady=5, sticky="")
42
+ CTkLabel(self.containerFrame, text="Value:").grid(row=row, column=1, columnspan=1, padx=5, pady=5, sticky="")
43
+ row += 1
44
+
45
+ for key_value_pair in self.key_values:
46
+ CTkEntry(self.containerFrame, textvariable=self.key_values[index]["name"]).grid(row=row, column=0, padx=(5, 5), pady=(5, 5), sticky="ew")
47
+
48
+ if self.edit_mode:
49
+ return_func = lambda index=index: (self.clear(), self.option_manager.remove_service_parameter(index), self.render())
50
+ CTkButton(self.containerFrame, text="Remove", command=return_func).grid(row=row, column=1, padx=(5, 5), pady=(5, 5), sticky="ew")
51
+ else:
52
+ bb = CTkEntry(self.containerFrame)
53
+ bb.grid(row=row, column=1, padx=(5, 5), pady=(5, 5), sticky="ew")
54
+ bb.configure(textvariable=self.key_values[index]["value"])
55
+ row += 1
56
+ index += 1
57
+
58
+ if self.edit_mode:
59
+ CTkButton(self.containerFrame, text="Exit", command=self.toggle_edit_mode).grid(row=row, column=0, padx=(5, 5), pady=(5, 5), sticky="ew")
60
+ else:
61
+ CTkButton(self.containerFrame, text="Edit", command=self.toggle_edit_mode).grid(row=row, column=0, padx=(5, 5), pady=(5, 5), sticky="ew")
62
+
63
+ add_key_func = lambda: (self.clear(), self.option_manager.add_service_param("name", "value"), self.render())
64
+ CTkButton(self.containerFrame, text="Add Parameter", command=add_key_func).grid(row=row, column=1, padx=(5, 5), pady=(5, 5), sticky="ew")
@@ -32,7 +32,7 @@ class OptimalParameterView(CTkScrollableFrame):
32
32
 
33
33
  for step in self.steps:
34
34
 
35
- if self.mode != "Sampling: Halton":
35
+ if self.mode != "Sampling":
36
36
  name = step['name'].get()
37
37
  CTkLabel(self.containerFrame, text=name).grid(row=row, column=0, columnspan=1, padx=5, pady=5, sticky="")
38
38
  row += 1
@@ -45,5 +45,5 @@ class OptimalParameterView(CTkScrollableFrame):
45
45
  bb.configure(textvariable=param['optimal_value'])
46
46
  row += 1
47
47
 
48
- if self.mode == "Sampling: Halton" or self.mode == "Sampling: Random":
48
+ if self.mode != "Optimization":
49
49
  break
@@ -27,12 +27,12 @@ def create_tab(self, tab):
27
27
  self.paramtabview = customtkinter.CTkTabview(tab, bg_color="transparent", fg_color="transparent")
28
28
  self.paramtabview.grid(row=0, column=1, padx=(0, 0), pady=(10, 10), sticky="nsew")
29
29
 
30
- tab1 = "Static"
30
+ tab1 = "Model Parameters"
31
31
  tab2 = "Hyperparameters"
32
- tab3 = "Optimal"
32
+ #tab3 = "Optimal"
33
33
  self.paramtabview.add(tab1)
34
34
  self.paramtabview.add(tab2)
35
- self.paramtabview.add(tab3)
35
+ #self.paramtabview.add(tab3)
36
36
 
37
37
  self.paramtabview.tab(tab1).grid_columnconfigure(0, weight=1)
38
38
  self.paramtabview.tab(tab1).grid_rowconfigure(0, weight=1)
@@ -40,8 +40,8 @@ def create_tab(self, tab):
40
40
  self.paramtabview.tab(tab2).grid_columnconfigure(0, weight=1)
41
41
  self.paramtabview.tab(tab2).grid_rowconfigure(0, weight=1)
42
42
 
43
- self.paramtabview.tab(tab3).grid_columnconfigure(0, weight=1)
44
- self.paramtabview.tab(tab3).grid_rowconfigure(0, weight=1)
43
+ #self.paramtabview.tab(tab3).grid_columnconfigure(0, weight=1)
44
+ #self.paramtabview.tab(tab3).grid_rowconfigure(0, weight=1)
45
45
 
46
46
  self.static_param_frame = spv.StaticParameterView(self.paramtabview.tab(tab1), option_manager=self.option_manager)
47
47
  self.static_param_frame.grid(row=0, column=0, padx=(10, 10), pady=(10, 0), sticky="nsew")
@@ -53,10 +53,10 @@ def create_tab(self, tab):
53
53
  self.calib_param_frame.grid_columnconfigure(0, weight=1)
54
54
  self.calib_param_frame.grid_rowconfigure(0, weight=1)
55
55
 
56
- self.optimal_param_frame = opv.OptimalParameterView(self.paramtabview.tab(tab3), option_manager=self.option_manager)
57
- self.optimal_param_frame.grid(row=0, column=0, padx=(10, 10), pady=(10, 0), sticky="nsew")
58
- self.optimal_param_frame.grid_columnconfigure(0, weight=1)
59
- self.optimal_param_frame.grid_rowconfigure(0, weight=1)
56
+ #self.optimal_param_frame = opv.OptimalParameterView(self.paramtabview.tab(tab3), option_manager=self.option_manager)
57
+ #self.optimal_param_frame.grid(row=0, column=0, padx=(10, 10), pady=(10, 0), sticky="nsew")
58
+ #self.optimal_param_frame.grid_columnconfigure(0, weight=1)
59
+ #self.optimal_param_frame.grid_rowconfigure(0, weight=1)
60
60
 
61
61
  self.steps_frame = sv.StepView(tab, label_text="Group Editor", option_manager=self.option_manager, home_page=self)
62
62
  self.steps_frame.grid(row=0, column=0, padx=(10, 10), pady=(10, 0), sticky="nsew")
@@ -157,7 +157,7 @@ class StepView(CTkScrollableFrame):
157
157
 
158
158
  row += 1
159
159
 
160
- if step['open'] or (self.mode == "Sampling"or self.mode == "Sensitivity Analysis"):
160
+ if step['open'] or (self.mode == "Sampling" or self.mode == "Sensitivity Analysis"):
161
161
  bounds = BoundsList.BoundsList(
162
162
  self.containerFrame, option_manager=self.option_manager, step_index=index)
163
163
  bounds.grid(row=row, column=0, padx=(10, 10),
@@ -183,42 +183,3 @@ class StepView(CTkScrollableFrame):
183
183
  CTkButton(self.containerFrame, text="Add Group", command=self.create_new_step).grid(
184
184
  row=row, columnspan=2, column=0, padx=(10, 10), pady=(10, 10), sticky="ew")
185
185
 
186
- """
187
- if (self.mode == "Sampling: Halton" or self.mode == "Sampling: Random" or self.mode == "Sensitivity Analysis"):
188
- self.analysisFrame = CTkFrame(self)
189
- self.analysisFrame.grid(row=2, column=0, columnspan=2, padx=(10, 10), pady=(10, 10), sticky="nsew")
190
- self.analysisFrame.grid_columnconfigure((0, 1, 2), weight=1)
191
-
192
- columns = ["n1", "n2", "n3", "n4", "n5", "n6", "n7", "n8", "n9", "n10"]
193
-
194
- self.params_editor = ListEditor.ListEditor(self.analysisFrame, option_manager=self.option_manager,
195
- title="Parameters",
196
- columns=columns,
197
- parameter_name="sensitivity_parameters",
198
- parameter_remove_func=self.option_manager.remove_sensitivity_parameter,
199
- parameter_add_func=self.option_manager.add_sensitivity_param)
200
- self.params_editor.grid(row=0, column=0, padx=(10, 10), pady=(10, 0), sticky="nsew")
201
- self.params_editor.grid_columnconfigure(0, weight=1)
202
- self.params_editor.grid_rowconfigure(0, weight=1)
203
-
204
-
205
- self.positive_editor = ListEditor.ListEditor(self.analysisFrame, option_manager=self.option_manager,
206
- title="Positive Best Metrics",
207
- columns=columns,
208
- parameter_name="sensitivity_positiveBestMetrics",
209
- parameter_remove_func=self.option_manager.remove_sensitivity_positiveBestMetrics,
210
- parameter_add_func=self.option_manager.add_sensitivity_positiveBestMetrics)
211
- self.positive_editor.grid(row=0, column=1, padx=(10, 10), pady=(10, 0), sticky="nsew")
212
- self.positive_editor.grid_columnconfigure(0, weight=1)
213
- self.positive_editor.grid_rowconfigure(0, weight=1)
214
-
215
- self.negative_editor = ListEditor.ListEditor(self.analysisFrame, option_manager=self.option_manager,
216
- title = "Zero Best Metrics",
217
- columns=columns,
218
- parameter_name="sensitivity_negativeBestMetrics",
219
- parameter_remove_func=self.option_manager.remove_sensitivity_negativeBestMetrics,
220
- parameter_add_func=self.option_manager.add_sensitivity_negativeBestMetrics)
221
- self.negative_editor.grid(row=0, column=2, padx=(10, 10), pady=(10, 0), sticky="nsew")
222
- self.negative_editor.grid_columnconfigure(0, weight=1)
223
- self.negative_editor.grid_rowconfigure(0, weight=1)
224
- """