mg-pso-gui 0.2.63__tar.gz → 0.2.64__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 (80) hide show
  1. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/PKG-INFO +1 -1
  2. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mg_pso_gui.egg-info/PKG-INFO +1 -1
  3. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/SetupTab/BoundsList.py +44 -23
  4. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/SetupTab/StepView.py +1 -1
  5. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/PSORunner.py +1 -2
  6. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/setup.py +1 -1
  7. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mg_pso_gui.egg-info/SOURCES.txt +0 -0
  8. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mg_pso_gui.egg-info/dependency_links.txt +0 -0
  9. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mg_pso_gui.egg-info/entry_points.txt +0 -0
  10. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mg_pso_gui.egg-info/requires.txt +0 -0
  11. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mg_pso_gui.egg-info/top_level.txt +0 -0
  12. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/__init__.py +0 -0
  13. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/General/ParameterView.py +0 -0
  14. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/General/__init__.py +0 -0
  15. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/HomePage.py +0 -0
  16. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/OptionManager.py +0 -0
  17. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/OptionManager_backup.py +0 -0
  18. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/PlatformTab/PlatformTab.py +0 -0
  19. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/PlatformTab/__init__.py +0 -0
  20. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/RunTab/OptimalParameterView.py +0 -0
  21. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/RunTab/RunTab.py +0 -0
  22. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/RunTab/__init__.py +0 -0
  23. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/SetupTab/BoundsEditorWindow.py +0 -0
  24. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/SetupTab/CustomFunctionEditorWindow.py +0 -0
  25. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/SetupTab/CustomFunctionMetrics.py +0 -0
  26. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/SetupTab/FunctionsList.py +0 -0
  27. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/SetupTab/ListEditor.py +0 -0
  28. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/SetupTab/ListParametersView.py +0 -0
  29. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/SetupTab/OverrideParameterMetrics.py +0 -0
  30. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/SetupTab/OverrideParameterWindow.py +0 -0
  31. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/SetupTab/SetupTab.py +0 -0
  32. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/SetupTab/__init__.py +0 -0
  33. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/VisualizeTab/MatrixEditor.py +0 -0
  34. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/VisualizeTab/SideBar.py +0 -0
  35. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/VisualizeTab/VisualizeTab.py +0 -0
  36. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/VisualizeTab/__init__.py +0 -0
  37. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/__init__.py +0 -0
  38. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/defaults/__init__.py +0 -0
  39. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/defaults/optimization.json +0 -0
  40. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/defaults/sampling.json +0 -0
  41. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/defaults/sensitivity.json +0 -0
  42. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/images/collapse.png +0 -0
  43. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/images/down.png +0 -0
  44. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/images/expand.png +0 -0
  45. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/images/play.png +0 -0
  46. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/images/plus.png +0 -0
  47. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/images/refresh.png +0 -0
  48. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/images/refresh_hd.png +0 -0
  49. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/images/stop.png +0 -0
  50. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/images/test.png +0 -0
  51. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/images/trash.png +0 -0
  52. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/gui/images/up.png +0 -0
  53. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/mgpsogui.py +0 -0
  54. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/start.yaml +0 -0
  55. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/CTkToolTip/__init__.py +0 -0
  56. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/CTkToolTip/ctk_tooltip.py +0 -0
  57. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/GraphGenerator.py +0 -0
  58. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/__init__.py +0 -0
  59. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/debug.py +0 -0
  60. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/helpers.py +0 -0
  61. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/__init__.py +0 -0
  62. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/pso/__init__.py +0 -0
  63. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/pso/csip_access.py +0 -0
  64. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/pso/pso.py +0 -0
  65. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/sampling/__init__.py +0 -0
  66. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/sampling/halton/__init__.py +0 -0
  67. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/sampling/halton/halton.py +0 -0
  68. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/sampling/halton/prime.py +0 -0
  69. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/sampling/random/__init__.py +0 -0
  70. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/sampling/random/random_sampler.py +0 -0
  71. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/sampling/sample_trace_writer.py +0 -0
  72. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/sampling/sampler_task.py +0 -0
  73. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/sampling/sampling.py +0 -0
  74. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/utils/__init__.py +0 -0
  75. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/utils/plot/__init__.py +0 -0
  76. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/utils/plot/cost_steps.py +0 -0
  77. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/utils/trace_writer.py +0 -0
  78. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/recosu/utils/utils.py +0 -0
  79. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/mgpsogui/util/sampler_test_driver.py +0 -0
  80. {mg_pso_gui-0.2.63 → mg_pso_gui-0.2.64}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mg-pso-gui
3
- Version: 0.2.63
3
+ Version: 0.2.64
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.2.63
3
+ Version: 0.2.64
4
4
  Summary: GUI for MG-PSO
5
5
  Author: Robert Cordingly
6
6
  Author-email: <rcording@uw.ed>
@@ -13,6 +13,7 @@ import json
13
13
  import PIL
14
14
  from PIL import Image
15
15
  import os
16
+ import pandas as pd
16
17
 
17
18
  class BoundsList(CTkFrame):
18
19
  def __init__(self, *args,
@@ -21,20 +22,8 @@ class BoundsList(CTkFrame):
21
22
  **kwargs):
22
23
  super().__init__(*args, **kwargs)
23
24
 
24
- self.optParams = []
25
25
  self.option_manager = option_manager
26
26
 
27
- details = self.option_manager.serialize_data(self.option_manager.get("service_request_data"))
28
- self.paramMap = {}
29
- if "parameter" in details:
30
- for param in details["parameter"]:
31
- self.paramMap[param["name"]] = param
32
- if "min" in param:
33
- self.optParams.append(param["name"])
34
-
35
- self.optParams.sort()
36
-
37
-
38
27
  self.edit_mode = False
