mg-pso-gui 0.1.43__tar.gz → 0.1.45__tar.gz

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.
Files changed (56) hide show
  1. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/PKG-INFO +1 -1
  2. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mg_pso_gui.egg-info/PKG-INFO +1 -1
  3. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/VisualizeTab/SideBar.py +8 -8
  4. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/util/GraphGenerator.py +65 -1
  5. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/setup.py +1 -1
  6. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mg_pso_gui.egg-info/SOURCES.txt +0 -0
  7. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mg_pso_gui.egg-info/dependency_links.txt +0 -0
  8. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mg_pso_gui.egg-info/entry_points.txt +0 -0
  9. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mg_pso_gui.egg-info/requires.txt +0 -0
  10. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mg_pso_gui.egg-info/top_level.txt +0 -0
  11. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/__init__.py +0 -0
  12. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/HomePage.py +0 -0
  13. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/OptionManager.py +0 -0
  14. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/PlatformTab/PlatformTab.py +0 -0
  15. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/PlatformTab/__init__.py +0 -0
  16. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/RunTab/RunTab.py +0 -0
  17. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/RunTab/__init__.py +0 -0
  18. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/SetupTab/BoundsEditorWindow.py +0 -0
  19. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/SetupTab/BoundsList.py +0 -0
  20. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/SetupTab/CalibrationParametersView.py +0 -0
  21. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/SetupTab/FunctionsList.py +0 -0
  22. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/SetupTab/ListParametersView.py +0 -0
  23. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/SetupTab/SetupTab.py +0 -0
  24. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/SetupTab/StaticParameterView.py +0 -0
  25. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/SetupTab/StepView.py +0 -0
  26. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/SetupTab/__init__.py +0 -0
  27. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/VisualizeTab/VisualizeTab.py +0 -0
  28. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/VisualizeTab/__init__.py +0 -0
  29. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/__init__.py +0 -0
  30. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/images/IGOW 4 Logo.png +0 -0
  31. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/images/collapse.png +0 -0
  32. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/images/down.png +0 -0
  33. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/images/expand.png +0 -0
  34. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/images/play.png +0 -0
  35. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/images/refresh.png +0 -0
  36. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/images/refresh_hd.png +0 -0
  37. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/images/stop.png +0 -0
  38. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/images/test.png +0 -0
  39. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/images/trash.png +0 -0
  40. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/gui/images/up.png +0 -0
  41. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/mgpsogui.py +0 -0
  42. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/start.yaml +0 -0
  43. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/util/CTkToolTip/__init__.py +0 -0
  44. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/util/CTkToolTip/ctk_tooltip.py +0 -0
  45. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/util/PSORunner.py +0 -0
  46. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/util/__init__.py +0 -0
  47. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/util/recosu/__init__.py +0 -0
  48. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/util/recosu/pso/__init__.py +0 -0
  49. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/util/recosu/pso/csip_access.py +0 -0
  50. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/util/recosu/pso/pso.py +0 -0
  51. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/util/recosu/utils/__init__.py +0 -0
  52. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/util/recosu/utils/plot/__init__.py +0 -0
  53. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/util/recosu/utils/plot/cost_steps.py +0 -0
  54. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/util/recosu/utils/trace_writer.py +0 -0
  55. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/mgpsogui/util/recosu/utils/utils.py +0 -0
  56. {mg-pso-gui-0.1.43 → mg-pso-gui-0.1.45}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mg-pso-gui
3
- Version: 0.1.43
3
+ Version: 0.1.45
4
4
  Summary: GUI for MG-PSO
5
5
  Author: Robert Cordingly
6
6
  Author-email: <rcording@uw.ed>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mg-pso-gui
3
- Version: 0.1.43
3
+ Version: 0.1.45
4
4
  Summary: GUI for MG-PSO
5
5
  Author: Robert Cordingly
6
6
  Author-email: <rcording@uw.ed>
@@ -78,10 +78,10 @@ class SideBar(CTkScrollableFrame):
78
78
  self.home_page.selected_csv.set(name_list[0])
