mg-pso-gui 0.2.95__tar.gz → 0.2.96__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 (84) hide show
  1. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/PKG-INFO +1 -1
  2. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mg_pso_gui.egg-info/PKG-INFO +1 -1
  3. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/HomePage.py +9 -0
  4. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/SetupTab/FunctionsList.py +24 -21
  5. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/PSORunner.py +24 -2
  6. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/setup.py +1 -1
  7. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mg_pso_gui.egg-info/SOURCES.txt +0 -0
  8. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mg_pso_gui.egg-info/dependency_links.txt +0 -0
  9. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mg_pso_gui.egg-info/entry_points.txt +0 -0
  10. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mg_pso_gui.egg-info/requires.txt +0 -0
  11. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mg_pso_gui.egg-info/top_level.txt +0 -0
  12. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/__init__.py +0 -0
  13. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/General/NoticeWindow.py +0 -0
  14. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/General/ParameterView.py +0 -0
  15. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/General/__init__.py +0 -0
  16. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/OptionManager.py +0 -0
  17. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/OptionManager_backup.py +0 -0
  18. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/PlatformTab/PlatformTab.py +0 -0
  19. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/PlatformTab/__init__.py +0 -0
  20. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/RunTab/OptimalParameterView.py +0 -0
  21. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/RunTab/RunTab.py +0 -0
  22. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/RunTab/__init__.py +0 -0
  23. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/SetupTab/BoundsEditorWindow.py +0 -0
  24. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/SetupTab/BoundsList.py +0 -0
  25. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/SetupTab/CustomFunctionEditorWindow.py +0 -0
  26. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/SetupTab/CustomFunctionMetrics.py +0 -0
  27. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/SetupTab/ListEditor.py +0 -0
  28. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/SetupTab/ListParametersView.py +0 -0
  29. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/SetupTab/OverrideParameterMetrics.py +0 -0
  30. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/SetupTab/OverrideParameterWindow.py +0 -0
  31. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/SetupTab/SamplingListView.py +0 -0
  32. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/SetupTab/SamplingNameListWindow.py +0 -0
  33. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/SetupTab/SetupTab.py +0 -0
  34. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/SetupTab/StepView.py +0 -0
  35. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/SetupTab/__init__.py +0 -0
  36. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/VisualizeTab/MatrixEditor.py +0 -0
  37. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/VisualizeTab/SideBar.py +0 -0
  38. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/VisualizeTab/VisualizeTab.py +0 -0
  39. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/VisualizeTab/__init__.py +0 -0
  40. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/__init__.py +0 -0
  41. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/defaults/__init__.py +0 -0
  42. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/defaults/optimization.json +0 -0
  43. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/defaults/sampling.json +0 -0
  44. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/defaults/sensitivity.json +0 -0
  45. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/images/collapse.png +0 -0
  46. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/images/down.png +0 -0
  47. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/images/expand.png +0 -0
  48. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/images/play.png +0 -0
  49. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/images/plus.png +0 -0
  50. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/images/refresh.png +0 -0
  51. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/images/refresh_hd.png +0 -0
  52. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/images/stop.png +0 -0
  53. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/images/test.png +0 -0
  54. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/images/trash.png +0 -0
  55. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/images/up.png +0 -0
  56. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/gui/messages/welcome.txt +0 -0
  57. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/mgpsogui.py +0 -0
  58. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/start.yaml +0 -0
  59. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/CTkToolTip/__init__.py +0 -0
  60. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/CTkToolTip/ctk_tooltip.py +0 -0
  61. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/GraphGenerator.py +0 -0
  62. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/__init__.py +0 -0
  63. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/debug.py +0 -0
  64. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/helpers.py +0 -0
  65. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/__init__.py +0 -0
  66. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/pso/__init__.py +0 -0
  67. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/pso/csip_access.py +0 -0
  68. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/pso/pso.py +0 -0
  69. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/sampling/__init__.py +0 -0
  70. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/sampling/halton/__init__.py +0 -0
  71. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/sampling/halton/halton.py +0 -0
  72. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/sampling/halton/prime.py +0 -0
  73. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/sampling/random/__init__.py +0 -0
  74. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/sampling/random/random_sampler.py +0 -0
  75. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/sampling/sample_trace_writer.py +0 -0
  76. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/sampling/sampler_task.py +0 -0
  77. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/sampling/sampling.py +0 -0
  78. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/utils/__init__.py +0 -0
  79. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/utils/plot/__init__.py +0 -0
  80. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/utils/plot/cost_steps.py +0 -0
  81. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/utils/trace_writer.py +0 -0
  82. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/recosu/utils/utils.py +0 -0
  83. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/mgpsogui/util/sampler_test_driver.py +0 -0
  84. {mg_pso_gui-0.2.95 → mg_pso_gui-0.2.96}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mg-pso-gui
3
- Version: 0.2.95
3
+ Version: 0.2.96
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.95
3
+ Version: 0.2.96
4
4
  Summary: GUI for MG-PSO
5
5
  Author: Robert Cordingly
6
6
  Author-email: <rcording@uw.ed>
@@ -490,6 +490,15 @@ class App(customtkinter.CTk):
490
490
  if not os.path.exists(folder):
491
491
  os.makedirs(folder)
492
492
 
493
+ # Check if crash.txt exists in the folder
494
+ if (os.path.exists(os.path.join(folder, 'crash.txt'))):
495
+ with open(os.path.join(folder, 'crash.txt'), "r") as f:
496
+ message = f.read()
497
+ NW(title="Error Occurred!", message=message)
498
+ # Rename crash.txt to crash_read.txt
499
+ os.rename(os.path.join(folder, 'crash.txt'), os.path.join(folder, 'crash_read.txt'))
500
+ self.stop()
501
+
493
502
  while True:
