mg-pso-gui 0.2.111__py3-none-any.whl → 0.2.113__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.2.111
3
+ Version: 0.2.113
4
4
  Summary: GUI for MG-PSO
5
5
  Author: Robert Cordingly
6
6
  Author-email: <rcording@uw.ed>
@@ -1,12 +1,12 @@
1
1
  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
- mgpsogui/gui/HomePage.py,sha256=DnEeSx95pMDduygCCJ9ZYU2ZuvEQWM4vLF60aii5DSM,24388
4
+ mgpsogui/gui/HomePage.py,sha256=ec-W_dOssQHUmFtPWlpAZTJc8dIh_P2ERwFM331VW1A,24536
5
5
  mgpsogui/gui/OptionManager.py,sha256=t0aXOeBo48qQ-P8OykpP2v_3KJoaJtUPSkYtacjloCc,22844
6
6
  mgpsogui/gui/OptionManager_backup.py,sha256=TCWfPnHL2foN5id47jsi267lamRG6yGU6y_M29eOOJk,18530
7
7
  mgpsogui/gui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  mgpsogui/gui/General/NoticeWindow.py,sha256=HcTtaYKK4b7HognnoAHXiIHZWAXI80QfR8HM2dTLTV8,1866
9
- mgpsogui/gui/General/ParameterView.py,sha256=vLTmBEliBnHcwDUYCrnOWQvR887OyujVT8Lm-Y08qCQ,10071
9
+ mgpsogui/gui/General/ParameterView.py,sha256=H7BqT1UiEYpGp8d6ycdKaKtuqY5IkrlHOXiiN_pgcMM,10059
10
10
  mgpsogui/gui/General/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  mgpsogui/gui/PlatformTab/PlatformTab.py,sha256=8J2Aa3Zrh1q9x07zZ0Ap9PgwHjeSKOYyj6wlxx40udw,10985
12
12
  mgpsogui/gui/PlatformTab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -14,7 +14,7 @@ mgpsogui/gui/RunTab/OptimalParameterView.py,sha256=nliUEWA840cPBQt7wjiZ-L7uBOp_o
14
14
  mgpsogui/gui/RunTab/RunTab.py,sha256=_JWzDx5LT_uISw0Vnv-W2ypIeuKgoWqBnvFnvrLhNQA,5917
15
15
  mgpsogui/gui/RunTab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  mgpsogui/gui/SetupTab/BoundsEditorWindow.py,sha256=U64oaiDIOaimjbqKMz5rQNq2o1SrQtrRHDdTYQ9ux1s,2870
17
- mgpsogui/gui/SetupTab/BoundsList.py,sha256=bc1g2LLdmxkVk_Gnr-koxsxw8342IWFzpaDXu27pJD4,15231
17
+ mgpsogui/gui/SetupTab/BoundsList.py,sha256=cmt1YPIPxowaYjWyi8uKSfxNSdEJZHohKlRZ5PeGPfM,15523
18
18
  mgpsogui/gui/SetupTab/CustomFunctionEditorWindow.py,sha256=yx0dHSNa7fGy99Q6qFcI6j9r8p0DlV3iOBgyPMGd8pM,2884
19
19
  mgpsogui/gui/SetupTab/CustomFunctionMetrics.py,sha256=vOJpElbTgz043m6JYwe9xz_2MBHg985S6KdbJkJERW4,5923
20
20
  mgpsogui/gui/SetupTab/FunctionsList.py,sha256=6oFS8qKF3OCtxNi5aY5Rj_ovM9nv4-vh-oT_CbhVTj4,7043
@@ -25,7 +25,7 @@ mgpsogui/gui/SetupTab/OverrideParameterWindow.py,sha256=UpZDxTaFxee0BeviUYXeiIlM
25
25
  mgpsogui/gui/SetupTab/SamplingListView.py,sha256=DhZBAhDcrqZn1XioCs1gTe_v-8W10C0UfPm0fLAbeXM,5260
26
26
  mgpsogui/gui/SetupTab/SamplingNameListWindow.py,sha256=QzVu8mSpFGy3mUlLonk94k5thDNdJzw2d3qmEq89RAQ,2866
