mg-pso-gui 0.1.229__tar.gz → 0.1.231__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 (73) hide show
  1. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/PKG-INFO +1 -1
  2. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mg_pso_gui.egg-info/PKG-INFO +1 -1
  3. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/OptionManager.py +1 -1
  4. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/SetupTab/CustomFunctionMetrics.py +12 -9
  5. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/SetupTab/SetupTab.py +1 -1
  6. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/SetupTab/StepView.py +29 -0
  7. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/setup.py +1 -1
  8. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mg_pso_gui.egg-info/SOURCES.txt +0 -0
  9. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mg_pso_gui.egg-info/dependency_links.txt +0 -0
  10. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mg_pso_gui.egg-info/entry_points.txt +0 -0
  11. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mg_pso_gui.egg-info/requires.txt +0 -0
  12. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mg_pso_gui.egg-info/top_level.txt +0 -0
  13. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/__init__.py +0 -0
  14. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/HomePage.py +0 -0
  15. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/PlatformTab/PlatformTab.py +0 -0
  16. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/PlatformTab/__init__.py +0 -0
  17. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/RunTab/RunTab.py +0 -0
  18. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/RunTab/__init__.py +0 -0
  19. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/SetupTab/BoundsEditorWindow.py +0 -0
  20. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/SetupTab/BoundsList.py +0 -0
  21. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/SetupTab/CalibrationParametersView.py +0 -0
  22. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/SetupTab/CustomFunctionEditorWindow.py +0 -0
  23. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/SetupTab/FunctionsList.py +0 -0
  24. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/SetupTab/ListEditor.py +0 -0
  25. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/SetupTab/ListParametersView.py +0 -0
  26. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/SetupTab/OptimalParameterView.py +0 -0
  27. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/SetupTab/StaticParameterView.py +0 -0
  28. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/SetupTab/__init__.py +0 -0
  29. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/VisualizeTab/MatrixEditor.py +0 -0
  30. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/VisualizeTab/SideBar.py +0 -0
  31. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/VisualizeTab/VisualizeTab.py +0 -0
  32. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/VisualizeTab/__init__.py +0 -0
  33. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/__init__.py +0 -0
  34. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/images/IGOW 4 Logo.png +0 -0
  35. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/images/collapse.png +0 -0
  36. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/images/down.png +0 -0
  37. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/images/expand.png +0 -0
  38. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/images/play.png +0 -0
  39. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/images/refresh.png +0 -0
  40. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/images/refresh_hd.png +0 -0
  41. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/images/stop.png +0 -0
  42. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/images/test.png +0 -0
  43. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/images/trash.png +0 -0
  44. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/gui/images/up.png +0 -0
  45. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/mgpsogui.py +0 -0
  46. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/start.yaml +0 -0
  47. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/CTkToolTip/__init__.py +0 -0
  48. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/CTkToolTip/ctk_tooltip.py +0 -0
  49. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/GraphGenerator.py +0 -0
  50. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/PSORunner.py +0 -0
  51. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/__init__.py +0 -0
  52. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/debug.py +0 -0
  53. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/helpers.py +0 -0
  54. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/__init__.py +0 -0
  55. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/pso/__init__.py +0 -0
  56. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/pso/csip_access.py +0 -0
  57. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/pso/pso.py +0 -0
  58. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/sampling/__init__.py +0 -0
  59. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/sampling/halton/__init__.py +0 -0
  60. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/sampling/halton/halton.py +0 -0
  61. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/sampling/halton/prime.py +0 -0
  62. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/sampling/random/__init__.py +0 -0
  63. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/sampling/random/random_sampler.py +0 -0
  64. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/sampling/sample_trace_writer.py +0 -0
  65. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/sampling/sampler_task.py +0 -0
  66. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/sampling/sampling.py +0 -0
  67. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/utils/__init__.py +0 -0
  68. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/utils/plot/__init__.py +0 -0
  69. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/utils/plot/cost_steps.py +0 -0
  70. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/utils/trace_writer.py +0 -0
  71. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/recosu/utils/utils.py +0 -0
  72. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/mgpsogui/util/sampler_test_driver.py +0 -0
  73. {mg_pso_gui-0.1.229 → mg_pso_gui-0.1.231}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mg-pso-gui
3
- Version: 0.1.229
3
+ Version: 0.1.231
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.229
3
+ Version: 0.1.231
4
4
  Summary: GUI for MG-PSO
5
5
  Author: Robert Cordingly
6
6
  Author-email: <rcording@uw.ed>
@@ -22,7 +22,7 @@ class OptionManager():
22
22
  self.steps = []
23
23
  self.service_parameters = {}
24
24
 
25
- self.service_modes = ["Optimization: MG-PSO", "Sampling: Halton", "Sampling: Random", "Sensitivity: Halton", "Sensitivity: Random"]
25
+ self.service_modes = ["Sampling: Halton", "Sampling: Random", "Sensitivity Analysis", "Optimization: MG-PSO"]
26
26
  for mode in self.service_modes:
27
27
  self.arguments["urls"][mode] = sv()
28
28
 
@@ -69,15 +69,18 @@ class CustomFunctionsMetricsView(CTkScrollableFrame):
69
69
  equation = self.option_manager.get_steps()[self.step_index]["objfunc"][self.functions_index]["custom_function"].get()
70
70
 
71
71
  # Example equation (0 * (1 - ns)) + (bias * 0) + (pbias * 0) + (absdiff * 0)
72
- if equation != "":
73
- equation = equation.replace("1 - ", "")
74
- equation = equation.replace("(", "")
75
- equation = equation.replace(")", "")
76
- equation = equation.replace(" ", "")
77
- pairs = equation.split("+")
78
- for pair in pairs:
79
- key, value = pair.split("*")
80
- self.add_key(key, value)
72
+ try:
73
+ if equation != "":
74
+ equation = equation.replace("1 - ", "")
75
+ equation = equation.replace("(", "")
76
+ equation = equation.replace(")", "")
77
+ equation = equation.replace(" ", "")
78
+ pairs = equation.split("+")
79
+ for pair in pairs:
80
+ key, value = pair.split("*")
81
+ self.add_key(key, value)
82
+ except Exception as e:
83
+ self.key_values = []
81
84
 
82
85
  self.render()
83
86
 
@@ -58,7 +58,7 @@ def create_tab(self, tab):
58
58
  self.optimal_param_frame.grid_columnconfigure(0, weight=1)
59
59
  self.optimal_param_frame.grid_rowconfigure(0, weight=1)
60
60
 
61
- self.steps_frame = sv.StepView(tab, label_text="Group Editor", option_manager=self.option_manager)
61
+ self.steps_frame = sv.StepView(tab, label_text="Group Editor", option_manager=self.option_manager, home_page=self)
62
62
  self.steps_frame.grid(row=0, column=0, padx=(10, 10), pady=(10, 0), sticky="nsew")
63
63
  self.steps_frame.grid_columnconfigure(0, weight=1)
64
64
  self.steps_frame.grid_rowconfigure(0, weight=1)
@@ -5,6 +5,7 @@ from customtkinter import CTkButton
5
5
  from customtkinter import CTkEntry
6
6
  from customtkinter import CTkTextbox
7
7
  from customtkinter import CTkImage
8
+ from customtkinter import CTkOptionMenu
8
9
  from PIL import Image
9
10
  import os
10
11
 
@@ -16,6 +17,7 @@ from . import ListEditor
16
17
  class StepView(CTkScrollableFrame):
17
18
  def __init__(self, *args,
18
19
  option_manager: None,
20
+ home_page: None,
19
21
  **kwargs):
20
22
  super().__init__(*args, **kwargs)
21
23
 
@@ -77,6 +79,33 @@ class StepView(CTkScrollableFrame):
77
79
  self.steps = self.option_manager.get_steps()
78
80
  self.mode = self.option_manager.get_arguments()['mode'].get()
79
81
 
82
+ if (self.mode == "Sensitivity Analysis"):
83
+ info = self.option_manager.get_project_data()
84
+ folder = os.path.join(info['path'], info['name'], "results")
85
+
86
+ # File all CSV files in folder and put them into list with strings as path
87
+ files = []
88
+ if os.path.exists(folder):
89
+ files = [f for f in os.listdir(folder) if f.endswith('.csv')]
90
+
91
+ if len(files) == 0:
92
+ files = ["No CSV files found! Run sampling first"]
93
+
94
+ header_padding_x = (5, 5)
95
+ header_padding_y = (10, 10)
96
+
97
+ self.file_selector_frame = CTkFrame(self.containerFrame, width=140, corner_radius=0)
98
+ self.file_selector_frame.grid(row=0, column=0, sticky="nsew")
99
+ self.logo_label = CTkLabel(self.file_selector_frame, text="Select File:")
100
+ self.logo_label.grid(row=0, column=0, padx=(20, 10), pady=header_padding_y)
101
+
102
+ self.file_selector = CTkOptionMenu(self.file_selector_frame, values=files, width=50)
103
+ self.file_selector.grid(row=0, column=1, padx=(5, 80), pady=header_padding_y)
104
+ self.file_selector.set(files[0])
105
+
106
+ row += 1
107
+
108
+
80
109
  for step in self.steps:
81
110
 
82
111
  up_image = CTkImage(Image.open(os.path.join("./images", "up.png")), size=(20, 20))
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
  import codecs
3
3
  import os
4
4
 
5
- VERSION = '0.1.229'
5
+ VERSION = '0.1.231'
6
6
  DESCRIPTION = 'GUI for MG-PSO'
7
7
  LONG_DESCRIPTION = open('../README.md').read()
8
8
 
File without changes