494
503
  try:
495
504
  stdout_line = stdout_queue.get_nowait()
@@ -43,6 +43,8 @@ class FunctionsList(CTkFrame):
43
43
  self.containerFrame.grid(row=0, column=0, padx=(5, 5), pady=(5, 5), sticky="nsew")
44
44
  self.containerFrame.grid_columnconfigure((0, 1), weight=1)
45
45
 
46
+ mode = self.option_manager.get_mode()
47
+
46
48
  row = 1
47
49
 
48
50
  funcs = self.option_manager.get_steps()[self.step_index]["objective_functions"]
@@ -56,23 +58,23 @@ class FunctionsList(CTkFrame):
56
58
 
57
59
  row += 1
58
60
 
59
- columns = ["absdiff",
60
- "absdifflog",
61
- "ave",
62
- "bias",
63
- "fhf",
64
- "ioa",
65
- "ioa2",
61
+ columns = ["absdiff (not supported)",
62
+ "absdifflog (not supported)",
63
+ "ave (not supported)",
64
+ "bias (not supported)",
65
+ "fhf (not supported)",
66
+ "ioa (not supported)",
67
+ "ioa2 (not supported)",
66
68
  "kge",
67
- "kge09",
68
- "mns",
69
- "mse",
69
+ "kge09 (not supported)",
70
+ "mns (not supported)",
71
+ "mse (not supported)",
70
72
  "ns",
71
- "ns2log",
73
+ "ns2log (not supported)",
72
74
  "nslog1p",
73
- "nslog2",
75
+ "nslog2 (not supported)",
74
76
  "pbias",
75
- "pmcc",
77
+ "pmcc (not supported)",
76
78
  "rmse",
77
79
  "trmse",
78
80
  "custom"]
@@ -105,14 +107,15 @@ class FunctionsList(CTkFrame):
105
107
 
106
108
  row += 1
107
109
 
108
- CTkLabel(self.containerFrame, text="Observed and Simulated Data:").grid(row=row, column=0, columnspan=3, padx=(5, 5), pady=(5, 5), sticky="nsew")
109
-
110
- row += 1
111
-
112
- CTkEntry(self.containerFrame, textvariable=func["data_observed"]).grid(row=row, column=0, columnspan=3, padx=(5, 5), pady=(5, 5), sticky="nsew")
113
- row += 1
114
- CTkEntry(self.containerFrame, textvariable=func["data_simulated"]).grid(row=row, column=0, columnspan=3, padx=(5, 5), pady=(5, 5), sticky="nsew")
115
- row += 1
110
+ if mode != "Sensitive Analysis":
111
+ CTkLabel(self.containerFrame, text="Observed and Simulated Data:").grid(row=row, column=0, columnspan=3, padx=(5, 5), pady=(5, 5), sticky="nsew")
112
+
113
+ row += 1
114
+
115
+ CTkEntry(self.containerFrame, textvariable=func["data_observed"]).grid(row=row, column=0, columnspan=3, padx=(5, 5), pady=(5, 5), sticky="nsew")
116
+ row += 1
117
+ CTkEntry(self.containerFrame, textvariable=func["data_simulated"]).grid(row=row, column=0, columnspan=3, padx=(5, 5), pady=(5, 5), sticky="nsew")
118
+ row += 1
116
119
 
117
120
  if self.edit_mode:
118
121
  remove_func = lambda index=index: (self.clear(), self.option_manager.remove_function(self.step_index, index), self.render())
@@ -14,6 +14,19 @@ import shutil
14
14
  import json
15
15
  import numpy as np
16
16
 
17
+ ZERO_BEST = [
18
+ 'rmse',
19
+ 'trmse',
20
+ 'pbias'
21
+ ]
22
+
23
+ POSITIVE_BEST = [
24
+ 'kge',
25
+ 'nslog',
26
+ 'nslog1p',
27
+ 'ns'
28
+ ]
29
+
17
30
  def enqueue_output(out, queue):
18
31
  for line in iter(out.readline, b''):
19
32
  queue.put(line)
@@ -378,6 +391,15 @@ def run_sensitivity_analysis(data, folder, results_queue):
378
391
  for param in output_steps[0]['param']:
379
392
  parameters.append(param['name'])
380
393
 
394
+ positive_best = []
395
+ zero_best = []
396
+
397
+ for obj in output_steps[0]['objfunc']:
398
+ if obj['of'] in POSITIVE_BEST:
399
+ positive_best.append(obj['of'])
400
+ elif obj['of'] in ZERO_BEST:
401
+ zero_best.append(obj['of'])
402
+
381
403
  request_json = {
382
404
  "metainfo": {
383
405
  "service_url": None,
@@ -392,11 +414,11 @@ def run_sensitivity_analysis(data, folder, results_queue):
392
414
  },
393
415
  {
394
416
  "name": "positiveBestMetrics",
395
- "value": ["ns","kge","mns","kge09","nslog2"]
417
+ "value": positive_best
396
418
  },
397
419
  {
398
420
  "name": "zeroBestMetrics",
399
- "value": ["pbias","rmse"]
421
+ "value": zero_best
400
422
  }
401
423
  ]
402
424
  }
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
  import codecs
3
3
  import os
4
4
 
5
- VERSION = '0.2.95'
5
+ VERSION = '0.2.96'
6
6
  DESCRIPTION = 'GUI for MG-PSO'
7
7
  LONG_DESCRIPTION = open('../README.md').read()
8
8
 
File without changes