27
27
  mgpsogui/gui/SetupTab/SetupTab.py,sha256=3V8LYvg5ulTll1hhguB_XpSoOR-w72vHh_Z3gw3nCxc,2758
28
- mgpsogui/gui/SetupTab/StepView.py,sha256=Y5I9NaiTdaToqdCpn6KzwXUrx2udnHm2fgshGZsT-T8,10396
28
+ mgpsogui/gui/SetupTab/StepView.py,sha256=zogpFpGPRHrVZTADGGl6D5gHj0rfUmlTIJBxA50stbg,10399
29
29
  mgpsogui/gui/SetupTab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
30
  mgpsogui/gui/VisualizeTab/MatrixEditor.py,sha256=Gzyl2hRgjIfO5n0bCZZoXp_vOFvfsJPaGXDUMeRQg10,3171
31
31
  mgpsogui/gui/VisualizeTab/SideBar.py,sha256=jfGoyRdyeF2-YRvPhlr-5yd7VSHIYiskwf13HEoaYbA,23433
@@ -73,8 +73,8 @@ mgpsogui/util/recosu/utils/trace_writer.py,sha256=V9BJlOjCbNYGoXGEk3CF5wjifBxvar
73
73
  mgpsogui/util/recosu/utils/utils.py,sha256=QB8vftq3142ekG0ORjz0ZBHU5YknXbR0oTsrxrPAsF0,3951
74
74
  mgpsogui/util/recosu/utils/plot/__init__.py,sha256=h1KjM7_tNDv351pcwt8A6Ibb1jhwWyx5Gbu-zj-sI3Q,71
75
75
  mgpsogui/util/recosu/utils/plot/cost_steps.py,sha256=1Ce11AJyweWkmvjXPxEygzS-h8yVLmQEDLS53yjPLqQ,3779
76
- mg_pso_gui-0.2.111.dist-info/METADATA,sha256=kdxRGu-uNvqg5ZprBLyvQEAFw4zt9FGkPfcAhrp-Llg,9542
77
- mg_pso_gui-0.2.111.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
78
- mg_pso_gui-0.2.111.dist-info/entry_points.txt,sha256=jg82VOFjR1XDGrchs1wJSCqKYE4Ozv12aBcCSp--koA,117
79
- mg_pso_gui-0.2.111.dist-info/top_level.txt,sha256=y7JuS9xJN5YdxUsQ3PSVjN8MzQAnR146bP3ZN3PYWdE,9
80
- mg_pso_gui-0.2.111.dist-info/RECORD,,
76
+ mg_pso_gui-0.2.113.dist-info/METADATA,sha256=XiU52HFgb_m5bg9t6tKxdBiAymutWxWiKHSZTV5HzWo,9542
77
+ mg_pso_gui-0.2.113.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
78
+ mg_pso_gui-0.2.113.dist-info/entry_points.txt,sha256=jg82VOFjR1XDGrchs1wJSCqKYE4Ozv12aBcCSp--koA,117
79
+ mg_pso_gui-0.2.113.dist-info/top_level.txt,sha256=y7JuS9xJN5YdxUsQ3PSVjN8MzQAnR146bP3ZN3PYWdE,9
80
+ mg_pso_gui-0.2.113.dist-info/RECORD,,
@@ -57,7 +57,7 @@ class ParameterView(CTkScrollableFrame):
57
57
  CTkEntry(self.containerFrame, textvariable=self.key_values[index]["name"]).grid(row=row, column=0, columnspan=3, padx=(5, 5), pady=(5, 5), sticky="ew")
58
58
 
59
59
  if self.edit_mode and not required:
60
- type_menu = CTkOptionMenu(self.containerFrame, variable=self.key_values[index]["type"], values=["integer", "float", "date", "datetime", "boolean", "string"], width=20)
60
+ type_menu = CTkOptionMenu(self.containerFrame, variable=self.key_values[index]["type"], values=["integer", "float", "date", "boolean", "string"], width=20)
61
61
  type_menu.grid(row=row, column=3, columnspan=1, padx=(0, 0), pady=(5, 5), sticky="ew")
