mg-pso-gui 0.2.123__py3-none-any.whl → 0.2.125__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.123
3
+ Version: 0.2.125
4
4
  Summary: GUI for MG-PSO
5
5
  Author: Robert Cordingly
6
6
  Author-email: <rcording@uw.ed>
@@ -1,7 +1,7 @@
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=Lz0P7TgRwzvocxxNWr84d-LvMzdTs_VvwrNkxP28kuI,25155
4
+ mgpsogui/gui/HomePage.py,sha256=N_0FGZ8R6fiMBHiNWYNMM8h3QvudteaJ_Fq5GDxoPug,26053
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
@@ -14,10 +14,10 @@ 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=7Vic6AkBI2FStMlYyPH0-dNJJyqEckYJpwxknAqtp84,3403
17
- mgpsogui/gui/SetupTab/BoundsList.py,sha256=VEZDZj-Rr8_W6qYg2F3_xMdg41nDN-dYZ92iK3EjNLM,15661
17
+ mgpsogui/gui/SetupTab/BoundsList.py,sha256=7Xx8If4J19sfJSinI_95rCp2o4vuh_clwfAIcRA-3gM,15827
18
18
  mgpsogui/gui/SetupTab/CustomFunctionEditorWindow.py,sha256=lZ9a20YucwhCDiUN3eGA6WXQK7laToB7FP4Zev4Zxnc,3417
19
19
  mgpsogui/gui/SetupTab/CustomFunctionMetrics.py,sha256=vOJpElbTgz043m6JYwe9xz_2MBHg985S6KdbJkJERW4,5923
20
- mgpsogui/gui/SetupTab/FunctionsList.py,sha256=6oFS8qKF3OCtxNi5aY5Rj_ovM9nv4-vh-oT_CbhVTj4,7043
20
+ mgpsogui/gui/SetupTab/FunctionsList.py,sha256=wmYmppyB5y8QADe3X_FQ5mAYVDC0HAPQgqtkegNwmLA,7007
21
21
  mgpsogui/gui/SetupTab/ListEditor.py,sha256=nin7Pl8z7d_yfKoAxM-yVS34uhj-LnprJ2mNRSB7Z0A,3197
22
22
  mgpsogui/gui/SetupTab/ListParametersView.py,sha256=mkGaC5cXhEOy5oD0MbTyK9z7VGZp019oK2Y8Ay-n05Q,7460
23
23
  mgpsogui/gui/SetupTab/OverrideParameterMetrics.py,sha256=rBfaSitYDOajbHvyi2TfoXAHYlz1cCt028UVpIJ_Dc0,3369
@@ -73,8 +73,8 @@ mgpsogui/util/recosu/utils/trace_writer.py,sha256=V9BJlOjCbNYGoXGEk3CF5wjifBxvar
73
73
  mgpsogui/util/recosu/utils/utils.py,sha256=6MIoJb0nhIa4tNv7qhBfZi-AtL3L95CgJf6eAf12NQs,4140
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.123.dist-info/METADATA,sha256=WcRMx4qjUxJpmDC_0-9hhdKfuYVqMxq9kAZ_xbZqFRE,9542
77
- mg_pso_gui-0.2.123.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
78
- mg_pso_gui-0.2.123.dist-info/entry_points.txt,sha256=jg82VOFjR1XDGrchs1wJSCqKYE4Ozv12aBcCSp--koA,117
79
- mg_pso_gui-0.2.123.dist-info/top_level.txt,sha256=y7JuS9xJN5YdxUsQ3PSVjN8MzQAnR146bP3ZN3PYWdE,9
80
- mg_pso_gui-0.2.123.dist-info/RECORD,,
76
+ mg_pso_gui-0.2.125.dist-info/METADATA,sha256=1cfBNFu2xvNbvbzQQKz2JtmCFVC5Z49qKHPxNW0oWB4,9542
77
+ mg_pso_gui-0.2.125.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
78
+ mg_pso_gui-0.2.125.dist-info/entry_points.txt,sha256=jg82VOFjR1XDGrchs1wJSCqKYE4Ozv12aBcCSp--koA,117
79
+ mg_pso_gui-0.2.125.dist-info/top_level.txt,sha256=y7JuS9xJN5YdxUsQ3PSVjN8MzQAnR146bP3ZN3PYWdE,9
80
+ mg_pso_gui-0.2.125.dist-info/RECORD,,
mgpsogui/gui/HomePage.py CHANGED
@@ -113,6 +113,8 @@ class App(customtkinter.CTk):
113
113
  self.calibration_data = None