79
79
 
80
80
  file_label = CTkLabel(self.containerFrame, text="CSV File:")
81
- file_label.grid(row=0, column=0, padx=(20, 20), pady=(20, 20), sticky="w")
81
+ file_label.grid(row=0, column=0, padx=(20, 20), pady=(20, 5), sticky="w")
82
82
 
83
83
  self.home_page.csv_file_selector = CTkOptionMenu(self.containerFrame, values=name_list, variable=self.home_page.selected_csv, command=self.home_page.update_graph)
84
- self.home_page.csv_file_selector.grid(row=1, column=0, padx=(20, 20), pady=(20, 20), sticky="ew")
84
+ self.home_page.csv_file_selector.grid(row=1, column=0, padx=(20, 20), pady=(5, 5), sticky="ew")
85
85
 
86
86
  selected_file = self.home_page.selected_csv.get()
87
87
  if (selected_file in path_map and selected_file != self.home_page.open_file):
@@ -93,28 +93,28 @@ class SideBar(CTkScrollableFrame):
93
93
  columns = self.home_page.csv_data.columns
94
94
 
95
95
  x_axis_label = CTkLabel(self.containerFrame, text="X Axis:")
96
- x_axis_label.grid(row=2, column=0, padx=(20, 20), pady=(20, 20), sticky="w")
96
+ x_axis_label.grid(row=2, column=0, padx=(20, 20), pady=(40, 5), sticky="w")
97
97
 
98
98
  self.home_page.csv_x_selector = CTkOptionMenu(self.containerFrame, values=columns, variable=self.home_page.selected_x, command=self.home_page.update_graph)
99
- self.home_page.csv_x_selector.grid(row=3, column=0, padx=(20, 20), pady=(20, 20), sticky="ew")
99
+ self.home_page.csv_x_selector.grid(row=3, column=0, padx=(20, 20), pady=(5, 5), sticky="ew")
100
100
 
101
101
  if (self.home_page.csv_x_selector.get() not in columns):
102
102
  self.home_page.csv_x_selector.set(columns[1])
103
103
 
104
104
  y1_axis_label = CTkLabel(self.containerFrame, text="Y Axis:")
105
- y1_axis_label.grid(row=4, column=0, padx=(20, 20), pady=(20, 20), sticky="w")
105
+ y1_axis_label.grid(row=4, column=0, padx=(20, 20), pady=(20, 5), sticky="w")
106
106
 
107
107
  self.home_page.csv_y1_selector = CTkOptionMenu(self.containerFrame, values=columns, variable=self.home_page.selected_y1, command=self.home_page.update_graph)
108
- self.home_page.csv_y1_selector.grid(row=5, column=0, padx=(20, 20), pady=(20, 20), sticky="ew")
108
+ self.home_page.csv_y1_selector.grid(row=5, column=0, padx=(20, 20), pady=(5, 5), sticky="ew")
109
109
 
110
110
  if (self.home_page.csv_y1_selector.get() not in columns):
111
111
  self.home_page.csv_y1_selector.set(columns[2])
112
112
 
113
113
  y2_axis_label = CTkLabel(self.containerFrame, text="Secondary Y Axis:")
114
- y2_axis_label.grid(row=6, column=0, padx=(20, 20), pady=(20, 20), sticky="w")
114
+ y2_axis_label.grid(row=6, column=0, padx=(20, 20), pady=(20, 5), sticky="w")
115
115
 
116
116
  self.home_page.csv_y2_selector = CTkOptionMenu(self.containerFrame, values=columns, variable=self.home_page.selected_y2, command=self.home_page.update_graph)
117
- self.home_page.csv_y2_selector.grid(row=7, column=0, padx=(20, 20), pady=(20, 20), sticky="ew")
117
+ self.home_page.csv_y2_selector.grid(row=7, column=0, padx=(20, 20), pady=(5, 5), sticky="ew")
118
118
 