62
62
 
63
63
  dest_menu = CTkOptionMenu(self.containerFrame, variable=self.key_values[index]["destination"], values=["args", "kwargs", "conf", "options", "oh_strategy", "metainfo"], width=20)
mgpsogui/gui/HomePage.py CHANGED
@@ -114,7 +114,7 @@ class App(customtkinter.CTk):
114
114
  self.testing = False
115
115
 
116
116
  # configure window
117
- self.title("COSU Manager (v0.2.107)")
117
+ self.title("COSU Manager (v0.2.112)")
118
118
  self.geometry(f"{1920}x{1080}")
119
119
 
120
120
  # configure grid layout (4x4)
@@ -127,7 +127,7 @@ class App(customtkinter.CTk):
127
127
  self.sidebar_frame = customtkinter.CTkFrame(self, width=140, corner_radius=0)
128
128
  self.sidebar_frame.grid(row=0, column=0, sticky="nsew")
129
129
  self.sidebar_frame.grid_columnconfigure(4, weight=1)
130
- self.logo_label = customtkinter.CTkLabel(self.sidebar_frame, text="COSU Manager (v0.2.107)", font=customtkinter.CTkFont(size=20, weight="bold"))
130
+ self.logo_label = customtkinter.CTkLabel(self.sidebar_frame, text="COSU Manager (v0.2.112)", font=customtkinter.CTkFont(size=20, weight="bold"))
131
131
  self.logo_label.grid(row=0, column=0, padx=(20, 10), pady=header_padding_y)
132
132
  self.save_button = customtkinter.CTkButton(self.sidebar_frame, text="Save", width=60, command=self.save_project)
133
133
  self.save_button.grid(row=0, column=1, padx=header_padding_x, pady=header_padding_y)
@@ -401,6 +401,10 @@ class App(customtkinter.CTk):
401
401
 
402
402
  def run(self):
403
403
 
404
+ if self.train_process is not None and self.train_process.is_alive():
405
+ NW(title="Error", message="A process is already running!")
406
+ return 0
407
+
404
408
  data = self.option_manager.get_all_data()
405
409
  mode = self.option_manager.get_mode()
406
410
  data = data[mode]
@@ -90,12 +90,25 @@ class BoundsList(CTkFrame):
90
90
  CTkLabel(self.containerFrame, text="Type:").grid(row=row, column=0, padx=(5, 5), pady=(5, 5), sticky="nsew")
91
91
  CTkLabel(self.containerFrame, text="Name:").grid(row=row, column=1, padx=(5, 5), pady=(5, 5), sticky="nsew")
92
92
 
93
+
94
+ show_strategy = False
95
+
96
+
93
97
  if mode != "Sensitivity Analysis":
94
98
  CTkLabel(self.containerFrame, text="Bounds:").grid(row=row, column=2, columnspan=2, padx=(5, 5), pady=(5, 5), sticky="nsew")
95
99
 
96
100
  if mode == "Optimization":
101
+
102
+ for bound in bounds:
103
+ bound_type = bound["type"].get()
104
+ if bound_type == "list":
105
+ show_strategy = True
106
+ break
107
+
97
108
  CTkLabel(self.containerFrame, text="Default:").grid(row=row, column=4, padx=(5, 5), pady=(5, 5), sticky="nsew")
98
- CTkLabel(self.containerFrame, text="Strategy:").grid(row=row, column=5, padx=(5, 5), pady=(5, 5), sticky="nsew")
109
+
110
+ if show_strategy:
111
+ CTkLabel(self.containerFrame, text="Strategy:").grid(row=row, column=5, padx=(5, 5), pady=(5, 5), sticky="nsew")
99
112
  row += 1
100
113
 
101
114
  bounds = self.option_manager.get_steps()[self.step_index]["parameter_objects"]
@@ -153,15 +166,6 @@ class BoundsList(CTkFrame):
153
166
  self.validate_number(bounds_max.get(), cc, bounds_max)
154
167
  tt2 = ctt(bounds_max, delay=0.1, alpha=0.95, message="...")
155
168
 
