workbench 0.8.234__py3-none-any.whl → 0.8.236__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.
- workbench/algorithms/dataframe/smart_aggregator.py +17 -12
- workbench/api/endpoint.py +13 -4
- workbench/cached/cached_model.py +2 -2
- workbench/core/artifacts/endpoint_core.py +30 -5
- workbench/model_script_utils/model_script_utils.py +225 -0
- workbench/model_script_utils/uq_harness.py +39 -21
- workbench/model_scripts/chemprop/chemprop.template +29 -14
- workbench/model_scripts/chemprop/generated_model_script.py +35 -18
- workbench/model_scripts/chemprop/model_script_utils.py +225 -0
- workbench/model_scripts/pytorch_model/generated_model_script.py +34 -20
- workbench/model_scripts/pytorch_model/model_script_utils.py +225 -0
- workbench/model_scripts/pytorch_model/pytorch.template +28 -14
- workbench/model_scripts/pytorch_model/uq_harness.py +39 -21
- workbench/model_scripts/xgb_model/generated_model_script.py +35 -22
- workbench/model_scripts/xgb_model/model_script_utils.py +225 -0
- workbench/model_scripts/xgb_model/uq_harness.py +39 -21
- workbench/model_scripts/xgb_model/xgb_model.template +29 -18
- workbench/themes/dark/custom.css +29 -0
- workbench/themes/light/custom.css +29 -0
- workbench/themes/midnight_blue/custom.css +28 -0
- workbench/utils/model_utils.py +9 -0
- workbench/utils/theme_manager.py +95 -0
- workbench/web_interface/components/component_interface.py +3 -0
- workbench/web_interface/components/plugin_interface.py +26 -0
- workbench/web_interface/components/plugins/confusion_matrix.py +14 -8
- workbench/web_interface/components/plugins/model_plot.py +156 -0
- workbench/web_interface/components/plugins/scatter_plot.py +9 -2
- workbench/web_interface/components/plugins/shap_summary_plot.py +12 -4
- workbench/web_interface/components/settings_menu.py +10 -49
- {workbench-0.8.234.dist-info → workbench-0.8.236.dist-info}/METADATA +1 -1
- {workbench-0.8.234.dist-info → workbench-0.8.236.dist-info}/RECORD +35 -35
- workbench/web_interface/components/model_plot.py +0 -75
- {workbench-0.8.234.dist-info → workbench-0.8.236.dist-info}/WHEEL +0 -0
- {workbench-0.8.234.dist-info → workbench-0.8.236.dist-info}/entry_points.txt +0 -0
- {workbench-0.8.234.dist-info → workbench-0.8.236.dist-info}/licenses/LICENSE +0 -0
- {workbench-0.8.234.dist-info → workbench-0.8.236.dist-info}/top_level.txt +0 -0
|
@@ -100,74 +100,35 @@ class SettingsMenu:
|
|
|
100
100
|
caret=False,
|
|
101
101
|
align_end=True,
|
|
102
102
|
),
|
|
103
|
-
#
|
|
104
|
-
dcc.Store(id=f"{component_id}-dummy", data=None),
|
|
105
|
-
# Store to trigger checkmark update on load
|
|
103
|
+
# Store to trigger checkmark update on load and theme change
|
|
106
104
|
dcc.Store(id=f"{component_id}-init", data=True),
|
|
107
105
|
],
|
|
108
106
|
id=component_id,
|
|
109
107
|
)
|
|
110
108
|
|
|
111
|
-
|
|
112
|
-
def get_clientside_callback_code(component_id: str) -> str:
|
|
109
|
+
def get_clientside_callback_code(self) -> str:
|
|
113
110
|
"""Get the JavaScript code for the theme selection clientside callback.
|
|
114
111
|
|
|
115
|
-
Args:
|
|
116
|
-
component_id (str): The ID prefix used in create_component.
|
|
117
|
-
|
|
118
112
|
Returns:
|
|
119
113
|
str: JavaScript code for the clientside callback.
|
|
120
114
|
"""
|
|
121
|
-
return
|
|
122
|
-
function(n_clicks_list, ids) {
|
|
123
|
-
// Find which button was clicked
|
|
124
|
-
if (!n_clicks_list || n_clicks_list.every(n => !n)) {
|
|
125
|
-
return window.dash_clientside.no_update;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
// Find the clicked theme
|
|
129
|
-
let clickedTheme = null;
|
|
130
|
-
for (let i = 0; i < n_clicks_list.length; i++) {
|
|
131
|
-
if (n_clicks_list[i]) {
|
|
132
|
-
clickedTheme = ids[i].theme;
|
|
133
|
-
break;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
if (clickedTheme) {
|
|
138
|
-
// Store in localStorage
|
|
139
|
-
localStorage.setItem('wb_theme', clickedTheme);
|
|
140
|
-
// Set cookie for Flask to read on reload
|
|
141
|
-
document.cookie = `wb_theme=${clickedTheme}; path=/; max-age=31536000`;
|
|
142
|
-
// Reload the page to apply the new theme
|
|
143
|
-
window.location.reload();
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
return window.dash_clientside.no_update;
|
|
147
|
-
}
|
|
148
|
-
"""
|
|
115
|
+
return self.tm.get_theme_switch_js()
|
|
149
116
|
|
|
150
117
|
@staticmethod
|
|
151
118
|
def get_checkmark_callback_code() -> str:
|
|
152
|
-
"""Get the JavaScript code to update checkmarks based on
|
|
119
|
+
"""Get the JavaScript code to update checkmarks based on current theme.
|
|
153
120
|
|
|
154
121
|
Returns:
|
|
155
122
|
str: JavaScript code for the checkmark update callback.
|
|
156
123
|
"""
|
|
157
124
|
return """
|
|
158
|
-
function(
|
|
159
|
-
//
|
|
160
|
-
let currentTheme =
|
|
125
|
+
function(theme, ids) {
|
|
126
|
+
// If theme is a string (from theme switch), use it directly
|
|
127
|
+
let currentTheme = (typeof theme === 'string') ? theme : null;
|
|
128
|
+
|
|
129
|
+
// Otherwise, get from localStorage
|
|
161
130
|
if (!currentTheme) {
|
|
162
|
-
|
|
163
|
-
const cookies = document.cookie.split(';');
|
|
164
|
-
for (let cookie of cookies) {
|
|
165
|
-
const [name, value] = cookie.trim().split('=');
|
|
166
|
-
if (name === 'wb_theme') {
|
|
167
|
-
currentTheme = value;
|
|
168
|
-
break;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
131
|
+
currentTheme = localStorage.getItem('wb_theme');
|
|
171
132
|
}
|
|
172
133
|
|
|
173
134
|
// Return checkmarks for each theme
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: workbench
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.236
|
|
4
4
|
Summary: Workbench: A Dashboard and Python API for creating and deploying AWS SageMaker Model Pipelines
|
|
5
5
|
Author-email: SuperCowPowers LLC <support@supercowpowers.com>
|
|
6
6
|
License: MIT License
|
|
@@ -8,7 +8,7 @@ workbench/algorithms/dataframe/feature_space_proximity.py,sha256=FYsQd5Lf5CrSWi-
|
|
|
8
8
|
workbench/algorithms/dataframe/fingerprint_proximity.py,sha256=EJhbiio99-6ZyymswFD69pmLQa2UECclvt2-mWfp3-M,20174
|
|
9
9
|
workbench/algorithms/dataframe/projection_2d.py,sha256=UgdAWYXFxCdMGZpWSbRSPbjZAGjaumP7va1FyUnwiIA,9114
|
|
10
10
|
workbench/algorithms/dataframe/proximity.py,sha256=Qbgs9uhfQTceXWXf-fc26aYMPsQrZLOHuFUm8KqQHmc,13387
|
|
11
|
-
workbench/algorithms/dataframe/smart_aggregator.py,sha256=
|
|
11
|
+
workbench/algorithms/dataframe/smart_aggregator.py,sha256=XKWAQEbodVUo6efvR_vNPBRplE4xtiD8kAZCN63n-gk,6813
|
|
12
12
|
workbench/algorithms/dataframe/storage/aggregation.py,sha256=VuTb7A6Vh6IS5djZeItvOLnnEOlf7tzMQ8OaYIuftvU,2852
|
|
13
13
|
workbench/algorithms/dataframe/storage/feature_resolution.py,sha256=w_iLf8EFTg7Jc5laH-bsq8MEtZVqcg05W-GihCqR-r4,9450
|
|
14
14
|
workbench/algorithms/dataframe/storage/feature_spider.py,sha256=uIZ4JHIKuhpy08wBFReSrohb5DGxx8vGroHUbjPm1jE,14353
|
|
@@ -35,7 +35,7 @@ workbench/api/__init__.py,sha256=1JAQKD82biia4h07BRA9ytjxuJUYQqgHvkf8FwpnlVQ,119
|
|
|
35
35
|
workbench/api/compound.py,sha256=kf5EaM5qjWwsZutcxqj9IC_MPnDV1uVHDMns9OA_GOo,2545
|
|
36
36
|
workbench/api/data_source.py,sha256=Ngz36YZWxFfpJbmURhM1LQPYjh5kdpZNGo6_fCRePbA,8321
|
|
37
37
|
workbench/api/df_store.py,sha256=1qSYM3Xb4MwMMTMaF3CX0hOCEzhIbnra5Deivg4cryk,3014
|
|
38
|
-
workbench/api/endpoint.py,sha256=
|
|
38
|
+
workbench/api/endpoint.py,sha256=CCMOnEIGzwG4LlTjs6ulOR6Wqa3XHCeXRLFfC2JgT8I,4255
|
|
39
39
|
workbench/api/feature_set.py,sha256=-21ztp7JDqs7CKF3KtNdPoXppkiDqfb4JVK8xBK9rIY,10966
|
|
40
40
|
workbench/api/graph_store.py,sha256=LremJyPrQFgsHb7hxsctuCsoxx3p7TKtaY5qALHe6pc,4372
|
|
41
41
|
workbench/api/meta.py,sha256=1JxCpLn4JENiWUJaVjGgDL7WqhIy-s1swUbBzprI-uY,8595
|
|
@@ -49,7 +49,7 @@ workbench/cached/cached_data_source.py,sha256=A0o4H9g1aEms8HkOHWnb46vJ5fx6ebs1aC
|
|
|
49
49
|
workbench/cached/cached_endpoint.py,sha256=HxS8V9MF43uSy-Yu-pAs15PbNeq6u_JGXU332DDIQMc,2630
|
|
50
50
|
workbench/cached/cached_feature_set.py,sha256=vJe2WUTeIyMAvCM1Jp-sPLbX6S0Y7jv51FAhhMgrSDE,2780
|
|
51
51
|
workbench/cached/cached_meta.py,sha256=wOuqWiXoJPxl2HUlslUvyrUQigrzXWwgMYZFQ9y5k5c,12256
|
|
52
|
-
workbench/cached/cached_model.py,sha256=
|
|
52
|
+
workbench/cached/cached_model.py,sha256=k5dJAy8AxLkOa17dw7WfuzcVPEae3X6L_uim3bzd6gA,5684
|
|
53
53
|
workbench/cached/cached_pipeline.py,sha256=QOVnEKu5RbIdlNpJUi-0Ebh0_-C68RigSPwKh4dvZTM,1948
|
|
54
54
|
workbench/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
55
|
workbench/core/artifacts/__init__.py,sha256=ukcgbYlI9m99bzwaBNO01K1h0-cQkzsbh_jT_GyQ-LY,1034
|
|
@@ -60,7 +60,7 @@ workbench/core/artifacts/data_capture_core.py,sha256=q8f79rRTYiZ7T4IQRWXl8ZvPpcv
|
|
|
60
60
|
workbench/core/artifacts/data_source_abstract.py,sha256=5IRCzFVK-17cd4NXPMRfx99vQAmQ0WHE5jcm5RfsVTg,10619
|
|
61
61
|
workbench/core/artifacts/data_source_factory.py,sha256=YL_tA5fsgubbB3dPF6T4tO0rGgz-6oo3ge4i_YXVC-M,2380
|
|
62
62
|
workbench/core/artifacts/df_store_core.py,sha256=AueNr_JvuLLu_ByE7cb3u-isH9u0Q7cMP-UCgCX-Ctg,3536
|
|
63
|
-
workbench/core/artifacts/endpoint_core.py,sha256=
|
|
63
|
+
workbench/core/artifacts/endpoint_core.py,sha256=e9Fs07D2SXvLabaywTndX8R1iyO-WjHoNW4A80UUiSs,55694
|
|
64
64
|
workbench/core/artifacts/feature_set_core.py,sha256=IjSUpxpj2S611uo5LmnOK-aH3CZhfbC5ztC02PQ5gqE,42128
|
|
65
65
|
workbench/core/artifacts/model_core.py,sha256=wPkpdRlxnAXMqsDtJGPotGFO146Hm7NCfYbImHwZo9c,52343
|
|
66
66
|
workbench/core/artifacts/monitor_core.py,sha256=M307yz7tEzOEHgv-LmtVy9jKjSbM98fHW3ckmNYrwlU,27897
|
|
@@ -127,13 +127,13 @@ workbench/core/views/training_view.py,sha256=7HwhbQhDBhT3Zo_gssS-b4eueJ0h9nqqT8Y
|
|
|
127
127
|
workbench/core/views/view.py,sha256=DvmEA1xdvL980GET_cnbmHzqSy6IhlNaZcoQnVTtYis,13534
|
|
128
128
|
workbench/core/views/view_utils.py,sha256=CwOlpqXpumCr6REi-ey7Qjz5_tpg-s4oWHmlOVu8POQ,12270
|
|
129
129
|
workbench/core/views/storage/mdq_view.py,sha256=qf_ep1KwaXOIfO930laEwNIiCYP7VNOqjE3VdHfopRE,5195
|
|
130
|
-
workbench/model_script_utils/model_script_utils.py,sha256=
|
|
130
|
+
workbench/model_script_utils/model_script_utils.py,sha256=aM3ZaJxyMy7smokIF83fXUx3YSzLs8BNNMLfJDCoe8I,21231
|
|
131
131
|
workbench/model_script_utils/pytorch_utils.py,sha256=vr8ybK45U0H8Jhjb5qx6xbJNozdcl7bVqubknDwh6U0,13704
|
|
132
|
-
workbench/model_script_utils/uq_harness.py,sha256=
|
|
132
|
+
workbench/model_script_utils/uq_harness.py,sha256=Qv5UQdjn72Ssa3NWGGsnSB_wDp0au2TXVauFK81Ebr0,11498
|
|
133
133
|
workbench/model_scripts/script_generation.py,sha256=Sv0OJdASNKk1KXr8goiZWUL5W7i8G8gBb_R_OTb8caI,8257
|
|
134
|
-
workbench/model_scripts/chemprop/chemprop.template,sha256=
|
|
135
|
-
workbench/model_scripts/chemprop/generated_model_script.py,sha256=
|
|
136
|
-
workbench/model_scripts/chemprop/model_script_utils.py,sha256=
|
|
134
|
+
workbench/model_scripts/chemprop/chemprop.template,sha256=9Rb4J2_FVG2avqONLY-_5rZc-6PwSykvn7395bm0EUk,36473
|
|
135
|
+
workbench/model_scripts/chemprop/generated_model_script.py,sha256=awO8O1Arbpct8c3QoUjABWQ2ZbVus-ie8dNRLo1UiD4,36498
|
|
136
|
+
workbench/model_scripts/chemprop/model_script_utils.py,sha256=aM3ZaJxyMy7smokIF83fXUx3YSzLs8BNNMLfJDCoe8I,21231
|
|
137
137
|
workbench/model_scripts/chemprop/requirements.txt,sha256=2IBHZZNYqhX9Ed7AmRVgN06tO3EHeBbN2EM8-tjWZhs,216
|
|
138
138
|
workbench/model_scripts/custom_models/chem_info/Readme.md,sha256=mH1lxJ4Pb7F5nBnVXaiuxpi8zS_yjUw_LBJepVKXhlA,574
|
|
139
139
|
workbench/model_scripts/custom_models/chem_info/fingerprints.py,sha256=ECDzjZs4wSx3ZvAQipMl2NEqI2isCWHLYBv7mp0NVgk,6939
|
|
@@ -160,21 +160,21 @@ workbench/model_scripts/ensemble_xgb/ensemble_xgb.template,sha256=lMEx0IkawcpTI5
|
|
|
160
160
|
workbench/model_scripts/ensemble_xgb/requirements.txt,sha256=jWlGc7HH7vqyukTm38LN4EyDi8jDUPEay4n45z-30uc,104
|
|
161
161
|
workbench/model_scripts/meta_model/generated_model_script.py,sha256=ncPrHd9-R8l_98vAiuTUJ92C9PKpEgAtpIrmd7TuqSQ,8341
|
|
162
162
|
workbench/model_scripts/meta_model/meta_model.template,sha256=viz-AKVq3YRwOUBt8-rUO1TwdEPFzyP7nnifqcIJurw,8244
|
|
163
|
-
workbench/model_scripts/pytorch_model/generated_model_script.py,sha256=
|
|
164
|
-
workbench/model_scripts/pytorch_model/model_script_utils.py,sha256=
|
|
165
|
-
workbench/model_scripts/pytorch_model/pytorch.template,sha256=
|
|
163
|
+
workbench/model_scripts/pytorch_model/generated_model_script.py,sha256=JfCPF7lFhnKVbOBmNyqiFXcynXltpfEm_e_BQwLeiAg,27038
|
|
164
|
+
workbench/model_scripts/pytorch_model/model_script_utils.py,sha256=aM3ZaJxyMy7smokIF83fXUx3YSzLs8BNNMLfJDCoe8I,21231
|
|
165
|
+
workbench/model_scripts/pytorch_model/pytorch.template,sha256=FZYI4D-u5lDkJSyvgJYVhtvt9PnfL_pEVGtBYv64sNU,22767
|
|
166
166
|
workbench/model_scripts/pytorch_model/pytorch_utils.py,sha256=vr8ybK45U0H8Jhjb5qx6xbJNozdcl7bVqubknDwh6U0,13704
|
|
167
167
|
workbench/model_scripts/pytorch_model/requirements.txt,sha256=ES7YehHEL4E5oV8FScHm3oNQmkMI4ODgbC1fSbaY7T4,183
|
|
168
|
-
workbench/model_scripts/pytorch_model/uq_harness.py,sha256=
|
|
168
|
+
workbench/model_scripts/pytorch_model/uq_harness.py,sha256=Qv5UQdjn72Ssa3NWGGsnSB_wDp0au2TXVauFK81Ebr0,11498
|
|
169
169
|
workbench/model_scripts/scikit_learn/generated_model_script.py,sha256=xhQIglpAgPRCH9iwI3wI0N0V6p9AgqW0mVOMuSXzUCk,17187
|
|
170
170
|
workbench/model_scripts/scikit_learn/requirements.txt,sha256=aVvwiJ3LgBUhM_PyFlb2gHXu_kpGPho3ANBzlOkfcvs,107
|
|
171
171
|
workbench/model_scripts/scikit_learn/scikit_learn.template,sha256=QQvqx-eX9ZTbYmyupq6R6vIQwosmsmY_MRBPaHyfjdk,12586
|
|
172
172
|
workbench/model_scripts/uq_models/generated_model_script.py,sha256=kgcIWghY6eazcBWS77MukhQUyYFmfJcS8SQ8RmjM82I,9006
|
|
173
|
-
workbench/model_scripts/xgb_model/generated_model_script.py,sha256=
|
|
174
|
-
workbench/model_scripts/xgb_model/model_script_utils.py,sha256=
|
|
173
|
+
workbench/model_scripts/xgb_model/generated_model_script.py,sha256=Qq6SBjnBbcryzssILCm1CjucEGbBlBqruyqdJTgX9HI,23354
|
|
174
|
+
workbench/model_scripts/xgb_model/model_script_utils.py,sha256=aM3ZaJxyMy7smokIF83fXUx3YSzLs8BNNMLfJDCoe8I,21231
|
|
175
175
|
workbench/model_scripts/xgb_model/requirements.txt,sha256=jWlGc7HH7vqyukTm38LN4EyDi8jDUPEay4n45z-30uc,104
|
|
176
|
-
workbench/model_scripts/xgb_model/uq_harness.py,sha256=
|
|
177
|
-
workbench/model_scripts/xgb_model/xgb_model.template,sha256=
|
|
176
|
+
workbench/model_scripts/xgb_model/uq_harness.py,sha256=Qv5UQdjn72Ssa3NWGGsnSB_wDp0au2TXVauFK81Ebr0,11498
|
|
177
|
+
workbench/model_scripts/xgb_model/xgb_model.template,sha256=CfREX3N_lf4lg8l-w004jr-utiDiMkOrdHEm76MPFec,18900
|
|
178
178
|
workbench/repl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
179
179
|
workbench/repl/workbench_shell.py,sha256=RuuJVfO7pVTXWiwKGpBdDAL_fXJZfSay4KRDbhNNBXY,22309
|
|
180
180
|
workbench/resources/open_source_api.key,sha256=vi9099CjkNnZ1IXB6AQWcG83iFYn2db0iTfTlpGVA1o,432
|
|
@@ -192,15 +192,15 @@ workbench/scripts/redis_report.py,sha256=iaJSuGPyLCs6e0TMcZDoT0YyJ43xJ1u74YD8FLn
|
|
|
192
192
|
workbench/scripts/show_config.py,sha256=ff2wIKIlOktoitcrhk2r2B4I4N_ynXkEHB11l5nn0nA,548
|
|
193
193
|
workbench/scripts/training_test.py,sha256=eRqy45LcfEY2_UlnpQbrRBb8RYPWEXcEg6us1fkZ6kw,2383
|
|
194
194
|
workbench/themes/dark/base_css.url,sha256=gGaJWe9iajwbJUzr03K9AuTNouQP_prwOv5Q9lEYBVo,18
|
|
195
|
-
workbench/themes/dark/custom.css,sha256=
|
|
195
|
+
workbench/themes/dark/custom.css,sha256=LhSLCn-oBcuwOQbdrepJBv4RBjTlaEQF4-5sPPSrQnY,5975
|
|
196
196
|
workbench/themes/dark/plotly.json,sha256=M6Xo6AeH9Aw41f6Zz2qrTxO6VElrsu0Ubai7QmWC3z4,18207
|
|
197
197
|
workbench/themes/light/base_css.url,sha256=Y4c_u6Qjkt7GyQf5gvlHNCHnS8XxIzubuSmBQ8XizCQ,17
|
|
198
198
|
workbench/themes/light/branding.json,sha256=13-LMVeNETpwXlC-p-x6sWGq58gd4dF3LuGDtq147Hk,77
|
|
199
|
-
workbench/themes/light/custom.css,sha256=
|
|
199
|
+
workbench/themes/light/custom.css,sha256=5pU_ejJ3wZTto6-1YvqN6QcY_Vie6Q7NxV7EpWdAmho,7729
|
|
200
200
|
workbench/themes/light/plotly.json,sha256=jo37FWlmgiR8FYvf_s4xSOe68QdZglF1pmrB0gA7YV8,18832
|
|
201
201
|
workbench/themes/midnight_blue/base_css.url,sha256=IN-Pth07vNDtfH2r2_9m3vCkKxy-pPjIaXoD1uTmFmY,17
|
|
202
202
|
workbench/themes/midnight_blue/branding.json,sha256=DvTVjVlB8hLyYIYUHqE2COPyfOUvPV9fAApTEY24DVk,77
|
|
203
|
-
workbench/themes/midnight_blue/custom.css,sha256=
|
|
203
|
+
workbench/themes/midnight_blue/custom.css,sha256=BM0Xrxu-F5e_BewdyYCiGR5JUqMEtKDPiOTbMRpjJNc,5735
|
|
204
204
|
workbench/themes/midnight_blue/plotly.json,sha256=sCrkxD9x_faKYe8wQsfRAup1T9BSS6X6wkVLCmZdaeU,18575
|
|
205
205
|
workbench/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
206
206
|
workbench/utils/ai_compound_generator.py,sha256=8no4ufP1LJhQfPqaDHvqUYOAh1kzeDVeF_-323yo1VA,6772
|
|
@@ -234,7 +234,7 @@ workbench/utils/log_utils.py,sha256=7n1NJXO_jUX82e6LWAQug6oPo3wiPDBYsqk9gsYab_A,
|
|
|
234
234
|
workbench/utils/markdown_utils.py,sha256=0sGG71hci_vQaamfQjHj8vttj90WOzlSYZwwAAbRatY,10359
|
|
235
235
|
workbench/utils/meta_model_simulator.py,sha256=fMKZoLi_VEJohNVvbZSMvZWNdUbIpGlB6Bg6mJQW33s,20630
|
|
236
236
|
workbench/utils/metrics_utils.py,sha256=iAoKrAM4iRX8wFSjSJhfNKbbW1BqB3eI_U3wvdhUdhE,9496
|
|
237
|
-
workbench/utils/model_utils.py,sha256=
|
|
237
|
+
workbench/utils/model_utils.py,sha256=5o9aQ6ajjIGljTictAA97seCdIopcK_rHMQDrya9ut8,19777
|
|
238
238
|
workbench/utils/monitor_utils.py,sha256=kVaJ7BgUXs3VPMFYfLC03wkIV4Dq-pEhoXS0wkJFxCc,7858
|
|
239
239
|
workbench/utils/pandas_utils.py,sha256=uTUx-d1KYfjbS9PMQp2_9FogCV7xVZR6XLzU5YAGmfs,39371
|
|
240
240
|
workbench/utils/performance_utils.py,sha256=WDNvz-bOdC99cDuXl0urAV4DJ7alk_V3yzKPwvqgST4,1329
|
|
@@ -250,7 +250,7 @@ workbench/utils/shap_utils.py,sha256=FeFNRH5mJTbuHlpHyFJgjHcU5BU7UthJL1Gb5Gl8_zw
|
|
|
250
250
|
workbench/utils/shapley_values.py,sha256=3DvQz4HIPnxW42idgtuQ5vtzU-oF4_lToaWzLRjU-E4,3673
|
|
251
251
|
workbench/utils/symbols.py,sha256=PioF1yAQyOabw7kLg8nhvaZBPFe7ABkpfpPPE0qz_2k,1265
|
|
252
252
|
workbench/utils/test_data_generator.py,sha256=gqRXL7IUKG4wVfO1onflY3wg7vLkgx402_Zy3iqY7NU,11921
|
|
253
|
-
workbench/utils/theme_manager.py,sha256=
|
|
253
|
+
workbench/utils/theme_manager.py,sha256=RCuwmQnUMPD4gs13i49SOkKOUmJAbmDb0aWnic_3l18,18044
|
|
254
254
|
workbench/utils/trace_calls.py,sha256=tY4DOVMGXBh-mbUWzo1l-X9XjD0ux_qR9I1ypkjWNIQ,2092
|
|
255
255
|
workbench/utils/type_abbrev.py,sha256=3ai7ZbE8BgvdotOSb48w_BmgrEGVYvLoyzoNYH8ZuOs,1470
|
|
256
256
|
workbench/utils/workbench_cache.py,sha256=IQchxB81iR4eVggHBxUJdXxUCRkqWz1jKe5gxN3z6yc,5657
|
|
@@ -270,20 +270,19 @@ workbench/utils/chem_utils/salts.py,sha256=ZzFb6Z71Z_kMjVF-PKwHx0fn9pN9rPMj-oEY8
|
|
|
270
270
|
workbench/utils/chem_utils/sdf.py,sha256=wucyMtnmdg6onBa5N_sX6ONDE4PThJokImFxCBk22RI,10319
|
|
271
271
|
workbench/utils/chem_utils/toxicity.py,sha256=OmVvR05XjP8rLteQ0gjlC5tRh3WitjoahPnSLPhbUXQ,10195
|
|
272
272
|
workbench/utils/chem_utils/vis.py,sha256=3hFwH6fD-UQFJTuuQjJxvoHcxJHK9y5CZL67XAFapoo,12838
|
|
273
|
-
workbench/web_interface/components/component_interface.py,sha256=
|
|
273
|
+
workbench/web_interface/components/component_interface.py,sha256=Owrh3R11biZBBuwNPKbNLZbLHERs_s3_jCx-zpmDx_k,8102
|
|
274
274
|
workbench/web_interface/components/correlation_matrix.py,sha256=Lv4vRta5-TdxBsu0G8Ea7hyyR3XyPes-k5AfL6qZWEc,6376
|
|
275
275
|
workbench/web_interface/components/data_details_markdown.py,sha256=axDs6eXniglBmvFwIKjpJ5oyT-3D4FO9IcfA_cl-EJ8,9706
|
|
276
276
|
workbench/web_interface/components/endpoint_metric_plots.py,sha256=H0cXuj9UQrrh_2JvRHtq7O8pMXFXKs7o9XpzySENylw,3441
|
|
277
|
-
workbench/web_interface/components/
|
|
278
|
-
workbench/web_interface/components/plugin_interface.py,sha256=jGRq4igUTVXUT4sDqqsKKI2yjilV0ORNBQq6CjEWE84,9563
|
|
277
|
+
workbench/web_interface/components/plugin_interface.py,sha256=1O47i5gEkeP2j5sLJOXU1JP02Ltlx-L-hMpL6_Kwiko,10618
|
|
279
278
|
workbench/web_interface/components/plugin_unit_test.py,sha256=CHBGKTySRhdUSt5ERCfg09_RSGUP4OLuOQFW4W5cDtQ,7746
|
|
280
279
|
workbench/web_interface/components/regression_plot.py,sha256=k18Bd0fcH7ig6kL5GqC_dINci3_YLle_fSEM32zXtzY,3342
|
|
281
|
-
workbench/web_interface/components/settings_menu.py,sha256=
|
|
280
|
+
workbench/web_interface/components/settings_menu.py,sha256=HdMhi0Lm7s6U9c7qzQJdUfrCkPV2qWPanieKZu8ao98,5224
|
|
282
281
|
workbench/web_interface/components/violin_plots.py,sha256=3_T85hIs_R_WZpfFkSrqY2eYXmYzWsywDqsLhB7W1RQ,5320
|
|
283
282
|
workbench/web_interface/components/experiments/dashboard_metric_plots.py,sha256=DPIw13tO9XOGxA6IeRPLgl-C3XUJ2N287JkSEg73Rjg,2984
|
|
284
283
|
workbench/web_interface/components/experiments/outlier_plot.py,sha256=5yGVnVScM0TR80OjPypx_83Ksg7r5HDR3hGjpT4Ub14,3646
|
|
285
284
|
workbench/web_interface/components/plugins/ag_table.py,sha256=MUtaKNzumCOvnvmZJGY4_j6rpl-ITeYCVKrxmLDwSzM,3923
|
|
286
|
-
workbench/web_interface/components/plugins/confusion_matrix.py,sha256=
|
|
285
|
+
workbench/web_interface/components/plugins/confusion_matrix.py,sha256=gkmbAOWsZRVBoPQSav-aglDtw0Nt54YcDya9Z4OG0Vc,7387
|
|
287
286
|
workbench/web_interface/components/plugins/dashboard_status.py,sha256=4plmoiXj3dDjoQerUNpep_jfk50pI9rHvcoSP20UbE8,5832
|
|
288
287
|
workbench/web_interface/components/plugins/data_details.py,sha256=pZm1AbM_0EXQwx77qUkfyrU9MedAs4Wlkp6iOtSrUtI,11104
|
|
289
288
|
workbench/web_interface/components/plugins/endpoint_details.py,sha256=0A7g_Lx5-3XnDWOGT3YEDPNpmME_-WfYc65f-rRVjJE,3769
|
|
@@ -291,12 +290,13 @@ workbench/web_interface/components/plugins/generated_compounds.py,sha256=A6JGlkl
|
|
|
291
290
|
workbench/web_interface/components/plugins/graph_plot.py,sha256=JFzuSH_CkEmlaLAgFpzmiEpS3sXov0ycnCfP0VLsK2g,14502
|
|
292
291
|
workbench/web_interface/components/plugins/license_details.py,sha256=UyMSBGxEgdp3m9szDkDUAl_Ua8C5a4RNMdYpYCx354M,5497
|
|
293
292
|
workbench/web_interface/components/plugins/model_details.py,sha256=vBGg7_KHCJv69g-RrXcFQsmMpO7ULufGav1zz0Jb2fI,9944
|
|
293
|
+
workbench/web_interface/components/plugins/model_plot.py,sha256=Hylt6IZXMhueo-Ib4wly0asOVrAF6eQ7-9W_6rBlkYs,6433
|
|
294
294
|
workbench/web_interface/components/plugins/molecule_panel.py,sha256=xGCEI5af8F5lNId5eKUpetdQs_ahnIPdW6U7wKvbz2o,3515
|
|
295
295
|
workbench/web_interface/components/plugins/molecule_viewer.py,sha256=xavixcu4RNzh6Nj_-3-XlK09DgpNx5jGmo3wEPNftiE,4529
|
|
296
296
|
workbench/web_interface/components/plugins/pipeline_details.py,sha256=caiFIakHk-1dGGNW7wlio2X7iAm2_tCNbSjDzoRWGEk,5534
|
|
297
297
|
workbench/web_interface/components/plugins/proximity_mini_graph.py,sha256=b_YYnvLczJUhaDbrrXnyjUDYF7C4R4ufCZXtJiyRnJ0,7233
|
|
298
|
-
workbench/web_interface/components/plugins/scatter_plot.py,sha256=
|
|
299
|
-
workbench/web_interface/components/plugins/shap_summary_plot.py,sha256=
|
|
298
|
+
workbench/web_interface/components/plugins/scatter_plot.py,sha256=ZpN0BNjchczXWLhZjixbyixiZNPBljvGiaw_haLX6iw,23956
|
|
299
|
+
workbench/web_interface/components/plugins/shap_summary_plot.py,sha256=sqLyDOcKHgC1VAnrEd1TwmbGqXnG_P4BKvRd7WYzY48,9781
|
|
300
300
|
workbench/web_interface/page_views/data_sources_page_view.py,sha256=SXNUG6n_eP9i4anddEXd5E9rMRt-R2EyNR-bbe8OQK4,4673
|
|
301
301
|
workbench/web_interface/page_views/endpoints_page_view.py,sha256=EI3hA18pEn-mAPEzGAw0W-wM8qJR2j_8pQEJlbJCENk,2770
|
|
302
302
|
workbench/web_interface/page_views/feature_sets_page_view.py,sha256=BnIU_Yg0g71mg51ryuXIYaEF-SZpJELXUGhNfyXZO8o,4449
|
|
@@ -304,9 +304,9 @@ workbench/web_interface/page_views/main_page.py,sha256=DyChwOGX_KtbJ09pw2Iswofba
|
|
|
304
304
|
workbench/web_interface/page_views/models_page_view.py,sha256=M0bdC7bAzLyIaE2jviY12FF4abdMFZmg6sFuOY_LaGI,2650
|
|
305
305
|
workbench/web_interface/page_views/page_view.py,sha256=Gh6YnpOGlUejx-bHZAf5pzqoQ1H1R0OSwOpGhOBO06w,455
|
|
306
306
|
workbench/web_interface/page_views/pipelines_page_view.py,sha256=v2pxrIbsHBcYiblfius3JK766NZ7ciD2yPx0t3E5IJo,2656
|
|
307
|
-
workbench-0.8.
|
|
308
|
-
workbench-0.8.
|
|
309
|
-
workbench-0.8.
|
|
310
|
-
workbench-0.8.
|
|
311
|
-
workbench-0.8.
|
|
312
|
-
workbench-0.8.
|
|
307
|
+
workbench-0.8.236.dist-info/licenses/LICENSE,sha256=RTBoTMeEwTgEhS-n8vgQ-VUo5qig0PWVd8xFPKU6Lck,1080
|
|
308
|
+
workbench-0.8.236.dist-info/METADATA,sha256=uujaljy_KtWusibQh5-Lcyw9Z0Bv7p7R5cvDZtk9Ibo,10033
|
|
309
|
+
workbench-0.8.236.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
|
|
310
|
+
workbench-0.8.236.dist-info/entry_points.txt,sha256=t_9tY7iYku9z96qFZZtUgbWDh_nHtehXxLPLBSpAzeM,566
|
|
311
|
+
workbench-0.8.236.dist-info/top_level.txt,sha256=Dhy72zTxaA_o_yRkPZx5zw-fwumnjGaeGf0hBN3jc_w,10
|
|
312
|
+
workbench-0.8.236.dist-info/RECORD,,
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"""A Model Plot component that switches display based on model type. The plot
|
|
2
|
-
will be a confusion matrix for a classifier and a regression plot for a regressor
|
|
3
|
-
"""
|
|
4
|
-
|
|
5
|
-
from dash import dcc
|
|
6
|
-
import plotly.graph_objects as go
|
|
7
|
-
|
|
8
|
-
# Workbench Imports
|
|
9
|
-
from workbench.api import Model, ModelType
|
|
10
|
-
from workbench.web_interface.components.component_interface import ComponentInterface
|
|
11
|
-
from workbench.web_interface.components.plugins.confusion_matrix import ConfusionMatrix
|
|
12
|
-
from workbench.web_interface.components.plugins.scatter_plot import ScatterPlot
|
|
13
|
-
from workbench.utils.deprecated_utils import deprecated
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
@deprecated(version="0.9")
|
|
17
|
-
class ModelPlot(ComponentInterface):
|
|
18
|
-
"""Model Metrics Components"""
|
|
19
|
-
|
|
20
|
-
def create_component(self, component_id: str) -> dcc.Graph:
|
|
21
|
-
# Initialize an empty plot figure
|
|
22
|
-
return dcc.Graph(id=component_id, figure=self.display_text("Waiting for Data..."))
|
|
23
|
-
|
|
24
|
-
def update_properties(self, model: Model, inference_run: str) -> go.Figure:
|
|
25
|
-
"""Create a Model Plot Figure based on the model type.
|
|
26
|
-
Args:
|
|
27
|
-
model (Model): Workbench Model object
|
|
28
|
-
inference_run (str): Inference run capture Name
|
|
29
|
-
Returns:
|
|
30
|
-
go.Figure: A Plotly Figure (either a Confusion Matrix or Scatter Plot)
|
|
31
|
-
"""
|
|
32
|
-
|
|
33
|
-
# Based on the model type, we'll generate a different plot
|
|
34
|
-
if model.model_type == ModelType.CLASSIFIER:
|
|
35
|
-
return ConfusionMatrix().update_properties(model, inference_run=inference_run)[0]
|
|
36
|
-
elif model.model_type in [ModelType.REGRESSOR, ModelType.UQ_REGRESSOR]:
|
|
37
|
-
df = model.get_inference_predictions(inference_run)
|
|
38
|
-
if df is None:
|
|
39
|
-
return self.display_text("No Data")
|
|
40
|
-
|
|
41
|
-
# Grab the target(s) for this model
|
|
42
|
-
target = model.target()
|
|
43
|
-
|
|
44
|
-
# For multi-task models, match target to inference_run name or default to first
|
|
45
|
-
if isinstance(target, list):
|
|
46
|
-
target = next((t for t in target if t in inference_run), target[0])
|
|
47
|
-
|
|
48
|
-
# Compute error for coloring
|
|
49
|
-
df["error"] = abs(df["prediction"] - df[target])
|
|
50
|
-
return ScatterPlot().update_properties(
|
|
51
|
-
df,
|
|
52
|
-
color="error",
|
|
53
|
-
regression_line=True,
|
|
54
|
-
x=target,
|
|
55
|
-
y="prediction",
|
|
56
|
-
)[0]
|
|
57
|
-
else:
|
|
58
|
-
return self.display_text(f"Model Type: {model.model_type}\n\n Awesome Plot Coming Soon!")
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if __name__ == "__main__":
|
|
62
|
-
# This class takes in model details and generates a Confusion Matrix
|
|
63
|
-
from workbench.api.model import Model
|
|
64
|
-
|
|
65
|
-
m = Model("abalone-regression")
|
|
66
|
-
inference_run = "model_training"
|
|
67
|
-
|
|
68
|
-
# Instantiate the ModelPlot class
|
|
69
|
-
model_plot = ModelPlot()
|
|
70
|
-
|
|
71
|
-
# Generate the figure
|
|
72
|
-
fig = model_plot.update_properties(m, inference_run)
|
|
73
|
-
|
|
74
|
-
# Show the figure
|
|
75
|
-
fig.show()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|