mg-pso-gui 0.1.81__tar.gz → 0.1.84__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 (57) hide show
  1. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/PKG-INFO +1 -1
  2. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mg_pso_gui.egg-info/PKG-INFO +1 -1
  3. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/HomePage.py +1 -1
  4. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/OptionManager.py +6 -1
  5. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/SetupTab/StepView.py +18 -6
  6. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/VisualizeTab/SideBar.py +7 -0
  7. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/util/PSORunner.py +3 -44
  8. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/util/recosu/pso/pso.py +2 -2
  9. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/setup.py +1 -1
  10. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mg_pso_gui.egg-info/SOURCES.txt +0 -0
  11. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mg_pso_gui.egg-info/dependency_links.txt +0 -0
  12. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mg_pso_gui.egg-info/entry_points.txt +0 -0
  13. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mg_pso_gui.egg-info/requires.txt +0 -0
  14. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mg_pso_gui.egg-info/top_level.txt +0 -0
  15. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/__init__.py +0 -0
  16. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/PlatformTab/PlatformTab.py +0 -0
  17. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/PlatformTab/__init__.py +0 -0
  18. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/RunTab/RunTab.py +0 -0
  19. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/RunTab/__init__.py +0 -0
  20. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/SetupTab/BoundsEditorWindow.py +0 -0
  21. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/SetupTab/BoundsList.py +0 -0
  22. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/SetupTab/CalibrationParametersView.py +0 -0
  23. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/SetupTab/FunctionsList.py +0 -0
  24. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/SetupTab/ListParametersView.py +0 -0
  25. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/SetupTab/OptimalParameterView.py +0 -0
  26. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/SetupTab/SetupTab.py +0 -0
  27. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/SetupTab/StaticParameterView.py +0 -0
  28. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/SetupTab/__init__.py +0 -0
  29. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/VisualizeTab/VisualizeTab.py +0 -0
  30. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/VisualizeTab/__init__.py +0 -0
  31. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/__init__.py +0 -0
  32. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/images/IGOW 4 Logo.png +0 -0
  33. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/images/collapse.png +0 -0
  34. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/images/down.png +0 -0
  35. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/images/expand.png +0 -0
  36. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/images/play.png +0 -0
  37. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/images/refresh.png +0 -0
  38. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/images/refresh_hd.png +0 -0
  39. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/images/stop.png +0 -0
  40. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/images/test.png +0 -0
  41. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/images/trash.png +0 -0
  42. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/gui/images/up.png +0 -0
  43. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/mgpsogui.py +0 -0
  44. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/start.yaml +0 -0
  45. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/util/CTkToolTip/__init__.py +0 -0
  46. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/util/CTkToolTip/ctk_tooltip.py +0 -0
  47. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/util/GraphGenerator.py +0 -0
  48. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/util/__init__.py +0 -0
  49. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/util/recosu/__init__.py +0 -0
  50. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/util/recosu/pso/__init__.py +0 -0
  51. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/util/recosu/pso/csip_access.py +0 -0
  52. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/util/recosu/utils/__init__.py +0 -0
  53. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/util/recosu/utils/plot/__init__.py +0 -0
  54. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/util/recosu/utils/plot/cost_steps.py +0 -0
  55. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/util/recosu/utils/trace_writer.py +0 -0
  56. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/mgpsogui/util/recosu/utils/utils.py +0 -0
  57. {mg-pso-gui-0.1.81 → mg-pso-gui-0.1.84}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mg-pso-gui
3
- Version: 0.1.81
3
+ Version: 0.1.84
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.81
3
+ Version: 0.1.84
4
4
  Summary: GUI for MG-PSO
5
5
  Author: Robert Cordingly
6
6
  Author-email: <rcording@uw.ed>
@@ -174,7 +174,7 @@ class App(customtkinter.CTk):
174
174
  self.footer_progress_bar.grid(row=0, column=4, padx=(50, 100), pady=header_padding_y, sticky="ew")
175
175
  self.footer_progress_bar.set(0)
176
176
 
177
- self.algorithm_optionmenu = customtkinter.CTkOptionMenu(self.footer_frame, values=["PSO", "Halton"], width=50)
177
+ self.algorithm_optionmenu = customtkinter.CTkOptionMenu(self.footer_frame, textvariable=self.option_manager.get_arguments()['mode'], values=["PSO", "Halton"], width=50)
178
178
  self.algorithm_optionmenu.grid(row=0, column=6, padx=header_padding_x, pady=header_padding_y)
179
179
  self.algorithm_optionmenu.set("PSO")
180
180
 
@@ -11,6 +11,7 @@ class OptionManager():
11
11
  self.project_data = {"name": "", "path": ""}