119
119
  if (self.home_page.csv_y2_selector.get() not in columns):
120
120
  self.home_page.csv_y2_selector.set(columns[3])
@@ -26,6 +26,9 @@ def generate_graphs(HomePage):
26
26
  elif (selected_graph == "Calibrated Parameters"):
27
27
  HomePage.selected_graph_name = "calibrated_params_by_round"
28
28
  calibrated_params_by_round(HomePage.running_config['steps'], HomePage.calibration_data, HomePage.option_manager)
29
+ elif (selected_graph == "Custom CSV"):
30
+ HomePage.selected_graph_name = "custom_csv"
31
+ custom_csv(HomePage, HomePage.option_manager)
29
32
 
30
33
  image_path = os.path.join(folder, HomePage.selected_graph_name + ".png")
31
34
 
@@ -272,4 +275,65 @@ def calibrated_params_by_round(config, list_of_objs, option_manager):
272
275
  with open(os.path.join(folder, "calibrated_params_by_round.html"), "w") as f:
273
276
  f.write(html)
274
277
 
275
- return fig
278
+ return fig
279
+
280
+ def custom_csv(homepage, option_manager):
281
+ fig = go.Figure()
282
+
283
+ data = homepage.csv_data
284
+
285
+ x = homepage.csv_x_selector.get()
286
+ val = homepage.csv_y1_selector.get()
287
+ val2 = homepage.csv_y2_selector.get()
288
+
289
+ xx = None
290
+ if x == "time":
291
+ xx = pd.to_datetime(data["time"], format='%Y-%m-%d', errors='coerce').iloc[2:]
292
+ else:
293
+ xx = pd.to_numeric(data[x], errors="coerce").iloc[2:]
294
+
295
+ yy = pd.to_numeric(data[val], errors="coerce").iloc[2:]
296
+ yy2 = pd.to_numeric(data[val2], errors="coerce").iloc[2:]
297
+
298
+ fig.add_trace(go.Scatter(x=xx, y=yy, name=val))
299
+ fig.add_trace(go.Scatter(x=xx, y=yy2, name=val2, yaxis='y2'))
300
+
301
+ fig.update_layout(
302
+ title="",
303
+ xaxis_title=x,
304
+ yaxis_title=val,
305
+ font=dict(color='white'),
306
+ paper_bgcolor='rgba(42, 42, 42, 0)',
307
+ plot_bgcolor='rgb(62, 62, 62)',
308
+ xaxis=dict(
309
+ gridcolor='rgb(72, 72, 72)',
310
+ gridwidth=1
311
+ ),
312
+ yaxis=dict(
313
+ title=val,
314
+ autorange=True,
315
+ gridcolor='rgb(72, 72, 72)',
316
+ gridwidth=0.1
317
+ ),
318
+ yaxis2=dict(
319
+ title=val2,
320
+ overlaying='y',
321
+ side='right'
322
+ )
323
+ )
324
+
325
+ info = option_manager.get_project_data()
326
+ folder = os.path.join(info['path'], info['name'])
327
+
328
+ if not os.path.exists(folder):
329
+ os.makedirs(folder)
330
+
331
+ fig.write_image(os.path.join(folder, "custom_csv.png"), width=1280, height=720)
332
+ fig.write_html(os.path.join(folder, "custom_csv.html"), include_plotlyjs='cdn', auto_open=False)
333
+ with open(os.path.join(folder, "custom_csv.html"), "r") as f:
334
+ html = f.read()
335
+ html = html.replace("<body>", "<body bgcolor='#2a2a2a'>")
336
+ with open(os.path.join(folder, "custom_csv.html"), "w") as f:
337
+ f.write(html)
338
+
339
+ return fig
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
  import codecs
3
3
  import os
4
4
 
5
- VERSION = '0.1.43'
5
+ VERSION = '0.1.45'
6
6
  DESCRIPTION = 'GUI for MG-PSO'
7
7
  LONG_DESCRIPTION = open('../README.md').read()
8
8
 
File without changes