mg-pso-gui 0.1.243__py3-none-any.whl → 0.2.0__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.1.243.dist-info → mg_pso_gui-0.2.0.dist-info}/METADATA +1 -1
- {mg_pso_gui-0.1.243.dist-info → mg_pso_gui-0.2.0.dist-info}/RECORD +23 -23
- mgpsogui/gui/General/ParameterView.py +90 -0
- mgpsogui/gui/General/__init__.py +0 -0
- mgpsogui/gui/HomePage.py +14 -52
- mgpsogui/gui/OptionManager.py +194 -195
- mgpsogui/gui/OptionManager_backup.py +443 -0
- mgpsogui/gui/PlatformTab/PlatformTab.py +3 -3
- mgpsogui/gui/SetupTab/BoundsList.py +10 -10
- mgpsogui/gui/SetupTab/CustomFunctionMetrics.py +2 -2
- mgpsogui/gui/SetupTab/FunctionsList.py +7 -7
- mgpsogui/gui/SetupTab/ListEditor.py +1 -3
- mgpsogui/gui/SetupTab/ListParametersView.py +7 -6
- mgpsogui/gui/SetupTab/OptimalParameterView.py +3 -5
- mgpsogui/gui/SetupTab/OverrideParameterMetrics.py +0 -2
- mgpsogui/gui/SetupTab/SetupTab.py +3 -2
- mgpsogui/gui/SetupTab/StepView.py +11 -15
- mgpsogui/gui/VisualizeTab/MatrixEditor.py +3 -3
- mgpsogui/gui/VisualizeTab/SideBar.py +4 -8
- mgpsogui/gui/VisualizeTab/VisualizeTab.py +2 -4
- mgpsogui/gui/PlatformTab/ServiceParametersView.py +0 -61
- mgpsogui/gui/SetupTab/CalibrationParametersView.py +0 -61
- mgpsogui/gui/SetupTab/StaticParameterView.py +0 -61
- {mg_pso_gui-0.1.243.dist-info → mg_pso_gui-0.2.0.dist-info}/WHEEL +0 -0
- {mg_pso_gui-0.1.243.dist-info → mg_pso_gui-0.2.0.dist-info}/entry_points.txt +0 -0
- {mg_pso_gui-0.1.243.dist-info → mg_pso_gui-0.2.0.dist-info}/top_level.txt +0 -0
mgpsogui/gui/OptionManager.py
CHANGED
@@ -3,54 +3,96 @@ from tkinter import IntVar as iv
|
|
3
3
|
from tkinter import BooleanVar as bv
|
4
4
|
from tkinter import DoubleVar as dv
|
5
5
|
import json
|
6
|
+
import os
|
6
7
|
|
7
8
|
class OptionManager():
|
8
9
|
|
9
10
|
def __init__(self):
|
10
|
-
|
11
|
-
self.project_data = {"name": "", "path": ""}
|
12
|
-
self.arguments = {"param": [],
|
13
|
-
"url": sv(),
|
14
|
-
"urls": {},
|
15
|
-
"mode": sv(),
|
16
|
-
"files": {},
|
17
|
-
"calibration_parameters": [],
|
18
|
-
"service_parameters": [],
|
19
|
-
"figure_parameters": [],
|
20
|
-
"sensitivity_parameters": [],
|
21
|
-
"sensitivity_positiveBestMetrics": [],
|
22
|
-
"sensitivity_negativeBestMetrics": []}
|
23
|
-
self.steps = []
|
24
|
-
self.service_parameters = {}
|
25
11
|
|
26
|
-
self.
|
27
|
-
|
28
|
-
|
12
|
+
self._service_modes = ["Sampling: Halton", "Sampling: Random", "Sensitivity Analysis", "Optimization"]
|
13
|
+
|
14
|
+
self._default_sampling = json.load(open(os.path.join("./defaults", "sampling.json")))
|
15
|
+
self._default_sensitivity = json.load(open(os.path.join("./defaults", "sensitivity.json")))
|
16
|
+
self._default_optimization = json.load(open(os.path.join("./defaults", "optimization.json")))
|
17
|
+
|
18
|
+
self._mode_sv = sv()
|
19
|
+
self.init_lists()
|
20
|
+
|
21
|
+
def init_lists(self):
|
22
|
+
self._project_data = {"name": "", "path": ""}
|
23
|
+
self._data = {}
|
29
24
|
|
25
|
+
self._data["mode"] = self._mode_sv
|
26
|
+
|
27
|
+
for service in self._service_modes:
|
28
|
+
self._data[service] = {
|
29
|
+
"url": sv(),
|
30
|
+
"files": {},
|
31
|
+
"steps": [],
|
32
|
+
"model_parameters": [],
|
33
|
+
"hyperparameters": [],
|
34
|
+
"service_parameters": [],
|
35
|
+
"service_request_data": [],
|
36
|
+
"figure_parameters": [],
|
37
|
+
"sensitivity_parameters": [],
|
38
|
+
"sensitivity_positiveBestMetrics": [],
|
39
|
+
"sensitivity_negativeBestMetrics": []}
|
30
40
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
41
|
+
if service == "Sampling: Halton" or service == "Sampling: Random":
|
42
|
+
self._data[service]["model_parameters"] = self._default_sampling["model_parameters"]
|
43
|
+
self._data[service]["hyperparameters"] = self._default_sampling["hyperparameters"]
|
44
|
+
self._data[service]["service_parameters"] = self._default_sampling["service_parameters"]
|
45
|
+
elif service == "Sensitivity Analysis":
|
46
|
+
self._data[service]["model_parameters"] = self._default_sensitivity["model_parameters"]
|
47
|
+
self._data[service]["hyperparameters"] = self._default_sensitivity["hyperparameters"]
|
48
|
+
self._data[service]["service_parameters"] = self._default_sensitivity["service_parameters"]
|
49
|
+
elif service == "Optimization":
|
50
|
+
self._data[service]["model_parameters"] = self._default_optimization["model_parameters"]
|
51
|
+
self._data[service]["hyperparameters"] = self._default_optimization["hyperparameters"]
|
52
|
+
self._data[service]["service_parameters"] = self._default_optimization["service_parameters"]
|
53
|
+
|
54
|
+
|
55
|
+
def serialize_data(self, data):
|
56
|
+
if isinstance(data, dict):
|
57
|
+
return {key: self.serialize_data(value) for key, value in data.items()}
|
58
|
+
elif isinstance(data, list):
|
59
|
+
return [self.serialize_data(item) for item in data]
|
60
|
+
elif isinstance(data, sv):
|
61
|
+
return data.get()
|
62
|
+
else:
|
63
|
+
return data
|
64
|
+
|
65
|
+
def deserialize_data(self, data):
|
66
|
+
if isinstance(data, dict):
|
67
|
+
return {key: self.deserialize_data(value) for key, value in data.items()}
|
68
|
+
elif isinstance(data, list):
|
69
|
+
return [self.deserialize_data(item) for item in data]
|
70
|
+
elif isinstance(data, (str, int, float)):
|
71
|
+
return sv(value=str(data))
|
72
|
+
else:
|
73
|
+
return data
|
74
|
+
|
75
|
+
def save_project(self, filename):
|
76
|
+
with open(filename, 'w') as file:
|
77
|
+
results = {"project_data": self._project_data,
|
78
|
+
"mode": self._mode_sv.get(),
|
79
|
+
"data": self.serialize_data(self._data)}
|
80
|
+
json.dump(results, file)
|
81
|
+
|
82
|
+
def load_project(self, filename):
|
83
|
+
with open(filename, 'r') as file:
|
84
|
+
results = json.load(file)
|
85
|
+
self._project_data = results["project_data"]
|
86
|
+
self._mode_sv.set(results["mode"])
|
87
|
+
self._data = self.deserialize_data(results["data"])
|
88
|
+
|
47
89
|
def add_arguments(self, arguments):
|
48
90
|
|
49
91
|
if ("mode" in arguments):
|
50
|
-
self.
|
92
|
+
self._data["mode"].set(arguments["mode"])
|
51
93
|
|
52
94
|
if ("url" in arguments):
|
53
|
-
self.
|
95
|
+
self._data["url"][self._data["mode"].get()].set(arguments["url"])
|
54
96
|
|
55
97
|
if ("files" in arguments):
|
56
98
|
for file in arguments["files"]:
|
@@ -59,23 +101,23 @@ class OptionManager():
|
|
59
101
|
obj = {"name": sv(), "value": sv()}
|
60
102
|
obj["name"].set(name)
|
61
103
|
obj["value"].set(value)
|
62
|
-
self.
|
104
|
+
self._data["files"][name] = obj
|
63
105
|
|
64
|
-
for param in arguments["
|
106
|
+
for param in arguments["model_parameters"]:
|
65
107
|
name = param["name"]
|
66
108
|
value = param["value"]
|
67
109
|
obj = {"name": sv(), "value": sv()}
|
68
110
|
obj["name"].set(name)
|
69
111
|
obj["value"].set(value)
|
70
|
-
self.
|
112
|
+
self._data["model_parameters"].append(obj)
|
71
113
|
|
72
|
-
for param in arguments["
|
114
|
+
for param in arguments["hyperparameters"]:
|
73
115
|
name = param["name"]
|
74
116
|
value = param["value"]
|
75
117
|
obj = {"name": sv(), "value": sv()}
|
76
118
|
obj["name"].set(name)
|
77
119
|
obj["value"].set(value)
|
78
|
-
self.
|
120
|
+
self._data["hyperparameters"].append(obj)
|
79
121
|
|
80
122
|
for param in arguments["service_parameters"]:
|
81
123
|
name = param["name"]
|
@@ -83,21 +125,23 @@ class OptionManager():
|
|
83
125
|
obj = {"name": sv(), "value": sv()}
|
84
126
|
obj["name"].set(name)
|
85
127
|
obj["value"].set(value)
|
86
|
-
self.
|
128
|
+
self._data["service_parameters"].append(obj)
|
87
129
|
|
88
130
|
def add_steps(self, steps):
|
89
131
|
for step in steps:
|
90
|
-
obj = {"
|
91
|
-
"
|
92
|
-
"
|
132
|
+
obj = {"parameter_objects": [],
|
133
|
+
"override_parameter": [],
|
134
|
+
"objective_functions": [],
|
93
135
|
"name": sv(),
|
94
136
|
"open": False}
|
95
|
-
obj["name"].set("Group " + str(len(self.steps) + 1))
|
137
|
+
obj["name"].set("Group " + str(len(self._data[self._mode_sv.get()]["steps"]) + 1))
|
96
138
|
|
97
|
-
if "
|
98
|
-
for param in step["
|
139
|
+
if "parameter_objects" in step:
|
140
|
+
for param in step["parameter_objects"]:
|
99
141
|
param_obj = {
|
100
142
|
"name": sv(),
|
143
|
+
"min_bound": sv(),
|
144
|
+
"max_bound": sv(),
|
101
145
|
"bounds": (sv(), sv()),
|
102
146
|
"default_value": sv(),
|
103
147
|
"optimal_value": sv(),
|
@@ -105,12 +149,16 @@ class OptionManager():
|
|
105
149
|
"calibration_strategy": sv()
|
106
150
|
}
|
107
151
|
param_obj["name"].set(param["name"])
|
108
|
-
|
109
|
-
|
110
|
-
param_obj["
|
152
|
+
|
153
|
+
if "min_bound" in param:
|
154
|
+
param_obj["min_bound"].set(param["min_bound"])
|
155
|
+
else:
|
156
|
+
param_obj["min_bound"].set(0)
|
157
|
+
|
158
|
+
if "max_bound" in param:
|
159
|
+
param_obj["max_bound"].set(param["max_bound"])
|
111
160
|
else:
|
112
|
-
param_obj["
|
113
|
-
param_obj["bounds"][1].set(1)
|
161
|
+
param_obj["max_bound"].set(0)
|
114
162
|
|
115
163
|
if "type" in param:
|
116
164
|
param_obj["type"].set(param["type"])
|
@@ -132,56 +180,54 @@ class OptionManager():
|
|
132
180
|
else:
|
133
181
|
param_obj["calibration_strategy"].set("none")
|
134
182
|
|
135
|
-
obj["
|
183
|
+
obj["parameter_objects"].append(param_obj)
|
136
184
|
|
137
|
-
if "
|
138
|
-
for override in step["
|
185
|
+
if "override_parameter" in step:
|
186
|
+
for override in step["override_parameter"]:
|
139
187
|
override_obj = {"name": sv(), "value": sv()}
|
140
188
|
override_obj['name'].set(override['name'])
|
141
189
|
override_obj['value'].set(override['value'])
|
142
|
-
obj['
|
190
|
+
obj['override_parameter'].append(override_obj)
|
143
191
|
|
144
|
-
if "
|
145
|
-
for
|
146
|
-
|
147
|
-
"
|
192
|
+
if "objective_functions" in step:
|
193
|
+
for objective_function in step["objective_functions"]:
|
194
|
+
objective_function_object = {"name": sv(),
|
195
|
+
"objective_function": sv(),
|
148
196
|
"weight": sv(),
|
149
197
|
"custom_function": sv(),
|
150
198
|
"custom_function_goal": sv(),
|
151
199
|
"custom_function_value": sv(),
|
152
200
|
"data": (sv(), sv())}
|
153
|
-
|
154
|
-
|
155
|
-
|
201
|
+
objective_function_object["name"].set(objective_function["name"])
|
202
|
+
objective_function_object["objective_function"].set(objective_function["objective_function"])
|
203
|
+
objective_function_object["custom_function_goal"].set("Positive Best")
|
156
204
|
|
157
|
-
if ("weight" in
|
158
|
-
|
205
|
+
if ("weight" in objective_function):
|
206
|
+
objective_function_object["weight"].set(objective_function["weight"])
|
159
207
|
else:
|
160
|
-
|
208
|
+
objective_function_object["weight"].set(1)
|
161
209
|
|
162
|
-
if ("custom_function" in
|
163
|
-
|
164
|
-
if ("custom_function_goal" in
|
165
|
-
|
166
|
-
if ("custom_function_value" in
|
167
|
-
|
210
|
+
if ("custom_function" in objective_function):
|
211
|
+
objective_function_object["custom_function"].set(objective_function["custom_function"])
|
212
|
+
if ("custom_function_goal" in objective_function):
|
213
|
+
objective_function_object["custom_function_goal"].set(objective_function["custom_function_goal"])
|
214
|
+
if ("custom_function_value" in objective_function):
|
215
|
+
objective_function_object["custom_function_value"].set(objective_function["custom_function_value"])
|
168
216
|
|
169
|
-
|
170
|
-
|
171
|
-
obj["
|
217
|
+
objective_function_object["data"][0].set(objective_function["data"][0])
|
218
|
+
objective_function_object["data"][1].set(objective_function["data"][1])
|
219
|
+
obj["objective_functions"].append(objective_function_object)
|
172
220
|
|
173
|
-
self.steps.append(obj)
|
221
|
+
self._data[self._mode_sv.get()]["steps"].append(obj)
|
174
222
|
|
175
223
|
def add_function(self, step_index):
|
176
224
|
obj = {"name": sv(),
|
177
|
-
"
|
225
|
+
"objective_function": sv(),
|
178
226
|
"weight": sv(),
|
179
227
|
"custom_function": sv(),
|
180
|
-
"custom_function_goal": sv(),
|
181
|
-
"custom_function_value": sv(),
|
182
228
|
"data": (sv(), sv())}
|
183
229
|
obj["name"].set("ns")
|
184
|
-
obj["
|
230
|
+
obj["objective_function"].set("ns")
|
185
231
|
obj["weight"].set(1)
|
186
232
|
obj["data"][0].set("")
|
187
233
|
obj["data"][1].set("")
|
@@ -189,23 +235,23 @@ class OptionManager():
|
|
189
235
|
obj["custom_function_goal"].set("")
|
190
236
|
obj["custom_function_value"].set("")
|
191
237
|
|
192
|
-
self.steps[step_index]["
|
238
|
+
self._data[self._mode_sv.get()]["steps"][step_index]["objective_functions"].append(obj)
|
193
239
|
|
194
240
|
def remove_function(self, step_index, index):
|
195
|
-
self.steps[step_index]["
|
241
|
+
self._data[self._mode_sv.get()]["steps"][step_index]["objective_functions"].pop(index)
|
196
242
|
|
197
243
|
def dupe_function(self, step_index, index):
|
198
|
-
my_func = self.steps[step_index]["
|
244
|
+
my_func = self._data[self._mode_sv.get()]["steps"][step_index]["objective_functions"][index]
|
199
245
|
|
200
246
|
new_object = {"name": sv(),
|
201
|
-
"
|
247
|
+
"objective_function": sv(),
|
202
248
|
"weight": sv(),
|
203
249
|
"custom_function": sv(),
|
204
250
|
"custom_function_goal": sv(),
|
205
251
|
"custom_function_value": sv(),
|
206
252
|
"data": (sv(), sv())}
|
207
253
|
new_object["name"].set(my_func["name"].get())
|
208
|
-
new_object["
|
254
|
+
new_object["objective_function"].set(my_func["objective_function"].get())
|
209
255
|
new_object["weight"].set(my_func["weight"].get())
|
210
256
|
new_object["data"][0].set(my_func["data"][0].get())
|
211
257
|
new_object["data"][1].set(my_func["data"][1].get())
|
@@ -213,7 +259,7 @@ class OptionManager():
|
|
213
259
|
new_object["custom_function_goal"].set(my_func["custom_function_goal"].get())
|
214
260
|
new_object["custom_function_value"].set(my_func["custom_function_value"].get())
|
215
261
|
|
216
|
-
self.steps[step_index]["
|
262
|
+
self._data[self._mode_sv.get()]["steps"][step_index]["objective_functions"].append(new_object)
|
217
263
|
|
218
264
|
def add_bound(self, step_index,
|
219
265
|
name="name",
|
@@ -225,7 +271,8 @@ class OptionManager():
|
|
225
271
|
calibration_strategy="none"):
|
226
272
|
obj = {
|
227
273
|
"name": sv(),
|
228
|
-
"
|
274
|
+
"min_bound": sv(),
|
275
|
+
"max_bound": sv(),
|
229
276
|
"default_value": sv(),
|
230
277
|
"optimal_value": sv(),
|
231
278
|
"type": sv(),
|
@@ -236,146 +283,105 @@ class OptionManager():
|
|
236
283
|
obj["default_value"].set(default_value)
|
237
284
|
obj["optimal_value"].set(optimal_value)
|
238
285
|
obj["calibration_strategy"].set(calibration_strategy)
|
239
|
-
obj["
|
240
|
-
obj["
|
241
|
-
self.steps[step_index]["
|
286
|
+
obj["min_bound"].set(min)
|
287
|
+
obj["max_bound"].set(max)
|
288
|
+
self._data[self._mode_sv.get()]["steps"][step_index]["parameter_objects"].append(obj)
|
242
289
|
|
243
290
|
def remove_bound(self, step_index, index):
|
244
|
-
self.steps[step_index]["
|
291
|
+
self._data[self._mode_sv.get()]["steps"][step_index]["parameter_objects"].pop(index)
|
245
292
|
|
246
293
|
def add_override(self, step_index, name, value):
|
247
294
|
obj = {"name": sv(), "value": sv()}
|
248
295
|
obj["name"].set(name)
|
249
296
|
obj["value"].set(value)
|
250
|
-
self.steps[step_index]["
|
297
|
+
self._data[self._mode_sv.get()]["steps"][step_index]["override_parameter"].append(obj)
|
251
298
|
|
252
299
|
def remove_override(self, step_index, index):
|
253
|
-
self.steps[step_index]["
|
300
|
+
self._data[self._mode_sv.get()]["steps"][step_index]["override_parameter"].pop(index)
|
254
301
|
|
255
302
|
def get_override(self, step_index):
|
256
|
-
return self.steps[step_index]["
|
257
|
-
|
258
|
-
def add_argument(self, key, value):
|
259
|
-
obj = {"name": sv(), "value": sv()}
|
260
|
-
obj["name"].set(key)
|
261
|
-
obj["value"].set(value)
|
262
|
-
self.arguments["param"].append(obj)
|
263
|
-
|
264
|
-
def add_calibration_param(self, key, value):
|
265
|
-
obj = {"name": sv(), "value": sv()}
|
266
|
-
obj["name"].set(key)
|
267
|
-
obj["value"].set(value)
|
268
|
-
self.arguments["calibration_parameters"].append(obj)
|
269
|
-
|
270
|
-
def add_service_param(self, key, value):
|
271
|
-
obj = {"name": sv(), "value": sv()}
|
272
|
-
obj["name"].set(key)
|
273
|
-
obj["value"].set(value)
|
274
|
-
self.arguments["service_parameters"].append(obj)
|
275
|
-
|
276
|
-
def add_figure_param(self, key, value):
|
277
|
-
obj = {"name": sv(), "value": sv()}
|
278
|
-
obj["name"].set(key)
|
279
|
-
obj["value"].set(value)
|
280
|
-
self.arguments["figure_parameters"].append(obj)
|
281
|
-
|
282
|
-
def add_sensitivity_param(self, key, value):
|
283
|
-
obj = {"name": sv(), "value": sv()}
|
284
|
-
obj["name"].set(key)
|
285
|
-
obj["value"].set(value)
|
286
|
-
self.arguments["sensitivity_parameters"].append(obj)
|
303
|
+
return self._data[self._mode_sv.get()]["steps"][step_index]["override_parameter"]
|
287
304
|
|
288
|
-
def
|
289
|
-
obj = {"name": sv(), "value": sv()}
|
305
|
+
def add_key_value(self, list_name, key, value, type="string", destination="calibration_parameters"):
|
306
|
+
obj = {"name": sv(), "value": sv(), "type": sv(), "destination": sv()}
|
290
307
|
obj["name"].set(key)
|
291
308
|
obj["value"].set(value)
|
292
|
-
|
309
|
+
obj["type"].set(type)
|
310
|
+
obj["destination"].set(destination)
|
311
|
+
self._data[self._mode_sv.get()][list_name].append(obj)
|
293
312
|
|
294
|
-
def
|
295
|
-
|
296
|
-
obj["name"].set(key)
|
297
|
-
obj["value"].set(value)
|
298
|
-
self.arguments["sensitivity_negativeBestMetrics"].append(obj)
|
299
|
-
|
300
|
-
def move_argument_up(self, index):
|
301
|
-
if index > 0:
|
302
|
-
self.arguments["param"][index], self.arguments["param"][index - 1] = self.arguments["param"][index - 1], self.arguments["param"][index]
|
303
|
-
|
304
|
-
def move_argument_down(self, index):
|
305
|
-
if index < len(self.arguments["param"]) - 1:
|
306
|
-
self.arguments["param"][index], self.arguments["param"][index + 1] = self.arguments["param"][index + 1], self.arguments["param"][index]
|
313
|
+
def remove_key_value(self, list_name, index):
|
314
|
+
self._data[self._mode_sv.get()][list_name].pop(index)
|
307
315
|
|
308
316
|
def move_step_up(self, index):
|
309
317
|
if index > 0:
|
310
|
-
self.steps[index], self.steps[index - 1] = self.steps[index - 1], self.steps[index]
|
318
|
+
self._data[self._mode_sv.get()]["steps"][index], self._data[self._mode_sv.get()]["steps"][index - 1] = self._data[self._mode_sv.get()]["steps"][index - 1], self._data[self._mode_sv.get()]["steps"][index]
|
311
319
|
|
312
320
|
def move_step_down(self, index):
|
313
|
-
if index < len(self.steps) - 1:
|
314
|
-
self.steps[index], self.steps[index + 1] = self.steps[index + 1], self.steps[index]
|
321
|
+
if index < len(self._data[self._mode_sv.get()]["steps"]) - 1:
|
322
|
+
self._data[self._mode_sv.get()]["steps"][index], self._data[self._mode_sv.get()]["steps"][index + 1] = self._data[self._mode_sv.get()]["steps"][index + 1], self._data[self._mode_sv.get()]["steps"][index]
|
315
323
|
|
316
324
|
def toggle_step_open(self, index):
|
317
|
-
self.steps[index]["open"] = not self.steps[index]["open"]
|
318
|
-
|
319
|
-
def remove_argument(self, index):
|
320
|
-
self.arguments["param"].pop(index)
|
321
|
-
|
322
|
-
def remove_calibration_parameter(self, index):
|
323
|
-
self.arguments["calibration_parameters"].pop(index)
|
324
|
-
|
325
|
-
def remove_service_parameter(self, index):
|
326
|
-
self.arguments["service_parameters"].pop(index)
|
327
|
-
|
328
|
-
def remove_figure_parameter(self, index):
|
329
|
-
self.arguments["figure_parameters"].pop(index)
|
330
|
-
|
331
|
-
def remove_sensitivity_parameter(self, index):
|
332
|
-
self.arguments["sensitivity_parameters"].pop(index)
|
325
|
+
self._data[self._mode_sv.get()]["steps"][index]["open"] = not self._data[self._mode_sv.get()]["steps"][index]["open"]
|
333
326
|
|
334
|
-
def remove_sensitivity_positiveBestMetrics(self, index):
|
335
|
-
self.arguments["sensitivity_positiveBestMetrics"].pop(index)
|
336
|
-
|
337
|
-
def remove_sensitivity_negativeBestMetrics(self, index):
|
338
|
-
self.arguments["sensitivity_negativeBestMetrics"].pop(index)
|
339
|
-
|
340
327
|
def remove_step(self, index):
|
341
|
-
self.steps.pop(index)
|
328
|
+
self._data[self._mode_sv.get()][self._mode_sv.get()]["steps"].pop(index)
|
342
329
|
|
343
330
|
def get_project_data(self):
|
344
|
-
return self.
|
331
|
+
return self._project_data
|
345
332
|
|
346
333
|
def set_path(self, filename):
|
347
334
|
file_name = filename.split("/")[-1].replace(".json", "")
|
348
335
|
path = filename.replace(file_name + ".json", "")
|
349
|
-
self.
|
350
|
-
self.
|
336
|
+
self._project_data["path"] = path
|
337
|
+
self._project_data["name"] = file_name
|
351
338
|
|
352
|
-
def
|
353
|
-
return self.
|
339
|
+
def get_data(self):
|
340
|
+
return self._data[self._mode_sv.get()]
|
354
341
|
|
355
342
|
def get_steps(self):
|
356
|
-
return self.steps
|
343
|
+
return self._data[self._mode_sv.get()]["steps"]
|
344
|
+
|
345
|
+
def get_mode(self):
|
346
|
+
return self._mode_sv.get()
|
347
|
+
|
348
|
+
def get_mode_sv(self):
|
349
|
+
return self._mode_sv
|
350
|
+
|
351
|
+
def get_service_modes(self):
|
352
|
+
return self._service_modes
|
353
|
+
|
354
|
+
def get_list(self, list_name):
|
355
|
+
return self._data[self._mode_sv.get()][list_name]
|
356
|
+
|
357
|
+
def get(self, key):
|
358
|
+
return self._data[self._mode_sv.get()][key]
|
359
|
+
|
360
|
+
def set_data(self, key, value):
|
361
|
+
self._data[self._mode_sv.get()][key] = value
|
362
|
+
|
363
|
+
def set_var(self, key, value):
|
364
|
+
self._data[self._mode_sv.get()][key].set(value)
|
357
365
|
|
358
366
|
def get_all_as_json(self):
|
359
|
-
obj = {"arguments": self.
|
367
|
+
obj = {"arguments": self._data, "steps": self._data[self._mode_sv.get()]["steps"]}
|
360
368
|
return obj
|
361
369
|
|
362
|
-
def
|
363
|
-
self.
|
364
|
-
|
365
|
-
def get_service_parameters(self):
|
366
|
-
return self.service_parameters
|
370
|
+
def get_project_folder(self):
|
371
|
+
return os.path.join(self._project_data['path'], self._project_data['name'])
|
367
372
|
|
373
|
+
"""
|
368
374
|
def get_metrics(self):
|
369
375
|
|
370
|
-
self.
|
376
|
+
self._data["url"].set(self._data["urls"][self._data["mode"].get()].get())
|
371
377
|
|
372
378
|
result = {}
|
373
379
|
result['arguments'] = {}
|
374
|
-
result['
|
380
|
+
result['hyperparameters'] = []
|
375
381
|
result['service_parameters'] = []
|
376
382
|
result['service_parameters'] = {}
|
377
|
-
result['project_data'] = self.
|
378
|
-
for key, value in self.
|
383
|
+
result['project_data'] = self._project_data
|
384
|
+
for key, value in self._data.items():
|
379
385
|
if key == 'url' or key == 'mode':
|
380
386
|
result['arguments'][key] = value.get()
|
381
387
|
elif key == 'files':
|
@@ -386,16 +392,16 @@ class OptionManager():
|
|
386
392
|
result['arguments'][key] = []
|
387
393
|
for obj in value:
|
388
394
|
result['arguments'][key].append({'name': obj['name'].get(), 'value': obj['value'].get()})
|
389
|
-
elif key == "
|
390
|
-
#result['
|
395
|
+
elif key == "hyperparameters":
|
396
|
+
#result['hyperparameters'][key] = []
|
391
397
|
for obj in value:
|
392
|
-
result['
|
398
|
+
result['hyperparameters'].append({'name': obj['name'].get(), 'value': obj['value'].get()})
|
393
399
|
elif key == "service_parameters":
|
394
400
|
#result['service_parameters'][key] = []
|
395
401
|
for obj in value:
|
396
402
|
result['service_parameters'].append({'name': obj['name'].get(), 'value': obj['value'].get()})
|
397
403
|
result['steps'] = []
|
398
|
-
for step in self.steps:
|
404
|
+
for step in self._data[self._mode_sv.get()]["steps"]:
|
399
405
|
step_result = {}
|
400
406
|
#step_result['name'] = step['name'].get()
|
401
407
|
#step_result['open'] = step['open']
|
@@ -427,16 +433,9 @@ class OptionManager():
|
|
427
433
|
'calibration_strategy': param['calibration_strategy'].get()
|
428
434
|
}
|
429
435
|
)
|
430
|
-
#except ValueError:
|
431
|
-
# step_result['param'].append(
|
432
|
-
# {
|
433
|
-
# 'name': param['name'].get(),
|
434
|
-
# 'bounds': (param['bounds'][0].get(),
|
435
|
-
# param['bounds'][1].get())
|
436
|
-
# }
|
437
|
-
# )
|
438
436
|
step_result['objfunc'] = []
|
439
437
|
for objfunc in step['objfunc']:
|
440
438
|
step_result['objfunc'].append({'name': objfunc['name'].get(), 'of': objfunc['of'].get(), 'weight': float(objfunc['weight'].get()), 'data': (objfunc['data'][0].get(), objfunc['data'][1].get())})
|
441
439
|
result['steps'].append(step_result)
|
442
440
|
return result
|
441
|
+
"""
|