39
28
  self.tooltip_list = []
40
29
 
@@ -64,6 +53,30 @@ class BoundsList(CTkFrame):
64
53
  self.tooltip_list = []
65
54
 
66
55
  mode = self.option_manager.get_mode()
56
+
57
+ # Load bound parameters depending on the mode
58
+ self.optParams = []
59
+ if mode == "Optimization" or mode == "Sampling: Halton" or mode == "Sampling: Random":
60
+ details = self.option_manager.serialize_data(self.option_manager.get("service_request_data"))
61
+ self.paramMap = {}
62
+ if "parameter" in details:
63
+ for param in details["parameter"]:
64
+ self.paramMap[param["name"]] = param
65
+ if "min" in param:
66
+ self.optParams.append(param["name"])
67
+
68
+ self.optParams.sort()
69
+ elif mode == "Sensitivity Analysis":
70
+ file_path = self.option_manager.get("sensitivity_analysis_path").get()
71
+ if os.path.exists(file_path):
72
+ try:
73
+ df = pd.read_csv(file_path)
74
+ self.optParams = df.columns.tolist()
75
+ except Exception as e:
76
+ print(f"Error loading CSV file: {e}")
77
+ else:
78
+ print(f"File does not exist: {file_path}")
79
+
67
80
 
68
81
  self.containerFrame = CTkFrame(self, fg_color="transparent")
69
82
  self.containerFrame.grid(row=0, column=0, padx=(5, 5), pady=(5, 5), sticky="nsew")
@@ -137,26 +150,34 @@ class BoundsList(CTkFrame):
137
150
  self.validate_number(bounds_max.get(), cc, bounds_max)
138
151
  tt2 = ctt(bounds_max, delay=0.1, alpha=0.95, message="...")
139
152
 
140
- if mode == "Sampling: Random" or mode == "Sampling: Halton":
141
- row += 1
142
- index += 1
143
- continue
144
-
145
- default_value = CTkEntry(self.containerFrame)
146
- default_value.grid(row=row, column=4, padx=(5, 5), pady=(5, 5), sticky="new")
147
- default_value.configure(textvariable=bound["default_value"])
148
-
149
-
150
153
  if (bound_type == "list"):
151
154
  def button_click_event(bound_index):
152
155
  BEW(title="Edit List Bound", step_index=self.step_index, bound_index=bound_index, option_manager=self.option_manager)
153
- #print("Number:", dialog.get_input())
154
156
 
155
157
  open_window = lambda event=None, bound_index=index: (button_click_event(bound_index))
156
158
  expand_image = CTkImage(Image.open(os.path.join("./images", "expand.png")), size=(20, 20))
157
159
  button = CTkButton(self.containerFrame, width=30, text=None, image=expand_image, command=open_window)
158
160
  button.grid(row=row, column=6, padx=(5, 5), pady=(5, 5), sticky="new")
159
161
 
162
+ if mode == "Sampling: Random" or mode == "Sampling: Halton":
163
+
164
+ tt1 = ctt(bounds_min, delay=0.1, alpha=0.95, message="...")
165
+ tt2 = ctt(bounds_max, delay=0.1, alpha=0.95, message="...")
166
+ if cc is not None:
167
+ tt3 = ctt(cc, delay=0.1, alpha=0.95, message="...")
168
+
169
+ self.tooltip_list.append([tt3, tt1, tt2])
170
+
171
+ self.update_tooltips(index)
172
+
173
+ row += 1
174
+ index += 1
175
+ continue
176
+
177
+ default_value = CTkEntry(self.containerFrame)
178
+ default_value.grid(row=row, column=4, padx=(5, 5), pady=(5, 5), sticky="new")
179
+ default_value.configure(textvariable=bound["default_value"])
180
+
160
181
  calibration_strat = CTkOptionMenu(self.containerFrame, dynamic_resizing=False, values=['none', 'mean', 'single'], variable=bound["calibration_strategy"])
161
182
  calibration_strat.grid(row=row, column=5, padx=(5, 5), pady=(5, 5), sticky="new")
162
183
 
@@ -105,7 +105,7 @@ class StepView(CTkScrollableFrame):
105
105
  self.logo_label = CTkLabel(self.file_selector_frame, text="Select File:")
106
106
  self.logo_label.grid(row=0, column=0, padx=(10, 10), pady=header_padding_y)
107
107
 
108
- self.file_selector = CTkOptionMenu(self.file_selector_frame, values=files, width=50, variable=self.option_manager.get("sensitivity_analysis_path"))
108
+ self.file_selector = CTkOptionMenu(self.file_selector_frame, values=files, width=50, variable=self.option_manager.get("sensitivity_analysis_path"), command=self.refresh)
109
109
  self.file_selector.grid(row=0, column=1, padx=(10, 10), pady=header_padding_y)
110
110
 
111
111
  row += 1
@@ -237,8 +237,7 @@ def run_sampling(data, mode, folder, results_queue):
237
237
  if os.path.exists(trace_file):
238
238
  shutil.copyfile(trace_file, trace_file + ".bak")
239
239
 
240
-
241
- config['step_trace'] = os.path.join(folder, 'pso_step_trace.json') # Do we need this?
240
+ #config['step_trace'] = os.path.join(folder, 'pso_step_trace.json') # Do we need this?
242
241
 
243
242
  print("Parsing Parameters...\n", flush=True)
244
243
  print("steps: ", flush=True)
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
  import codecs
3
3
  import os
4
4
 
5
- VERSION = '0.2.63'
5
+ VERSION = '0.2.64'
6
6
  DESCRIPTION = 'GUI for MG-PSO'
7
7
  LONG_DESCRIPTION = open('../README.md').read()
8
8
 
File without changes