114
114
  self.testing = False
115
115
 
116
+ self.running_loop_ticks = 1
117
+
116
118
  # Configure window
117
119
  version = "v0.2.120"
118
120
  self.title("COSU Manager (" + version + ")")
@@ -241,7 +243,8 @@ class App(customtkinter.CTk):
241
243
  GraphGenerator.generate_graphs(self)
242
244
 
243
245
  def save_project(self):
244
- filename = asksaveasfilename(filetypes=[("JSON", "*.json")], initialfile="config", defaultextension="json", title="Save Project")
246
+ name = self.option_manager.get_project_data()['name']
247
+ filename = asksaveasfilename(filetypes=[("JSON", "*.json")], initialfile=name, defaultextension="json", title="Save Project")
245
248
 
246
249
  try:
247
250
  self.option_manager.set_path(filename)
@@ -260,6 +263,29 @@ class App(customtkinter.CTk):
260
263
  self.save_button.configure(text="Error!")
261
264
  print(e)
262
265
  self.after(3000, lambda: self.save_button.configure(text="Save"))
266
+
267
+ def auto_save_project(self):
268
+ data = self.option_manager.get_project_data()
269
+
270
+ if (data['path'] != "/tmp"):
271
+ filename = os.path.join(data['path'], data['name'] + ".json")
272
+
273
+ try:
274
+ self.option_manager.set_path(filename)
275
+ self.option_manager.save_project(filename)
276
+
277
+ folder = self.option_manager.get_project_folder()
278
+ if not os.path.exists(folder):
279
+ os.makedirs(folder)
280
+
281
+ if not os.path.exists(os.path.join(folder, "results")):
282
+ os.makedirs(os.path.join(folder, "results"))
283
+
284
+ self.save_button.configure(text="Saved!")
285
+ self.after(1000, lambda: self.save_button.configure(text="Save"))
286
+ except Exception as e:
287
+ self.save_button.configure(text="Error!")
288
+ print(e)
263
289
 
264
290
  def refresh_step_view(self, value):
265
291
  mode = self.option_manager.get_mode()
@@ -528,8 +554,11 @@ class App(customtkinter.CTk):
528
554
  active_tab = self.tabview.get()
529
555
  if (active_tab == "Results"):
530
556
  GraphGenerator.generate_graphs(self)
557
+ if (self.running_loop_ticks % 10 == 0):
558
+ self.auto_save_project()
531
559
  finally:
532
560
  self.after(1000, self.running_loop)
561
+ self.running_loop_ticks += 1
533
562
 
534
563
  def watch_loop(self):
535
564
  print("Watch loop running...")
@@ -116,7 +116,11 @@ class BoundsList(CTkFrame):
116
116
  tt2 = None
117
117
  tt3 = None
118
118
 
119
- tt = CTkOptionMenu(self.containerFrame, dynamic_resizing=False, values=['float', 'list', 'custom'], variable=bound["type"], command=self.refresh)
119
+ options_list = ['custom', 'float', 'list']
120
+ if self.optParams == [] or self.optParams is None:
121
+ options_list = ['custom', 'list']
122
+
123
+ tt = CTkOptionMenu(self.containerFrame, dynamic_resizing=False, values=options_list, variable=bound["type"], command=self.refresh)
120
124
  #command = lambda _, index=index, option=tt: (self.update_type(index, option))
121
125
  #tt.configure(command=command)
122
126
  #tt.set(bound["type"].get())
@@ -59,7 +59,7 @@ class FunctionsList(CTkFrame):
59
59
 
60
60
  row += 1
61
61
 
62
- columns = ["absdiff (not supported)",
62
+ columns = ["absdiff",
63
63
  "absdifflog (not supported)",
64
64
  "ave (not supported)",
65
65
  "bias (not supported)",
@@ -67,13 +67,14 @@ class FunctionsList(CTkFrame):
67
67
  "ioa (not supported)",
68
68
  "ioa2 (not supported)",
69
69
  "kge",
70
- "kge09 (not supported)",
71
- "mns (not supported)",
70
+ "kge09",
71
+ "mns",
72
72
  "mse (not supported)",
73
+ "rmse",
73
74
  "ns",
74
75
  "ns2log (not supported)",
75
76
  "nslog1p",
76
- "nslog2 (not supported)",
77
+ "nslog2",
77
78
  "pbias",
78
79
  "pmcc (not supported)",
79
80
  "rmse",