mg-pso-gui 0.2.98__py3-none-any.whl → 0.2.100__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.
- {mg_pso_gui-0.2.98.dist-info → mg_pso_gui-0.2.100.dist-info}/METADATA +1 -1
- {mg_pso_gui-0.2.98.dist-info → mg_pso_gui-0.2.100.dist-info}/RECORD +11 -11
- mgpsogui/gui/General/ParameterView.py +33 -15
- mgpsogui/gui/OptionManager.py +20 -0
- mgpsogui/gui/RunTab/RunTab.py +13 -6
- mgpsogui/gui/SetupTab/BoundsList.py +1 -1
- mgpsogui/gui/SetupTab/FunctionsList.py +2 -2
- mgpsogui/util/PSORunner.py +4 -0
- {mg_pso_gui-0.2.98.dist-info → mg_pso_gui-0.2.100.dist-info}/WHEEL +0 -0
- {mg_pso_gui-0.2.98.dist-info → mg_pso_gui-0.2.100.dist-info}/entry_points.txt +0 -0
- {mg_pso_gui-0.2.98.dist-info → mg_pso_gui-0.2.100.dist-info}/top_level.txt +0 -0
@@ -2,22 +2,22 @@ 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
4
|
mgpsogui/gui/HomePage.py,sha256=qnrbwfWKuSX6z2BEuRwLMfCe88WC55dFbBbvEe5PtFI,23626
|
5
|
-
mgpsogui/gui/OptionManager.py,sha256=
|
5
|
+
mgpsogui/gui/OptionManager.py,sha256=DxbhmMuOJWuTf3HwgexqyypokD0DYrrsRyKs_GE_VVE,22465
|
6
6
|
mgpsogui/gui/OptionManager_backup.py,sha256=TCWfPnHL2foN5id47jsi267lamRG6yGU6y_M29eOOJk,18530
|
7
7
|
mgpsogui/gui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
8
|
mgpsogui/gui/General/NoticeWindow.py,sha256=HcTtaYKK4b7HognnoAHXiIHZWAXI80QfR8HM2dTLTV8,1866
|
9
|
-
mgpsogui/gui/General/ParameterView.py,sha256=
|
9
|
+
mgpsogui/gui/General/ParameterView.py,sha256=vLTmBEliBnHcwDUYCrnOWQvR887OyujVT8Lm-Y08qCQ,10071
|
10
10
|
mgpsogui/gui/General/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
11
|
mgpsogui/gui/PlatformTab/PlatformTab.py,sha256=8J2Aa3Zrh1q9x07zZ0Ap9PgwHjeSKOYyj6wlxx40udw,10985
|
12
12
|
mgpsogui/gui/PlatformTab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
13
13
|
mgpsogui/gui/RunTab/OptimalParameterView.py,sha256=nliUEWA840cPBQt7wjiZ-L7uBOp_ozzJhyBkL08fJzI,1752
|
14
|
-
mgpsogui/gui/RunTab/RunTab.py,sha256=
|
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=U64oaiDIOaimjbqKMz5rQNq2o1SrQtrRHDdTYQ9ux1s,2870
|
17
|
-
mgpsogui/gui/SetupTab/BoundsList.py,sha256=
|
17
|
+
mgpsogui/gui/SetupTab/BoundsList.py,sha256=bc1g2LLdmxkVk_Gnr-koxsxw8342IWFzpaDXu27pJD4,15231
|
18
18
|
mgpsogui/gui/SetupTab/CustomFunctionEditorWindow.py,sha256=yx0dHSNa7fGy99Q6qFcI6j9r8p0DlV3iOBgyPMGd8pM,2884
|
19
19
|
mgpsogui/gui/SetupTab/CustomFunctionMetrics.py,sha256=vOJpElbTgz043m6JYwe9xz_2MBHg985S6KdbJkJERW4,5923
|
20
|
-
mgpsogui/gui/SetupTab/FunctionsList.py,sha256=
|
20
|
+
mgpsogui/gui/SetupTab/FunctionsList.py,sha256=6oFS8qKF3OCtxNi5aY5Rj_ovM9nv4-vh-oT_CbhVTj4,7043
|
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
|
@@ -48,7 +48,7 @@ mgpsogui/gui/images/trash.png,sha256=j8cf0kWbJd-4Jp20lUVV1o1NSeQ4v1Ej4gfcIA3DVRQ
|
|
48
48
|
mgpsogui/gui/images/up.png,sha256=AQvFWCUqSQNaQ1E6LKZ9zNfSvW6t4mgy8uswdg9T2Hg,2457
|
49
49
|
mgpsogui/gui/messages/welcome.txt,sha256=KzN_Zk3vaZeXx-G2KJmd5I7Q1_Shw62E9Fx8U4rQuUQ,5674
|
50
50
|
mgpsogui/util/GraphGenerator.py,sha256=LHHDCvBuJQ0RYQm0azi5tC-etrZ1KLQh-tkahVurPSI,31990
|
51
|
-
mgpsogui/util/PSORunner.py,sha256=
|
51
|
+
mgpsogui/util/PSORunner.py,sha256=mTveURj8HGCwB5VHzvN9ELUhKtVzuynuQc8zJm4IFNs,15764
|
52
52
|
mgpsogui/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
53
53
|
mgpsogui/util/debug.py,sha256=Swzny9_1S-CCONWGssj9iDoSpbwu5Vr4f95g_9L8bec,19759
|
54
54
|
mgpsogui/util/helpers.py,sha256=Ht2rge_4pGO7halz6KoLsL2eukB0k2tlkx68lBBmBA8,2669
|
@@ -73,8 +73,8 @@ mgpsogui/util/recosu/utils/trace_writer.py,sha256=V9BJlOjCbNYGoXGEk3CF5wjifBxvar
|
|
73
73
|
mgpsogui/util/recosu/utils/utils.py,sha256=QB8vftq3142ekG0ORjz0ZBHU5YknXbR0oTsrxrPAsF0,3951
|
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.
|
77
|
-
mg_pso_gui-0.2.
|
78
|
-
mg_pso_gui-0.2.
|
79
|
-
mg_pso_gui-0.2.
|
80
|
-
mg_pso_gui-0.2.
|
76
|
+
mg_pso_gui-0.2.100.dist-info/METADATA,sha256=gO9mSWuiVGxGJXQA-FQ5J4TTtNm6w1OyP8uBmSWLPi8,9456
|
77
|
+
mg_pso_gui-0.2.100.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
78
|
+
mg_pso_gui-0.2.100.dist-info/entry_points.txt,sha256=jg82VOFjR1XDGrchs1wJSCqKYE4Ozv12aBcCSp--koA,117
|
79
|
+
mg_pso_gui-0.2.100.dist-info/top_level.txt,sha256=y7JuS9xJN5YdxUsQ3PSVjN8MzQAnR146bP3ZN3PYWdE,9
|
80
|
+
mg_pso_gui-0.2.100.dist-info/RECORD,,
|
@@ -81,21 +81,32 @@ class ParameterView(CTkScrollableFrame):
|
|
81
81
|
hour = sv()
|
82
82
|
minute = sv()
|
83
83
|
second = sv()
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
84
|
+
|
85
|
+
year.set("2021")
|
86
|
+
month.set("01")
|
87
|
+
day.set("01")
|
88
|
+
hour.set("00")
|
89
|
+
minute.set("00")
|
90
|
+
second.set("00")
|
91
|
+
|
92
|
+
try:
|
93
|
+
date_time = om_text_var.get().split(" ")
|
94
|
+
vv = date_time[0].split("-")
|
95
|
+
ss = date_time[1].split(":")
|
96
|
+
year.set(vv[0])
|
97
|
+
month.set(vv[1])
|
98
|
+
day.set(vv[2])
|
99
|
+
hour.set(ss[0])
|
100
|
+
minute.set(ss[1])
|
101
|
+
second.set(ss[2])
|
102
|
+
except Exception as e:
|
103
|
+
pass
|
93
104
|
year_options = [str(i) for i in range(1999, 2030)]
|
94
105
|
month_options = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"]
|
95
106
|
day_options = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"]
|
96
107
|
hour_options = [str(i) for i in range(0, 24)]
|
97
|
-
minute_options = [
|
98
|
-
second_options = [
|
108
|
+
minute_options = [f"{i:02}" for i in range(0, 60)]
|
109
|
+
second_options = [f"{i:02}" for i in range(0, 60)]
|
99
110
|
|
100
111
|
update_date = lambda om_text_var=om_text_var, year=year, month=month, day=day: om_text_var.set(f"{year.get()}-{month.get()}-{day.get()} {hour.get()}:{minute.get()}:{second.get()}")
|
101
112
|
|
@@ -120,10 +131,17 @@ class ParameterView(CTkScrollableFrame):
|
|
120
131
|
year = sv()
|
121
132
|
month = sv()
|
122
133
|
day = sv()
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
134
|
+
year.set("2021")
|
135
|
+
month.set("01")
|
136
|
+
day.set("01")
|
137
|
+
|
138
|
+
try:
|
139
|
+
vv = om_text_var.get().split("-")
|
140
|
+
year.set(vv[0])
|
141
|
+
month.set(vv[1])
|
142
|
+
day.set(vv[2])
|
143
|
+
except Exception as e:
|
144
|
+
pass
|
127
145
|
year_options = [str(i) for i in range(1999, 2030)]
|
128
146
|
month_options = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"]
|
129
147
|
day_options = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"]
|
mgpsogui/gui/OptionManager.py
CHANGED
@@ -370,6 +370,26 @@ class OptionManager():
|
|
370
370
|
|
371
371
|
def copy_list(self, source_mode):
|
372
372
|
self._data[self._mode_sv.get()] = self._data[source_mode]
|
373
|
+
|
374
|
+
def combine_steps(self):
|
375
|
+
mode = self._mode_sv.get()
|
376
|
+
|
377
|
+
obj = {"parameter_objects": [],
|
378
|
+
"override_parameter": [],
|
379
|
+
"objective_functions": [],
|
380
|
+
"name": sv(),
|
381
|
+
"open": True}
|
382
|
+
obj["name"].set("Combined Group")
|
383
|
+
|
384
|
+
for step in self._data[mode]["steps"]:
|
385
|
+
for param in step["parameter_objects"]:
|
386
|
+
obj["parameter_objects"].append(param)
|
387
|
+
for objective_function in step["objective_functions"]:
|
388
|
+
obj["objective_functions"].append(objective_function)
|
389
|
+
for override in step["override_parameter"]:
|
390
|
+
obj["override_parameter"].append(override)
|
391
|
+
|
392
|
+
self._data[mode]["steps"] = [obj]
|
373
393
|
|
374
394
|
def get_data(self):
|
375
395
|
return self._data[self._mode_sv.get()]
|
mgpsogui/gui/RunTab/RunTab.py
CHANGED
@@ -75,6 +75,10 @@ def create_tab(self, tab):
|
|
75
75
|
self.option_manager.copy_list("Optimization")
|
76
76
|
self.refresh_step_view(0)
|
77
77
|
|
78
|
+
def combine_steps():
|
79
|
+
self.option_manager.combine_steps()
|
80
|
+
self.refresh_step_view(0)
|
81
|
+
|
78
82
|
def open_project_folder():
|
79
83
|
# Open the file in the default program
|
80
84
|
folder = self.option_manager.get_project_folder()
|
@@ -101,15 +105,18 @@ def create_tab(self, tab):
|
|
101
105
|
self.optimization_copy = customtkinter.CTkButton(self.project_editor, text="From Optimization", command=copy_optim)
|
102
106
|
self.optimization_copy.grid(row=4, column=0, padx=(20, 20), pady=(5, 10), sticky="ew")
|
103
107
|
|
104
|
-
customtkinter.
|
108
|
+
self.combine_steps = customtkinter.CTkButton(self.project_editor, text="Combine Groups", command=combine_steps)
|
109
|
+
self.combine_steps.grid(row=5, column=0, padx=(20, 20), pady=(5, 10), sticky="ew")
|
110
|
+
|
111
|
+
customtkinter.CTkLabel(self.project_editor, text="Project Management:").grid(row=6, column=0, padx=(20, 20), pady=(5, 10), sticky="ew")
|
105
112
|
|
106
113
|
self.open_folder = customtkinter.CTkButton(self.project_editor, text="Open Project Folder", command=open_project_folder)
|
107
|
-
self.open_folder.grid(row=
|
114
|
+
self.open_folder.grid(row=7, column=0, padx=(20, 20), pady=(5, 10), sticky="ew")
|
108
115
|
|
109
|
-
customtkinter.CTkLabel(self.project_editor, text="Project Name:").grid(row=
|
116
|
+
customtkinter.CTkLabel(self.project_editor, text="Project Name:").grid(row=8, column=0, padx=(20, 20), pady=(10, 5), sticky="ew")
|
110
117
|
self.project_name_label = customtkinter.CTkLabel(self.project_editor, text=self.option_manager.get_project_data()["name"])
|
111
|
-
self.project_name_label.grid(row=
|
118
|
+
self.project_name_label.grid(row=9, column=0, padx=(20, 20), pady=(5, 10), sticky="ew")
|
112
119
|
|
113
|
-
customtkinter.CTkLabel(self.project_editor, text="Project Path:").grid(row=
|
120
|
+
customtkinter.CTkLabel(self.project_editor, text="Project Path:").grid(row=10, column=0, padx=(20, 20), pady=(10, 5), sticky="ew")
|
114
121
|
self.project_path_label = customtkinter.CTkLabel(self.project_editor, text=self.option_manager.get_project_data()["path"])
|
115
|
-
self.project_path_label.grid(row=
|
122
|
+
self.project_path_label.grid(row=11, column=0, padx=(20, 20), pady=(5, 10), sticky="ew")
|
@@ -153,7 +153,7 @@ class BoundsList(CTkFrame):
|
|
153
153
|
self.validate_number(bounds_max.get(), cc, bounds_max)
|
154
154
|
tt2 = ctt(bounds_max, delay=0.1, alpha=0.95, message="...")
|
155
155
|
|
156
|
-
if (bound_type == "list"):
|
156
|
+
if (bound_type == "list" and mode == "Optimization"):
|
157
157
|
def button_click_event(bound_index):
|
158
158
|
BEW(title="Edit List Bound", step_index=self.step_index, bound_index=bound_index, option_manager=self.option_manager)
|
159
159
|
|
@@ -54,7 +54,7 @@ class FunctionsList(CTkFrame):
|
|
54
54
|
|
55
55
|
CTkLabel(self.containerFrame, text="Name:").grid(row=row, column=0, padx=(5, 5), pady=(5, 5), sticky="nsew")
|
56
56
|
CTkLabel(self.containerFrame, text="Objective:").grid(row=row, column=1, padx=(5, 5), pady=(5, 5), sticky="nsew")
|
57
|
-
if mode
|
57
|
+
if mode == "Optimization":
|
58
58
|
CTkLabel(self.containerFrame, text="Weight:").grid(row=row, column=2, padx=(5, 5), pady=(5, 5), sticky="nsew")
|
59
59
|
|
60
60
|
row += 1
|
@@ -82,7 +82,7 @@ class FunctionsList(CTkFrame):
|
|
82
82
|
|
83
83
|
CTkEntry(self.containerFrame, textvariable=func["name"]).grid(row=row, column=0, padx=(5, 5), pady=(5, 5), sticky="ew")
|
84
84
|
CTkOptionMenu(self.containerFrame, values=columns, variable=func["objective_function"], command=self.refresh).grid(row=row, column=1, padx=(5, 5), pady=(5, 5), sticky="ew")
|
85
|
-
if mode
|
85
|
+
if mode == "Optimization":
|
86
86
|
CTkEntry(self.containerFrame, textvariable=func["weight"]).grid(row=row, column=2, padx=(5, 5), pady=(5, 5), sticky="ew")
|
87
87
|
|
88
88
|
row += 1
|
mgpsogui/util/PSORunner.py
CHANGED
@@ -242,6 +242,8 @@ def run_sampling(data, mode, folder, results_queue):
|
|
242
242
|
process_list(data, parameter_map, args, options, oh_strategy, config, metainfo, "service_parameters")
|
243
243
|
|
244
244
|
output_steps = process_steps(data)
|
245
|
+
if len(output_steps) > 1:
|
246
|
+
output_steps = [output_steps[0]]
|
245
247
|
|
246
248
|
trace_file = os.path.join(folder, 'results', mode + '_trace.csv')
|
247
249
|
file_output_mode = data["sampling_output_mode"]
|
@@ -385,6 +387,8 @@ def run_sensitivity_analysis(data, folder, results_queue):
|
|
385
387
|
trace_path = os.path.join(folder, 'results', 'trace.csv')
|
386
388
|
|
387
389
|
output_steps = process_steps(data)
|
390
|
+
if len(output_steps) > 1:
|
391
|
+
output_steps = [output_steps[0]]
|
388
392
|
|
389
393
|
# Get list of parameters from steps
|
390
394
|
parameters = []
|
File without changes
|
File without changes
|
File without changes
|