156
- if (bound_type == "list" and mode == "Optimization"):
157
- def button_click_event(bound_index):
158
- BEW(title="Edit List Bound", step_index=self.step_index, bound_index=bound_index, option_manager=self.option_manager)
159
-
160
- open_window = lambda event=None, bound_index=index: (button_click_event(bound_index))
161
- expand_image = CTkImage(Image.open(os.path.join("./images", "expand.png")), size=(20, 20))
162
- button = CTkButton(self.containerFrame, width=30, text=None, image=expand_image, command=open_window)
163
- button.grid(row=row, column=6, padx=(5, 5), pady=(5, 5), sticky="new")
164
-
165
169
  if mode == "Sampling: Random" or mode == "Sampling: Halton":
166
170
 
167
171
  tt1 = ctt(bounds_min, delay=0.1, alpha=0.95, message="...")
@@ -181,8 +185,17 @@ class BoundsList(CTkFrame):
181
185
  default_value.grid(row=row, column=4, padx=(5, 5), pady=(5, 5), sticky="new")
182
186
  default_value.configure(textvariable=bound["default_value"])
183
187
 
184
- calibration_strat = CTkOptionMenu(self.containerFrame, dynamic_resizing=False, values=['none', 'mean', 'single'], variable=bound["calibration_strategy"])
185
- calibration_strat.grid(row=row, column=5, padx=(5, 5), pady=(5, 5), sticky="new")
188
+ if (bound_type == "list" and mode == "Optimization"):
189
+ calibration_strat = CTkOptionMenu(self.containerFrame, dynamic_resizing=False, values=['none', 'mean', 'single'], variable=bound["calibration_strategy"])
190
+ calibration_strat.grid(row=row, column=5, padx=(5, 5), pady=(5, 5), sticky="new")
191
+
192
+ def button_click_event(bound_index):
193
+ BEW(title="Edit List Bound", step_index=self.step_index, bound_index=bound_index, option_manager=self.option_manager)
194
+
195
+ open_window = lambda event=None, bound_index=index: (button_click_event(bound_index))
196
+ expand_image = CTkImage(Image.open(os.path.join("./images", "expand.png")), size=(20, 20))
197
+ button = CTkButton(self.containerFrame, width=30, text=None, image=expand_image, command=open_window)
198
+ button.grid(row=row, column=6, padx=(5, 5), pady=(5, 5), sticky="new")
186
199
 
187
200
  tt1 = ctt(bounds_min, delay=0.1, alpha=0.95, message="...")
188
201
  tt2 = ctt(bounds_max, delay=0.1, alpha=0.95, message="...")
@@ -126,7 +126,7 @@ class StepView(CTkScrollableFrame):
126
126
  self.output_method.grid(row=0, column=2, padx=(10, 10), pady=header_padding_y)
127
127
 
128
128
  row += 1
129
- elif (self.mode == "Optimization" and len(self.steps) > 10):
129
+ elif (self.mode == "Optimization" and len(self.steps) > 5):
130
130
 
131
131
  header_padding_x = (5, 5)
132
132
  header_padding_y = (10, 10)
@@ -144,14 +144,14 @@ class StepView(CTkScrollableFrame):
144
144
  if selected_group not in step_names:
145
145
  self.option_manager.get("optimization_selected_group").set(step_names[0])
146
146
 
147
- self.group_selector = CTkOptionMenu(self.file_selector_frame, values=files, width=50, variable=self.option_manager.get("optimization_selected_group"), command=self.refresh)
147
+ self.group_selector = CTkOptionMenu(self.file_selector_frame, values=step_names, width=50, variable=self.option_manager.get("optimization_selected_group"), command=self.refresh)
148
148
  self.group_selector.grid(row=0, column=1, padx=(10, 10), pady=header_padding_y)
149
149
 
150
150
  row += 1
151
151
 
152
152
 
153
153
  for step in self.steps:
154
- if (self.mode == "Optimization" and len(self.steps) > 10):
154
+ if (self.mode == "Optimization" and len(self.steps) > 5):
155
155
  if (step['name'].get() != self.option_manager.get("optimization_selected_group").get()):
156
156
  index += 1
157
157
  continue