12
12
  self.arguments = {"param": [],
13
13
  "url": sv(),
14
+ "mode": sv(),
14
15
  "files": {},
15
16
  "calibration_parameters": []}
16
17
  self.steps = []
@@ -19,6 +20,7 @@ class OptionManager():
19
20
  def clear(self):
20
21
  self.arguments['param'].clear()
21
22
  self.arguments['url'].set("")
23
+ self.arguments['mode'].set("PSO")
22
24
  self.arguments['files'] = {}
23
25
  self.arguments['calibration_parameters'].clear()
24
26
  self.steps = []
@@ -29,6 +31,9 @@ class OptionManager():
29
31
  if ("url" in arguments):
30
32
  self.arguments["url"].set(arguments["url"])
31
33
 
34
+ if ("mode" in arguments):
35
+ self.arguments["mode"].set(arguments["mode"])
36
+
32
37
  if ("files" in arguments):
33
38
  for file in arguments["files"]:
34
39
  name = file["name"]
@@ -240,7 +245,7 @@ class OptionManager():
240
245
  result['service_parameters'] = {}
241
246
  result['project_data'] = self.project_data
242
247
  for key, value in self.arguments.items():
243
- if key == 'url':
248
+ if key == 'url' or key == 'mode':
244
249
  result['arguments'][key] = value.get()
245
250
  elif key == 'files':
246
251
  result['arguments'][key] = {}
@@ -64,8 +64,16 @@ class StepView(CTkScrollableFrame):
64
64
  self.containerFrame.grid_columnconfigure((0, 1), weight=1)
65
65
 
66
66
  self.steps = self.option_manager.get_steps()
67
+ self.mode = self.option_manager.get_arguments()['mode'].get()
68
+
69
+ tempSteps = self.steps
70
+ if self.mode == "Halton":
71
+ # Collapse all steps
72
+ tempSteps = []
73
+ if len(self.steps) > 0:
74
+ tempSteps.append(self.steps[0])
67
75
 
68
- for step in self.steps:
76
+ for step in tempSteps:
69
77
 
70
78
  up_image = CTkImage(Image.open(os.path.join("./images", "up.png")), size=(20, 20))
71
79
  down_image = CTkImage(Image.open(os.path.join("./images", "down.png")), size=(20, 20))
@@ -89,9 +97,11 @@ class StepView(CTkScrollableFrame):
89
97
  CTkEntry(self.containerFrame, textvariable=step['name'], width=500).grid(row=row, column=0, padx=(20, 20), pady=(20, 20), sticky="nsw")
90
98
  #CTkLabel(self.containerFrame, textvariable=step['message']).grid(row=row, column=1, padx=(20, 20), pady=(20, 20), sticky="nsew")
91
99
  CTkButton(button_container, width=30, text=None, image=expand_image if not step['open'] else collapse_image, command=expand_func).grid(row=0, column=0, padx=(10, 10), pady=(10, 10), sticky="nsew")
92
- CTkButton(button_container, width=30, text=None, image=up_image, state="disabled" if index==0 else "normal", fg_color="gray" if index==0 else None, command=up_func).grid(row=0, column=1, padx=(10, 10), pady=(10, 10), sticky="nsew")
93
- CTkButton(button_container, width=30, text=None, image=down_image, state="disabled" if index==(len(self.steps)-1) else "normal", fg_color="gray" if index==(len(self.steps)-1) else None, command=down_func).grid(row=0, column=2, padx=(10, 10), pady=(10, 10), sticky="nsew")
94
- CTkButton(button_container, width=30, text=None, image=trash_image, command=remove_func).grid(row=0, column=3, padx=(10, 10), pady=(10, 10), sticky="nsew")
100
+
101
+ if (self.mode == "PSO"):
102
+ CTkButton(button_container, width=30, text=None, image=up_image, state="disabled" if index==0 else "normal", fg_color="gray" if index==0 else None, command=up_func).grid(row=0, column=1, padx=(10, 10), pady=(10, 10), sticky="nsew")
103
+ CTkButton(button_container, width=30, text=None, image=down_image, state="disabled" if index==(len(self.steps)-1) else "normal", fg_color="gray" if index==(len(self.steps)-1) else None, command=down_func).grid(row=0, column=2, padx=(10, 10), pady=(10, 10), sticky="nsew")
104
+ CTkButton(button_container, width=30, text=None, image=trash_image, command=remove_func).grid(row=0, column=3, padx=(10, 10), pady=(10, 10), sticky="nsew")
95
105
 
96
106
  row += 1
97
107
 
@@ -114,5 +124,7 @@ class StepView(CTkScrollableFrame):
114
124
  index += 1
115
125
 
116
126
  # Create an "Add step button that is centered
117
- CTkButton(self.containerFrame, text="Add Group", command=self.create_new_step).grid(
118
- row=row, columnspan=2, column=0, padx=(10, 10), pady=(10, 10), sticky="ew")
127
+
128
+ if (self.mode == "PSO" or len(self.steps) == 0):
129
+ CTkButton(self.containerFrame, text="Add Group", command=self.create_new_step).grid(
130
+ row=row, columnspan=2, column=0, padx=(10, 10), pady=(10, 10), sticky="ew")
@@ -210,6 +210,13 @@ class SideBar(CTkScrollableFrame):
210
210
  with open(file_path, "r") as file:
211
211
  lines = file.readlines()
212
212
 
213
+ if (not lines[0].startswith("@")):
214
+ return {
215
+ "file_attributes": {},
216
+ "data_attributes": {},
217
+ "data": pd.read_csv(file_path)
218
+ }
219
+
213
220
  for line in lines:
214
221
  if (line.startswith("@H,")):
215
222
  mode = "data_metadata"
@@ -87,8 +87,8 @@ def run_process(stdout_queue, stderr_queue, results_queue, cosu_queue, data, fol
87
87
  'async_call': True if calibration_map['async_call'] == "True" else False,
88
88
  'http_conn_timeout': int(calibration_map['conn_timeout']),
89
89
  'http_read_timeout': int(calibration_map['read_timeout']),
90
- 'particles_fail': int(calibration_map['particles_fail']),
91
- 'step_trace': os.path.join(folder, 'trace.json')
90
+ 'particles_fail': int(calibration_map['particles_fail'])
91
+ #,'step_trace': os.path.join(folder, 'trace.json')
92
92
  },
93
93
  result_queue = cosu_queue
94
94
  )
@@ -103,45 +103,4 @@ def run_process(stdout_queue, stderr_queue, results_queue, cosu_queue, data, fol
103
103
  stderr_thread.join()
104
104
 
105
105
  sys.stdout = old_stdout
106
- sys.stderr = old_stderr
107
-
108
- """
109
- def get_results():
110
- request: Client = Client()
111
- for name, value in parameters.items():
112
- # if parameter name has a / in it assume that is a file based parameter and therefore value needs to be an array
113
- if "/" in name and type(value) is not list:
114
- request.add_data(name, [value])
115
- else:
116
- request.add_data(name, value)
117
-
118
- conf = {
119
- 'service_timeout': 60.0 # (sec)
120
- }
121
- files: List[str] = [] #optional list of filenames
122
-
123
- #Synchronous Call
124
- result: Client = request.execute(CSIP_ENDPOINT, files=files, sync=True, conf=conf)
125
-
126
- #Asynchronous Call
127
- tsamp: float = 0
128
- def callback(c: Client, progress: str):
129
- tsamp2: float = time.time()
130
- print('Halton Update {} - {} - {}'.format(halton_id, c.get_status(), tsamp2 - tsamp))
131
-
132
-
133
- tsamp = time.time()
134
- result: Client = request.execute_async(
135
- CSIP_ENDPOINT,
136
- files=files,
137
- callback=callback,
138
- first_poll=poll_time,
139
- next_poll=poll_time,
140
- conf=conf
141
- )
142
- # After recieving response
143
- if result.is_finished():
144
- print(result)
145
- else:
146
- print(result)
147
- """
106
+ sys.stderr = old_stderr
@@ -168,7 +168,7 @@ def global_best(steps: Dict, rounds: Tuple, args: Dict, n_particles: int, iters:
168
168
  step_trace['min_rounds'] = min_rounds
169
169
  step_trace['max_rounds'] = max_rounds
170
170
  step_trace['iters'] = iters
171
- step_trace['ftol'] = ftol
171
+ #step_trace['ftol'] = ftol BUG DOES NOT HANDLE -INF
172
172
  step_trace['ftol_iter'] = ftol_iter
173
173
  step_trace['rtol'] = rtol
174
174
  step_trace['rtol_iter'] = rtol_iter
@@ -176,7 +176,7 @@ def global_best(steps: Dict, rounds: Tuple, args: Dict, n_particles: int, iters:
176
176
  step_trace['n_particles'] = n_particles
177
177
  step_trace['n_steps'] = len(steps)
178
178
  step_trace['steps'] = copy.deepcopy(steps)
179
- step_trace['args'] = args
179
+ #step_trace['args'] = args BUG MUST BE REMOVED
180
180
 
181
181
  if step_file is not None:
182
182
  with open(step_file, "w") as fo:
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
  import codecs
3
3
  import os
4
4
 
5
- VERSION = '0.1.81'
5
+ VERSION = '0.1.84'
6
6
  DESCRIPTION = 'GUI for MG-PSO'
7
7
  LONG_DESCRIPTION = open('../README.md').read()
8
8
 
File without changes