workbench 0.8.224__py3-none-any.whl → 0.8.231__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/__init__.py +1 -0
- workbench/algorithms/dataframe/__init__.py +2 -0
- workbench/algorithms/dataframe/smart_aggregator.py +161 -0
- workbench/algorithms/sql/column_stats.py +0 -1
- workbench/algorithms/sql/correlations.py +0 -1
- workbench/algorithms/sql/descriptive_stats.py +0 -1
- workbench/api/meta.py +0 -1
- workbench/cached/cached_meta.py +0 -1
- workbench/cached/cached_model.py +37 -7
- workbench/core/artifacts/endpoint_core.py +12 -2
- workbench/core/artifacts/feature_set_core.py +66 -8
- workbench/core/cloud_platform/cloud_meta.py +0 -1
- workbench/model_script_utils/model_script_utils.py +30 -0
- workbench/model_script_utils/uq_harness.py +0 -1
- workbench/model_scripts/chemprop/chemprop.template +3 -0
- workbench/model_scripts/chemprop/generated_model_script.py +3 -3
- workbench/model_scripts/chemprop/model_script_utils.py +30 -0
- workbench/model_scripts/custom_models/chem_info/mol_descriptors.py +0 -1
- workbench/model_scripts/custom_models/chem_info/molecular_descriptors.py +0 -1
- workbench/model_scripts/custom_models/chem_info/morgan_fingerprints.py +0 -1
- workbench/model_scripts/pytorch_model/generated_model_script.py +50 -32
- workbench/model_scripts/pytorch_model/model_script_utils.py +30 -0
- workbench/model_scripts/pytorch_model/pytorch.template +47 -29
- workbench/model_scripts/pytorch_model/uq_harness.py +0 -1
- workbench/model_scripts/script_generation.py +0 -1
- workbench/model_scripts/xgb_model/model_script_utils.py +30 -0
- workbench/model_scripts/xgb_model/uq_harness.py +0 -1
- workbench/themes/dark/custom.css +85 -8
- workbench/themes/dark/plotly.json +6 -6
- workbench/themes/light/custom.css +172 -70
- workbench/themes/light/plotly.json +9 -9
- workbench/themes/midnight_blue/custom.css +48 -29
- workbench/themes/midnight_blue/plotly.json +1 -1
- workbench/utils/aws_utils.py +0 -1
- workbench/utils/chem_utils/mol_descriptors.py +0 -1
- workbench/utils/chem_utils/vis.py +137 -27
- workbench/utils/clientside_callbacks.py +41 -0
- workbench/utils/markdown_utils.py +57 -0
- workbench/utils/pipeline_utils.py +0 -1
- workbench/utils/plot_utils.py +8 -110
- workbench/web_interface/components/experiments/outlier_plot.py +0 -1
- workbench/web_interface/components/model_plot.py +2 -0
- workbench/web_interface/components/plugin_unit_test.py +0 -1
- workbench/web_interface/components/plugins/ag_table.py +2 -4
- workbench/web_interface/components/plugins/confusion_matrix.py +3 -6
- workbench/web_interface/components/plugins/model_details.py +10 -6
- workbench/web_interface/components/plugins/scatter_plot.py +56 -43
- workbench/web_interface/components/settings_menu.py +2 -1
- workbench/web_interface/page_views/main_page.py +0 -1
- {workbench-0.8.224.dist-info → workbench-0.8.231.dist-info}/METADATA +31 -29
- {workbench-0.8.224.dist-info → workbench-0.8.231.dist-info}/RECORD +55 -59
- {workbench-0.8.224.dist-info → workbench-0.8.231.dist-info}/WHEEL +1 -1
- workbench/themes/quartz/base_css.url +0 -1
- workbench/themes/quartz/custom.css +0 -117
- workbench/themes/quartz/plotly.json +0 -642
- workbench/themes/quartz_dark/base_css.url +0 -1
- workbench/themes/quartz_dark/custom.css +0 -131
- workbench/themes/quartz_dark/plotly.json +0 -642
- {workbench-0.8.224.dist-info → workbench-0.8.231.dist-info}/entry_points.txt +0 -0
- {workbench-0.8.224.dist-info → workbench-0.8.231.dist-info}/licenses/LICENSE +0 -0
- {workbench-0.8.224.dist-info → workbench-0.8.231.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import base64
|
|
2
|
+
import numpy as np
|
|
2
3
|
import pandas as pd
|
|
3
|
-
from dash import dcc, html, callback, Input, Output, no_update
|
|
4
|
+
from dash import dcc, html, callback, clientside_callback, Input, Output, no_update
|
|
4
5
|
import plotly.graph_objects as go
|
|
5
6
|
import plotly.express as px
|
|
6
7
|
from dash.exceptions import PreventUpdate
|
|
@@ -8,7 +9,9 @@ from dash.exceptions import PreventUpdate
|
|
|
8
9
|
# Workbench Imports
|
|
9
10
|
from workbench.web_interface.components.plugin_interface import PluginInterface, PluginPage, PluginInputType
|
|
10
11
|
from workbench.utils.theme_manager import ThemeManager
|
|
11
|
-
from workbench.utils.plot_utils import prediction_intervals
|
|
12
|
+
from workbench.utils.plot_utils import prediction_intervals
|
|
13
|
+
from workbench.utils.chem_utils.vis import molecule_hover_tooltip
|
|
14
|
+
from workbench.utils.clientside_callbacks import circle_overlay_callback
|
|
12
15
|
|
|
13
16
|
|
|
14
17
|
class ScatterPlot(PluginInterface):
|
|
@@ -35,10 +38,10 @@ class ScatterPlot(PluginInterface):
|
|
|
35
38
|
self.df = None
|
|
36
39
|
self.show_axes = show_axes
|
|
37
40
|
self.theme_manager = ThemeManager()
|
|
38
|
-
self.colorscale = self.theme_manager.colorscale()
|
|
39
41
|
self.has_smiles = False # Track if dataframe has smiles column for molecule hover
|
|
40
42
|
self.smiles_column = None
|
|
41
43
|
self.id_column = None
|
|
44
|
+
self.hover_background = None # Cached background color for molecule hover tooltip
|
|
42
45
|
|
|
43
46
|
# Call the parent class constructor
|
|
44
47
|
super().__init__()
|
|
@@ -78,7 +81,7 @@ class ScatterPlot(PluginInterface):
|
|
|
78
81
|
id=f"{component_id}-graph",
|
|
79
82
|
figure=self.display_text("Waiting for Data..."),
|
|
80
83
|
config={"scrollZoom": True},
|
|
81
|
-
style={"height": "100%"},
|
|
84
|
+
style={"height": "500px", "width": "100%"},
|
|
82
85
|
clear_on_unhover=True,
|
|
83
86
|
),
|
|
84
87
|
# Controls: X, Y, Color, Label Dropdowns, and Regression Line Checkbox
|
|
@@ -178,6 +181,10 @@ class ScatterPlot(PluginInterface):
|
|
|
178
181
|
list: A list of updated property values (figure, x options, y options, color options,
|
|
179
182
|
x default, y default, color default).
|
|
180
183
|
"""
|
|
184
|
+
# Get the colorscale and background color from the current theme
|
|
185
|
+
self.colorscale = self.theme_manager.colorscale()
|
|
186
|
+
self.hover_background = self.theme_manager.background()
|
|
187
|
+
|
|
181
188
|
# Get the limit for the number of rows to plot
|
|
182
189
|
limit = kwargs.get("limit", 20000)
|
|
183
190
|
|
|
@@ -198,7 +205,10 @@ class ScatterPlot(PluginInterface):
|
|
|
198
205
|
|
|
199
206
|
# Check if the dataframe has smiles/id columns for molecule hover rendering
|
|
200
207
|
self.smiles_column = next((col for col in self.df.columns if col.lower() == "smiles"), None)
|
|
201
|
-
|
|
208
|
+
# Use provided id_column, or auto-detect "id" column, or fall back to first column
|
|
209
|
+
self.id_column = kwargs.get("id_column") or next(
|
|
210
|
+
(col for col in self.df.columns if col.lower() == "id"), self.df.columns[0]
|
|
211
|
+
)
|
|
202
212
|
self.has_smiles = self.smiles_column is not None
|
|
203
213
|
|
|
204
214
|
# Identify numeric columns
|
|
@@ -206,10 +216,11 @@ class ScatterPlot(PluginInterface):
|
|
|
206
216
|
if len(numeric_columns) < 3:
|
|
207
217
|
raise ValueError("At least three numeric columns are required for x, y, and color.")
|
|
208
218
|
|
|
209
|
-
# Default x, y, and color (for color,
|
|
219
|
+
# Default x, y, and color (for color, prefer 'confidence' if it exists)
|
|
210
220
|
x_default = kwargs.get("x", numeric_columns[0])
|
|
211
221
|
y_default = kwargs.get("y", numeric_columns[1])
|
|
212
|
-
|
|
222
|
+
default_color = "confidence" if "confidence" in self.df.columns else numeric_columns[2]
|
|
223
|
+
color_default = kwargs.get("color", default_color)
|
|
213
224
|
regression_line = kwargs.get("regression_line", False)
|
|
214
225
|
|
|
215
226
|
# Create the default scatter plot
|
|
@@ -238,7 +249,6 @@ class ScatterPlot(PluginInterface):
|
|
|
238
249
|
y_col: str,
|
|
239
250
|
color_col: str,
|
|
240
251
|
regression_line: bool = False,
|
|
241
|
-
marker_size: int = 15,
|
|
242
252
|
) -> go.Figure:
|
|
243
253
|
"""Create a Plotly Scatter Plot figure.
|
|
244
254
|
|
|
@@ -248,12 +258,20 @@ class ScatterPlot(PluginInterface):
|
|
|
248
258
|
y_col (str): The column to use for the y-axis.
|
|
249
259
|
color_col (str): The column to use for the color scale.
|
|
250
260
|
regression_line (bool): Whether to include a regression line.
|
|
251
|
-
marker_size (int): Size of the markers. Default is 15.
|
|
252
261
|
|
|
253
262
|
Returns:
|
|
254
263
|
go.Figure: A Plotly Figure object.
|
|
255
264
|
"""
|
|
256
265
|
|
|
266
|
+
# If aggregation_count is present, sort so largest counts are drawn first (underneath)
|
|
267
|
+
# and compute marker sizes using square root (between log and linear)
|
|
268
|
+
if "aggregation_count" in df.columns:
|
|
269
|
+
df = df.sort_values("aggregation_count", ascending=False).reset_index(drop=True)
|
|
270
|
+
# Scale: base_size (15) + (sqrt(count) - 1) * factor, so count=1 stays at base_size
|
|
271
|
+
marker_sizes = 15 + (np.sqrt(df["aggregation_count"]) - 1) * 3
|
|
272
|
+
else:
|
|
273
|
+
marker_sizes = 15
|
|
274
|
+
|
|
257
275
|
# Helper to generate hover text for each point.
|
|
258
276
|
def generate_hover_text(row):
|
|
259
277
|
return "<br>".join([f"{col}: {row[col]}" for col in self.hover_columns])
|
|
@@ -295,11 +313,11 @@ class ScatterPlot(PluginInterface):
|
|
|
295
313
|
hovertemplate=hovertemplate,
|
|
296
314
|
customdata=df[custom_data_cols] if custom_data_cols else None,
|
|
297
315
|
marker=dict(
|
|
298
|
-
size=
|
|
316
|
+
size=marker_sizes,
|
|
299
317
|
color=marker_color,
|
|
300
318
|
colorscale=self.colorscale,
|
|
301
319
|
colorbar=colorbar,
|
|
302
|
-
opacity=0.
|
|
320
|
+
opacity=0.9,
|
|
303
321
|
line=dict(color="rgba(0,0,0,0.25)", width=1),
|
|
304
322
|
),
|
|
305
323
|
)
|
|
@@ -315,6 +333,15 @@ class ScatterPlot(PluginInterface):
|
|
|
315
333
|
for i, cat in enumerate(categories):
|
|
316
334
|
sub_df = df[df[color_col] == cat]
|
|
317
335
|
sub_hovertext = hovertext.loc[sub_df.index] if hovertext is not None else None
|
|
336
|
+
# Get marker sizes for this subset (handles both array and scalar)
|
|
337
|
+
if isinstance(marker_sizes, (pd.Series, np.ndarray)):
|
|
338
|
+
sub_marker_sizes = (
|
|
339
|
+
marker_sizes.loc[sub_df.index]
|
|
340
|
+
if isinstance(marker_sizes, pd.Series)
|
|
341
|
+
else marker_sizes[sub_df.index]
|
|
342
|
+
)
|
|
343
|
+
else:
|
|
344
|
+
sub_marker_sizes = marker_sizes
|
|
318
345
|
trace = go.Scattergl(
|
|
319
346
|
x=sub_df[x_col],
|
|
320
347
|
y=sub_df[y_col],
|
|
@@ -325,7 +352,7 @@ class ScatterPlot(PluginInterface):
|
|
|
325
352
|
hovertemplate=hovertemplate,
|
|
326
353
|
customdata=sub_df[custom_data_cols] if custom_data_cols else None,
|
|
327
354
|
marker=dict(
|
|
328
|
-
size=
|
|
355
|
+
size=sub_marker_sizes,
|
|
329
356
|
color=discrete_colors[i % len(discrete_colors)],
|
|
330
357
|
opacity=0.8,
|
|
331
358
|
line=dict(color="rgba(0,0,0,0.25)", width=1),
|
|
@@ -405,35 +432,14 @@ class ScatterPlot(PluginInterface):
|
|
|
405
432
|
|
|
406
433
|
raise PreventUpdate
|
|
407
434
|
|
|
408
|
-
|
|
435
|
+
# Clientside callback for circle overlay - runs in browser, no server round trip
|
|
436
|
+
clientside_callback(
|
|
437
|
+
circle_overlay_callback(self._circle_data_uri),
|
|
409
438
|
Output(f"{self.component_id}-overlay", "show"),
|
|
410
439
|
Output(f"{self.component_id}-overlay", "bbox"),
|
|
411
440
|
Output(f"{self.component_id}-overlay", "children"),
|
|
412
441
|
Input(f"{self.component_id}-graph", "hoverData"),
|
|
413
442
|
)
|
|
414
|
-
def _scatter_circle_overlay(hover_data):
|
|
415
|
-
"""Show white circle overlay centered on the hovered point."""
|
|
416
|
-
if hover_data is None:
|
|
417
|
-
return False, no_update, no_update
|
|
418
|
-
|
|
419
|
-
# Extract bounding box from hoverData
|
|
420
|
-
bbox = hover_data["points"][0]["bbox"]
|
|
421
|
-
|
|
422
|
-
# Use pre-computed circle SVG
|
|
423
|
-
svg_image = html.Img(src=self._circle_data_uri, style={"width": "100px", "height": "100px"})
|
|
424
|
-
|
|
425
|
-
# Get the center of the bounding box
|
|
426
|
-
center_x = (bbox["x0"] + bbox["x1"]) / 2
|
|
427
|
-
center_y = (bbox["y0"] + bbox["y1"]) / 2
|
|
428
|
-
|
|
429
|
-
# The tooltip should be centered on the point
|
|
430
|
-
adjusted_bbox = {
|
|
431
|
-
"x0": center_x - 50,
|
|
432
|
-
"x1": center_x + 50,
|
|
433
|
-
"y0": center_y - 162,
|
|
434
|
-
"y1": center_y - 62,
|
|
435
|
-
}
|
|
436
|
-
return True, adjusted_bbox, [svg_image]
|
|
437
443
|
|
|
438
444
|
@callback(
|
|
439
445
|
Output(f"{self.component_id}-molecule-tooltip", "show"),
|
|
@@ -459,17 +465,24 @@ class ScatterPlot(PluginInterface):
|
|
|
459
465
|
smiles = customdata
|
|
460
466
|
mol_id = None
|
|
461
467
|
|
|
462
|
-
# Generate molecule tooltip with ID header
|
|
468
|
+
# Generate molecule tooltip with ID header (use cached background color)
|
|
463
469
|
mol_width, mol_height = 300, 200
|
|
464
|
-
children = molecule_hover_tooltip(
|
|
470
|
+
children = molecule_hover_tooltip(
|
|
471
|
+
smiles, mol_id=mol_id, width=mol_width, height=mol_height, background=self.hover_background
|
|
472
|
+
)
|
|
465
473
|
|
|
466
|
-
#
|
|
474
|
+
# Position molecule tooltip above and slightly right of the point
|
|
467
475
|
bbox = hover_data["points"][0]["bbox"]
|
|
476
|
+
center_x = (bbox["x0"] + bbox["x1"]) / 2
|
|
477
|
+
center_y = (bbox["y0"] + bbox["y1"]) / 2
|
|
478
|
+
x_offset = 5 # Slight offset to the right
|
|
479
|
+
y_offset = mol_height + 50 # Above the point
|
|
480
|
+
|
|
468
481
|
adjusted_bbox = {
|
|
469
|
-
"x0":
|
|
470
|
-
"x1":
|
|
471
|
-
"y0":
|
|
472
|
-
"y1":
|
|
482
|
+
"x0": center_x + x_offset,
|
|
483
|
+
"x1": center_x + x_offset + mol_width,
|
|
484
|
+
"y0": center_y - mol_height - y_offset,
|
|
485
|
+
"y1": center_y - y_offset,
|
|
473
486
|
}
|
|
474
487
|
return True, adjusted_bbox, children
|
|
475
488
|
|
|
@@ -75,8 +75,9 @@ class SettingsMenu:
|
|
|
75
75
|
style={"display": "flex", "flexDirection": "column", "alignItems": "center", "justifyContent": "center"},
|
|
76
76
|
)
|
|
77
77
|
|
|
78
|
-
# Build menu items: Status, License, divider, Themes submenu
|
|
78
|
+
# Build menu items: Home, Status, License, divider, Themes submenu
|
|
79
79
|
menu_items = [
|
|
80
|
+
dbc.DropdownMenuItem("Home", href="/"),
|
|
80
81
|
dbc.DropdownMenuItem("Status", href="/status", external_link=True, target="_blank"),
|
|
81
82
|
dbc.DropdownMenuItem("License", href="/license", external_link=True, target="_blank"),
|
|
82
83
|
dbc.DropdownMenuItem(divider=True),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: workbench
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.231
|
|
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
|
|
@@ -60,7 +60,7 @@ Requires-Dist: plotly>=6.0.0; extra == "ui"
|
|
|
60
60
|
Requires-Dist: dash>=3.0.0; extra == "ui"
|
|
61
61
|
Requires-Dist: dash-bootstrap-components>=1.6.0; extra == "ui"
|
|
62
62
|
Requires-Dist: dash-bootstrap-templates>=1.3.0; extra == "ui"
|
|
63
|
-
Requires-Dist: dash_ag_grid; extra == "ui"
|
|
63
|
+
Requires-Dist: dash_ag_grid>=33.3.3; extra == "ui"
|
|
64
64
|
Requires-Dist: tabulate>=0.9.0; extra == "ui"
|
|
65
65
|
Requires-Dist: matplotlib>=3.9.2; extra == "ui"
|
|
66
66
|
Provides-Extra: dev
|
|
@@ -77,51 +77,49 @@ Requires-Dist: workbench[dev]; extra == "all"
|
|
|
77
77
|
Dynamic: license-file
|
|
78
78
|
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
## Live Dashboard Demo
|
|
81
|
+
You can explore a live demo of the Workbench Dashboard at: [Workbench Dashboard Demo](https://workbench-dashboard.com)
|
|
81
82
|
|
|
82
|
-
|
|
83
|
+
## Recent News
|
|
84
|
+
**Chemprop Models!** All the rage for the Open ADMET Challenge.
|
|
83
85
|
|
|
84
|
-
|
|
86
|
+
Workbench now supports:
|
|
87
|
+
- Single Task Chemprop Models
|
|
88
|
+
- Multi Task Chemprop Models
|
|
89
|
+
- Chemprop Hybrid Models (MPNN + Descriptors)
|
|
90
|
+
- Foundation Chemprop Models (CheMeleon Pretrained)
|
|
91
|
+
|
|
92
|
+
Examples:
|
|
93
|
+
|
|
94
|
+
- [Deploying Chemprop Models](examples/models/chemprop.py)
|
|
95
|
+
- [Deploying Foundation Chemprop Models](examples/models/chemprop_foundation.py)
|
|
96
|
+
|
|
97
|
+
**References**
|
|
98
|
+
- [Open ADMET Challenge](https://huggingface.co/spaces/openadmet/OpenADMET-ExpansionRx-Challenge)
|
|
99
|
+
- **ChemProp:** Yang et al. "Analyzing Learned Molecular Representations for Property Prediction" *J. Chem. Inf. Model.* 2019 — [GitHub](https://github.com/chemprop/chemprop) | [Paper](https://pubs.acs.org/doi/10.1021/acs.jcim.9b00237)
|
|
100
|
+
- [CheMeleon Github](https://github.com/JacksonBurns/chemeleon)
|
|
101
|
+
|
|
102
|
+
### Chemprop Action Shots!
|
|
85
103
|
|
|
86
104
|
<table>
|
|
87
105
|
<tr>
|
|
88
106
|
<td>
|
|
89
|
-
<a href="https://github.com/user-attachments/assets/
|
|
90
|
-
<img width="
|
|
91
|
-
</a>
|
|
92
|
-
</td>
|
|
93
|
-
<td>
|
|
94
|
-
<a href="https://github.com/user-attachments/assets/b63a0789-c144-4048-afb6-f03e3d993680">
|
|
95
|
-
<img width="400" alt="theme_light" src="https://github.com/user-attachments/assets/b63a0789-c144-4048-afb6-f03e3d993680" />
|
|
107
|
+
<a href="https://github.com/user-attachments/assets/a36c6eff-c464-4c9a-9859-a45cd7e35145">
|
|
108
|
+
<img width="800" alt="theme_dark" src="https://github.com/user-attachments/assets/a36c6eff-c464-4c9a-9859-a45cd7e35145" />
|
|
96
109
|
</a>
|
|
97
110
|
</td>
|
|
98
111
|
</tr>
|
|
99
112
|
<tr>
|
|
100
113
|
<td>
|
|
101
|
-
<a href="https://github.com/user-attachments/assets/
|
|
102
|
-
<img width="
|
|
103
|
-
</a>
|
|
104
|
-
</td>
|
|
105
|
-
<td>
|
|
106
|
-
<a href="https://github.com/user-attachments/assets/5b01ec64-8d56-43bf-96c5-7da8ec48f527">
|
|
107
|
-
<img width="400" alt="theme_quartz_dark" src="https://github.com/user-attachments/assets/5b01ec64-8d56-43bf-96c5-7da8ec48f527" />
|
|
114
|
+
<a href="https://github.com/user-attachments/assets/d65ec1da-e04e-44fe-8782-4da0fb50588a">
|
|
115
|
+
<img width="800" alt="theme_quartz" src="https://github.com/user-attachments/assets/d65ec1da-e04e-44fe-8782-4da0fb50588a" />
|
|
108
116
|
</a>
|
|
109
117
|
</td>
|
|
110
118
|
</tr>
|
|
111
119
|
</table>
|
|
112
120
|
|
|
113
|
-
All of the Dashboard pages, subpages, and plugins use our new `ThemeManager()` class. See [Workbench Themes](https://supercowpowers.github.io/workbench/themes/), also big thanks to our friends at [Dash Bootstrap Templates](https://github.com/AnnMarieW/dash-bootstrap-templates)
|
|
114
|
-
|
|
115
121
|
|
|
116
122
|
|
|
117
|
-
### Workbench up on the AWS Marketplace
|
|
118
|
-
|
|
119
|
-
Powered by AWS® to accelerate your Machine Learning Pipelines development with our new [Dashboard for ML Pipelines](https://aws.amazon.com/marketplace/pp/prodview-5idedc7uptbqo). Getting started with Workbench is a snap and can be billed through AWS.
|
|
120
|
-
|
|
121
|
-
### Coming Soon: `v0.9`
|
|
122
|
-
|
|
123
|
-
We're getting ready for our `v0.9` release. Here's the road map: [Workbench RoadMaps](https://supercowpowers.github.io/workbench/road_maps/0_9_0/)
|
|
124
|
-
|
|
125
123
|
# Welcome to Workbench
|
|
126
124
|
The Workbench framework makes AWS® both easier to use and more powerful. Workbench handles all the details around updating and managing a complex set of AWS Services. With a simple-to-use Python API and a beautiful set of web interfaces, Workbench makes creating AWS ML pipelines a snap. It also dramatically improves both the usability and visibility across the entire spectrum of services: Glue Job, Athena, Feature Store, Models, and Endpoints, Workbench makes it easy to build production ready, AWS powered, machine learning pipelines.
|
|
127
125
|
|
|
@@ -159,6 +157,10 @@ For the full instructions for connecting your AWS Account see:
|
|
|
159
157
|
- One time AWS Onboarding: [AWS Setup](https://supercowpowers.github.io/workbench/aws_setup/core_stack/)
|
|
160
158
|
|
|
161
159
|
|
|
160
|
+
### Workbench up on the AWS Marketplace
|
|
161
|
+
|
|
162
|
+
Powered by AWS® to accelerate your Machine Learning Pipelines development with our new [Dashboard for ML Pipelines](https://aws.amazon.com/marketplace/pp/prodview-5idedc7uptbqo). Getting started with Workbench is a snap and can be billed through AWS.
|
|
163
|
+
|
|
162
164
|
### Workbench Presentations
|
|
163
165
|
Even though Workbench makes AWS easier, it's taking something very complex (the full set of AWS ML Pipelines/Services) and making it less complex. Workbench has a depth and breadth of functionality so we've provided higher level conceptual documentation See: [Workbench Presentations](https://supercowpowers.github.io/workbench/presentations/)
|
|
164
166
|
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
workbench/__init__.py,sha256=
|
|
1
|
+
workbench/__init__.py,sha256=ma3L2v67hV4p10Tcky3RKzUJO-ls1Qx3Sbt4vg5JfOQ,1242
|
|
2
2
|
workbench/algorithms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
3
|
workbench/algorithms/dataframe/Readme.md,sha256=ZoCEi2BRJ4ZH0wlkFELTV_njIvYt7Wnhanuv4eoFluw,378
|
|
4
|
-
workbench/algorithms/dataframe/__init__.py,sha256=
|
|
4
|
+
workbench/algorithms/dataframe/__init__.py,sha256=QHxW2VHYDPBVDkkJMADvew2D3K65s7OYXRYchcPsImY,490
|
|
5
5
|
workbench/algorithms/dataframe/compound_dataset_overlap.py,sha256=rE3UvPnDDUAQXcZOHde2W4HdVixak4BVTM6ftolL4-Y,12694
|
|
6
6
|
workbench/algorithms/dataframe/data_source_eda.py,sha256=WgVL6tzBCw1tznQr8RQ6daQnTxQ0-DQUiMwbjztVMSU,1606
|
|
7
7
|
workbench/algorithms/dataframe/feature_space_proximity.py,sha256=FYsQd5Lf5CrSWi-1Dcs_NVFN86izifxkWk1-EOvEV54,6950
|
|
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=AZ790s5nxeOezPQzojmVB3DR5Q2kh27-8X8rxmpp0SA,6401
|
|
11
12
|
workbench/algorithms/dataframe/storage/aggregation.py,sha256=VuTb7A6Vh6IS5djZeItvOLnnEOlf7tzMQ8OaYIuftvU,2852
|
|
12
13
|
workbench/algorithms/dataframe/storage/feature_resolution.py,sha256=w_iLf8EFTg7Jc5laH-bsq8MEtZVqcg05W-GihCqR-r4,9450
|
|
13
14
|
workbench/algorithms/dataframe/storage/feature_spider.py,sha256=uIZ4JHIKuhpy08wBFReSrohb5DGxx8vGroHUbjPm1jE,14353
|
|
@@ -24,9 +25,9 @@ workbench/algorithms/models/noise_model.py,sha256=WVCKjda_-p0ovj-Ze6eKmKREO-3rJl
|
|
|
24
25
|
workbench/algorithms/spark/Readme.md,sha256=18bPoFISlT3Ls5t1cBGb5N5Z6lOWyJupQkQxab1wcO4,615
|
|
25
26
|
workbench/algorithms/sql/Readme.md,sha256=fzm4jQ-unJWT-fp5JhIjpApYSAqHUGSiuHE0eNfbF4A,685
|
|
26
27
|
workbench/algorithms/sql/__init__.py,sha256=TbOZQwCfx6Tjc3pCCLCiM31wpCX26j5MBNQ6yG11EwY,462
|
|
27
|
-
workbench/algorithms/sql/column_stats.py,sha256=
|
|
28
|
-
workbench/algorithms/sql/correlations.py,sha256=
|
|
29
|
-
workbench/algorithms/sql/descriptive_stats.py,sha256=
|
|
28
|
+
workbench/algorithms/sql/column_stats.py,sha256=Y9XUko5yDdL68hxoQXf7UvOFr5j0PTGyCZNV9WRegOE,5942
|
|
29
|
+
workbench/algorithms/sql/correlations.py,sha256=Bthq2kH_E0x_Ux-sWJIYjC6Pz8gVXWBpAal_qHNW1Y4,3934
|
|
30
|
+
workbench/algorithms/sql/descriptive_stats.py,sha256=zDYvE3wjNqWt7e3z-Ba3U03ya4QTDoTF-RW7TQdQiWY,4074
|
|
30
31
|
workbench/algorithms/sql/outliers.py,sha256=LbOYaE3bNR4x-aEIrA2KAX3Aq07ZowRgrW9buCeKisQ,10663
|
|
31
32
|
workbench/algorithms/sql/sample_rows.py,sha256=SRYoGb24QP_iPvOoW9bGZ95yZuseYDtyoNhilfoLu34,2688
|
|
32
33
|
workbench/algorithms/sql/value_counts.py,sha256=F-rZoLTTKv1cHYl2_tDlvWDjczy76uLTr3EMHa-WrEk,3340
|
|
@@ -37,7 +38,7 @@ workbench/api/df_store.py,sha256=1qSYM3Xb4MwMMTMaF3CX0hOCEzhIbnra5Deivg4cryk,301
|
|
|
37
38
|
workbench/api/endpoint.py,sha256=tvPINPv_EFwphuZ3tv09jwO6dee-DRH371ZzXrrUxfM,3897
|
|
38
39
|
workbench/api/feature_set.py,sha256=-21ztp7JDqs7CKF3KtNdPoXppkiDqfb4JVK8xBK9rIY,10966
|
|
39
40
|
workbench/api/graph_store.py,sha256=LremJyPrQFgsHb7hxsctuCsoxx3p7TKtaY5qALHe6pc,4372
|
|
40
|
-
workbench/api/meta.py,sha256=
|
|
41
|
+
workbench/api/meta.py,sha256=1JxCpLn4JENiWUJaVjGgDL7WqhIy-s1swUbBzprI-uY,8595
|
|
41
42
|
workbench/api/meta_model.py,sha256=2DpjjBSw60QPMWQ2sTu2492PrFWFMXK8hH9U13gXzi8,11226
|
|
42
43
|
workbench/api/model.py,sha256=uU2sO7qm1wqdVhl7WVzzg79p1Z26Kf5inMhYzgmhzDw,5523
|
|
43
44
|
workbench/api/monitor.py,sha256=Cez89Uac7Tzt47FxkjoX-YDGccEhvBcxw3sZFtw4ud8,4506
|
|
@@ -47,8 +48,8 @@ workbench/cached/__init__.py,sha256=wvTyIFvusv2HjU3yop6OSr3js5_-SZuR8nPmlCuZQJ4,
|
|
|
47
48
|
workbench/cached/cached_data_source.py,sha256=A0o4H9g1aEms8HkOHWnb46vJ5fx6ebs1aCYaQcf8gPI,2649
|
|
48
49
|
workbench/cached/cached_endpoint.py,sha256=HxS8V9MF43uSy-Yu-pAs15PbNeq6u_JGXU332DDIQMc,2630
|
|
49
50
|
workbench/cached/cached_feature_set.py,sha256=vJe2WUTeIyMAvCM1Jp-sPLbX6S0Y7jv51FAhhMgrSDE,2780
|
|
50
|
-
workbench/cached/cached_meta.py,sha256=
|
|
51
|
-
workbench/cached/cached_model.py,sha256=
|
|
51
|
+
workbench/cached/cached_meta.py,sha256=wOuqWiXoJPxl2HUlslUvyrUQigrzXWwgMYZFQ9y5k5c,12256
|
|
52
|
+
workbench/cached/cached_model.py,sha256=c4KxmHGFgBbHgtb_mJckQcQZEidZtKAtxwmMJd6Tfhk,5684
|
|
52
53
|
workbench/cached/cached_pipeline.py,sha256=QOVnEKu5RbIdlNpJUi-0Ebh0_-C68RigSPwKh4dvZTM,1948
|
|
53
54
|
workbench/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
55
|
workbench/core/artifacts/__init__.py,sha256=ukcgbYlI9m99bzwaBNO01K1h0-cQkzsbh_jT_GyQ-LY,1034
|
|
@@ -59,12 +60,12 @@ workbench/core/artifacts/data_capture_core.py,sha256=q8f79rRTYiZ7T4IQRWXl8ZvPpcv
|
|
|
59
60
|
workbench/core/artifacts/data_source_abstract.py,sha256=5IRCzFVK-17cd4NXPMRfx99vQAmQ0WHE5jcm5RfsVTg,10619
|
|
60
61
|
workbench/core/artifacts/data_source_factory.py,sha256=YL_tA5fsgubbB3dPF6T4tO0rGgz-6oo3ge4i_YXVC-M,2380
|
|
61
62
|
workbench/core/artifacts/df_store_core.py,sha256=AueNr_JvuLLu_ByE7cb3u-isH9u0Q7cMP-UCgCX-Ctg,3536
|
|
62
|
-
workbench/core/artifacts/endpoint_core.py,sha256=
|
|
63
|
-
workbench/core/artifacts/feature_set_core.py,sha256=
|
|
63
|
+
workbench/core/artifacts/endpoint_core.py,sha256=kf8OuQhevoEcS_1j861SS1qWVLPfD6F964YCfk4Gx5w,54645
|
|
64
|
+
workbench/core/artifacts/feature_set_core.py,sha256=IjSUpxpj2S611uo5LmnOK-aH3CZhfbC5ztC02PQ5gqE,42128
|
|
64
65
|
workbench/core/artifacts/model_core.py,sha256=wPkpdRlxnAXMqsDtJGPotGFO146Hm7NCfYbImHwZo9c,52343
|
|
65
66
|
workbench/core/artifacts/monitor_core.py,sha256=M307yz7tEzOEHgv-LmtVy9jKjSbM98fHW3ckmNYrwlU,27897
|
|
66
67
|
workbench/core/artifacts/parameter_store_core.py,sha256=sHvjJMuybM4qdcKhH-Sx6Ur6Yn5ozA3QHwtidsnhyG8,2867
|
|
67
|
-
workbench/core/cloud_platform/cloud_meta.py,sha256
|
|
68
|
+
workbench/core/cloud_platform/cloud_meta.py,sha256=QFEsGfqhaCkw9Jl4PRln-xRaHnt-ecMoeTOg6uyrQCM,8808
|
|
68
69
|
workbench/core/cloud_platform/aws/README.md,sha256=QT5IQXoUHbIA0qQ2wO6_2P2lYjYQFVYuezc22mWY4i8,97
|
|
69
70
|
workbench/core/cloud_platform/aws/aws_account_clamp.py,sha256=V5iVsoGvSRilARtTdExnt27QptzAcJaW0s3nm2B8-ow,8286
|
|
70
71
|
workbench/core/cloud_platform/aws/aws_graph_store.py,sha256=ytYxQTplUmeWbsPmxyZbf6mO9qyTl60ewlJG8MyfyEY,9414
|
|
@@ -126,20 +127,20 @@ workbench/core/views/training_view.py,sha256=7HwhbQhDBhT3Zo_gssS-b4eueJ0h9nqqT8Y
|
|
|
126
127
|
workbench/core/views/view.py,sha256=DvmEA1xdvL980GET_cnbmHzqSy6IhlNaZcoQnVTtYis,13534
|
|
127
128
|
workbench/core/views/view_utils.py,sha256=CwOlpqXpumCr6REi-ey7Qjz5_tpg-s4oWHmlOVu8POQ,12270
|
|
128
129
|
workbench/core/views/storage/mdq_view.py,sha256=qf_ep1KwaXOIfO930laEwNIiCYP7VNOqjE3VdHfopRE,5195
|
|
129
|
-
workbench/model_script_utils/model_script_utils.py,sha256=
|
|
130
|
+
workbench/model_script_utils/model_script_utils.py,sha256=kIB_RUBBPAXyTCnrQRZuAjM6AwNlVW5It_U1RaXuaBI,12806
|
|
130
131
|
workbench/model_script_utils/pytorch_utils.py,sha256=vr8ybK45U0H8Jhjb5qx6xbJNozdcl7bVqubknDwh6U0,13704
|
|
131
|
-
workbench/model_script_utils/uq_harness.py,sha256=
|
|
132
|
-
workbench/model_scripts/script_generation.py,sha256=
|
|
133
|
-
workbench/model_scripts/chemprop/chemprop.template,sha256=
|
|
134
|
-
workbench/model_scripts/chemprop/generated_model_script.py,sha256=
|
|
135
|
-
workbench/model_scripts/chemprop/model_script_utils.py,sha256=
|
|
132
|
+
workbench/model_script_utils/uq_harness.py,sha256=zzFgQrNCtUyDMWxY7tjlFiHFBzPP6LWGyFBPr-PyKug,10304
|
|
133
|
+
workbench/model_scripts/script_generation.py,sha256=Sv0OJdASNKk1KXr8goiZWUL5W7i8G8gBb_R_OTb8caI,8257
|
|
134
|
+
workbench/model_scripts/chemprop/chemprop.template,sha256=3AQuepH9JjR7fSeMd4qx9fZUr6KbW5je29SKKk5W7qA,35932
|
|
135
|
+
workbench/model_scripts/chemprop/generated_model_script.py,sha256=kYxJQ2qaQDGit0paaKIDZPvx2Phs6B1ury_5jTpC1AU,35836
|
|
136
|
+
workbench/model_scripts/chemprop/model_script_utils.py,sha256=kIB_RUBBPAXyTCnrQRZuAjM6AwNlVW5It_U1RaXuaBI,12806
|
|
136
137
|
workbench/model_scripts/chemprop/requirements.txt,sha256=2IBHZZNYqhX9Ed7AmRVgN06tO3EHeBbN2EM8-tjWZhs,216
|
|
137
138
|
workbench/model_scripts/custom_models/chem_info/Readme.md,sha256=mH1lxJ4Pb7F5nBnVXaiuxpi8zS_yjUw_LBJepVKXhlA,574
|
|
138
139
|
workbench/model_scripts/custom_models/chem_info/fingerprints.py,sha256=ECDzjZs4wSx3ZvAQipMl2NEqI2isCWHLYBv7mp0NVgk,6939
|
|
139
|
-
workbench/model_scripts/custom_models/chem_info/mol_descriptors.py,sha256=
|
|
140
|
+
workbench/model_scripts/custom_models/chem_info/mol_descriptors.py,sha256=YOmsz2vKRvwvbzgfHRhQJwx6n2_AxK_dN2a5EIpY6jI,18788
|
|
140
141
|
workbench/model_scripts/custom_models/chem_info/mol_standardize.py,sha256=qPLCdVMSXMOWN-01O1isg2zq7eQyFAI0SNatHkRq1uw,17524
|
|
141
|
-
workbench/model_scripts/custom_models/chem_info/molecular_descriptors.py,sha256=
|
|
142
|
-
workbench/model_scripts/custom_models/chem_info/morgan_fingerprints.py,sha256=
|
|
142
|
+
workbench/model_scripts/custom_models/chem_info/molecular_descriptors.py,sha256=BaoNWKXeXbw_ph1K6et7CnwRMoi5qkdcGpmdhOmbJ6o,2890
|
|
143
|
+
workbench/model_scripts/custom_models/chem_info/morgan_fingerprints.py,sha256=GrdQyHmrNWYALs63MNy3z7PBhxNRqN4it9t_WvYFCBk,3231
|
|
143
144
|
workbench/model_scripts/custom_models/chem_info/requirements.txt,sha256=7HBUzvNiM8lOir-UfQabXYlUp3gxdGJ42u18EuSMGjc,39
|
|
144
145
|
workbench/model_scripts/custom_models/network_security/Readme.md,sha256=Z2gtiu0hLHvEJ1x-_oFq3qJZcsK81sceBAGAGltpqQ8,222
|
|
145
146
|
workbench/model_scripts/custom_models/proximity/Readme.md,sha256=RlMFAJZgAT2mCgDk-UwR_R0Y_NbCqeI5-8DUsxsbpWQ,289
|
|
@@ -159,20 +160,20 @@ workbench/model_scripts/ensemble_xgb/ensemble_xgb.template,sha256=lMEx0IkawcpTI5
|
|
|
159
160
|
workbench/model_scripts/ensemble_xgb/requirements.txt,sha256=jWlGc7HH7vqyukTm38LN4EyDi8jDUPEay4n45z-30uc,104
|
|
160
161
|
workbench/model_scripts/meta_model/generated_model_script.py,sha256=ncPrHd9-R8l_98vAiuTUJ92C9PKpEgAtpIrmd7TuqSQ,8341
|
|
161
162
|
workbench/model_scripts/meta_model/meta_model.template,sha256=viz-AKVq3YRwOUBt8-rUO1TwdEPFzyP7nnifqcIJurw,8244
|
|
162
|
-
workbench/model_scripts/pytorch_model/generated_model_script.py,sha256=
|
|
163
|
-
workbench/model_scripts/pytorch_model/model_script_utils.py,sha256=
|
|
164
|
-
workbench/model_scripts/pytorch_model/pytorch.template,sha256=
|
|
163
|
+
workbench/model_scripts/pytorch_model/generated_model_script.py,sha256=sdR3tFidxeSgZUTwbyeSXl0bYSHqUrCjOifYkvCkfWM,26412
|
|
164
|
+
workbench/model_scripts/pytorch_model/model_script_utils.py,sha256=kIB_RUBBPAXyTCnrQRZuAjM6AwNlVW5It_U1RaXuaBI,12806
|
|
165
|
+
workbench/model_scripts/pytorch_model/pytorch.template,sha256=KrQw66cTGFvRLkwOhjM31BYAxdBX33MT-QGBWX6tN5c,22172
|
|
165
166
|
workbench/model_scripts/pytorch_model/pytorch_utils.py,sha256=vr8ybK45U0H8Jhjb5qx6xbJNozdcl7bVqubknDwh6U0,13704
|
|
166
167
|
workbench/model_scripts/pytorch_model/requirements.txt,sha256=ES7YehHEL4E5oV8FScHm3oNQmkMI4ODgbC1fSbaY7T4,183
|
|
167
|
-
workbench/model_scripts/pytorch_model/uq_harness.py,sha256=
|
|
168
|
+
workbench/model_scripts/pytorch_model/uq_harness.py,sha256=zzFgQrNCtUyDMWxY7tjlFiHFBzPP6LWGyFBPr-PyKug,10304
|
|
168
169
|
workbench/model_scripts/scikit_learn/generated_model_script.py,sha256=xhQIglpAgPRCH9iwI3wI0N0V6p9AgqW0mVOMuSXzUCk,17187
|
|
169
170
|
workbench/model_scripts/scikit_learn/requirements.txt,sha256=aVvwiJ3LgBUhM_PyFlb2gHXu_kpGPho3ANBzlOkfcvs,107
|
|
170
171
|
workbench/model_scripts/scikit_learn/scikit_learn.template,sha256=QQvqx-eX9ZTbYmyupq6R6vIQwosmsmY_MRBPaHyfjdk,12586
|
|
171
172
|
workbench/model_scripts/uq_models/generated_model_script.py,sha256=kgcIWghY6eazcBWS77MukhQUyYFmfJcS8SQ8RmjM82I,9006
|
|
172
173
|
workbench/model_scripts/xgb_model/generated_model_script.py,sha256=ENLuKqbRAVrqNymtcrJcYSm1eE4KUgU-oZN4PMalOZg,22647
|
|
173
|
-
workbench/model_scripts/xgb_model/model_script_utils.py,sha256=
|
|
174
|
+
workbench/model_scripts/xgb_model/model_script_utils.py,sha256=kIB_RUBBPAXyTCnrQRZuAjM6AwNlVW5It_U1RaXuaBI,12806
|
|
174
175
|
workbench/model_scripts/xgb_model/requirements.txt,sha256=jWlGc7HH7vqyukTm38LN4EyDi8jDUPEay4n45z-30uc,104
|
|
175
|
-
workbench/model_scripts/xgb_model/uq_harness.py,sha256=
|
|
176
|
+
workbench/model_scripts/xgb_model/uq_harness.py,sha256=zzFgQrNCtUyDMWxY7tjlFiHFBzPP6LWGyFBPr-PyKug,10304
|
|
176
177
|
workbench/model_scripts/xgb_model/xgb_model.template,sha256=w4-yx82yws-_esObZQIq13S8WKXXnZxqe86ZuyWoP5w,18367
|
|
177
178
|
workbench/repl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
178
179
|
workbench/repl/workbench_shell.py,sha256=RuuJVfO7pVTXWiwKGpBdDAL_fXJZfSay4KRDbhNNBXY,22309
|
|
@@ -191,31 +192,26 @@ workbench/scripts/redis_report.py,sha256=iaJSuGPyLCs6e0TMcZDoT0YyJ43xJ1u74YD8FLn
|
|
|
191
192
|
workbench/scripts/show_config.py,sha256=ff2wIKIlOktoitcrhk2r2B4I4N_ynXkEHB11l5nn0nA,548
|
|
192
193
|
workbench/scripts/training_test.py,sha256=eRqy45LcfEY2_UlnpQbrRBb8RYPWEXcEg6us1fkZ6kw,2383
|
|
193
194
|
workbench/themes/dark/base_css.url,sha256=gGaJWe9iajwbJUzr03K9AuTNouQP_prwOv5Q9lEYBVo,18
|
|
194
|
-
workbench/themes/dark/custom.css,sha256=
|
|
195
|
-
workbench/themes/dark/plotly.json,sha256=
|
|
195
|
+
workbench/themes/dark/custom.css,sha256=t8V-0NslZz_yAN7WTpN1AbFgbVCEKVFE6Uakm52Iw_U,5262
|
|
196
|
+
workbench/themes/dark/plotly.json,sha256=M6Xo6AeH9Aw41f6Zz2qrTxO6VElrsu0Ubai7QmWC3z4,18207
|
|
196
197
|
workbench/themes/light/base_css.url,sha256=Y4c_u6Qjkt7GyQf5gvlHNCHnS8XxIzubuSmBQ8XizCQ,17
|
|
197
198
|
workbench/themes/light/branding.json,sha256=13-LMVeNETpwXlC-p-x6sWGq58gd4dF3LuGDtq147Hk,77
|
|
198
|
-
workbench/themes/light/custom.css,sha256=
|
|
199
|
-
workbench/themes/light/plotly.json,sha256=
|
|
199
|
+
workbench/themes/light/custom.css,sha256=faBLoX1_7udHggpYhXuclcXseUm3um_1FCFqEBvsa2U,6973
|
|
200
|
+
workbench/themes/light/plotly.json,sha256=jo37FWlmgiR8FYvf_s4xSOe68QdZglF1pmrB0gA7YV8,18832
|
|
200
201
|
workbench/themes/midnight_blue/base_css.url,sha256=IN-Pth07vNDtfH2r2_9m3vCkKxy-pPjIaXoD1uTmFmY,17
|
|
201
202
|
workbench/themes/midnight_blue/branding.json,sha256=DvTVjVlB8hLyYIYUHqE2COPyfOUvPV9fAApTEY24DVk,77
|
|
202
|
-
workbench/themes/midnight_blue/custom.css,sha256=
|
|
203
|
-
workbench/themes/midnight_blue/plotly.json,sha256=
|
|
204
|
-
workbench/themes/quartz/base_css.url,sha256=gkxV2TRI8NFtWFwv19wG2HQO6muChXBNWwWQpEj0Q2U,18
|
|
205
|
-
workbench/themes/quartz/custom.css,sha256=ui7fcp7_dNye5GxDWL40-A7TAr5bxQB-PmEO4rGcfp4,2414
|
|
206
|
-
workbench/themes/quartz/plotly.json,sha256=cISC4YtKSr8t7wVkbjw4sUDQFlZL896Fj1UrNGgKt_k,18580
|
|
207
|
-
workbench/themes/quartz_dark/base_css.url,sha256=gkxV2TRI8NFtWFwv19wG2HQO6muChXBNWwWQpEj0Q2U,18
|
|
208
|
-
workbench/themes/quartz_dark/custom.css,sha256=hw5R9JSH40ZvtSo1GXRqDb4XDze6uiGkU0IL5flZdaI,2754
|
|
209
|
-
workbench/themes/quartz_dark/plotly.json,sha256=LJXJaJPOh-jV6WwT4WM0zOi-Sscm8YxVPs5KLsCkrZM,18586
|
|
203
|
+
workbench/themes/midnight_blue/custom.css,sha256=zsi5yb84MMm7Znh7TCgS2dtF8xSDET5gCPdr8C6J2XA,5020
|
|
204
|
+
workbench/themes/midnight_blue/plotly.json,sha256=sCrkxD9x_faKYe8wQsfRAup1T9BSS6X6wkVLCmZdaeU,18575
|
|
210
205
|
workbench/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
211
206
|
workbench/utils/ai_compound_generator.py,sha256=8no4ufP1LJhQfPqaDHvqUYOAh1kzeDVeF_-323yo1VA,6772
|
|
212
207
|
workbench/utils/ai_summary.py,sha256=KwutaozocDxrfErodYpFCDmt1c8zVKf3Jnu4UzBMLJU,4155
|
|
213
208
|
workbench/utils/ai_synth.py,sha256=3mz7NwZeOuNH5ju5n_pikOwfxtVN6LaipLFkAZqoN2U,5607
|
|
214
209
|
workbench/utils/athena_utils.py,sha256=DDyLhJujzh1PfejtGU7ZzOf5hLPOgoXmi4Lrn-_AJzU,4812
|
|
215
|
-
workbench/utils/aws_utils.py,sha256=
|
|
210
|
+
workbench/utils/aws_utils.py,sha256=QmRuPSNrZP58tMbByghvon2iSp1BwRr-7Pj-pMjIZnQ,22076
|
|
216
211
|
workbench/utils/bulk_utils.py,sha256=s1lYN2Uk536MNGetekLYL_VL0N34hUjk1FX9BAz3Qu0,1182
|
|
217
212
|
workbench/utils/cache.py,sha256=0R5RXYEz_XHARK3anmQC4VRMawMks_cJ8S4vwC2roAE,5524
|
|
218
213
|
workbench/utils/chemprop_utils.py,sha256=_cy7iZ96xoDVeZGkLdXr7sMsgZjAUMjg5CHyHX6W6zY,4694
|
|
214
|
+
workbench/utils/clientside_callbacks.py,sha256=CAUlzw9y7zrQk6OHvGEqJgc87KLY1VHfbuwn1o54hKE,1330
|
|
219
215
|
workbench/utils/cloudwatch_handler.py,sha256=t0L280Qa1nMq95dwnf8lB5g8FHrQAyGY5S4JwP3yIa8,5165
|
|
220
216
|
workbench/utils/cloudwatch_utils.py,sha256=wXSqKcJlSnHyC0D6d4RsH8wwmx_0CsffcetUgXlZ_78,4828
|
|
221
217
|
workbench/utils/color_utils.py,sha256=TmDGLK44t975lkfjt_1O-ee02QxrKfke7vPuXb-V-Uo,11779
|
|
@@ -235,15 +231,15 @@ workbench/utils/json_utils.py,sha256=FSxzcD88TbIEJDw0FHue5-ZGny94wm5NeLs4zYlLLpU
|
|
|
235
231
|
workbench/utils/lambda_utils.py,sha256=7GhGRPyXn9o-toWb9HBGSnI8-DhK9YRkwhCSk_mNKMI,1893
|
|
236
232
|
workbench/utils/license_manager.py,sha256=lNE9zZIglmX3zqqCKBdN1xqTgHCEZgJDxavF6pdG7fc,6825
|
|
237
233
|
workbench/utils/log_utils.py,sha256=7n1NJXO_jUX82e6LWAQug6oPo3wiPDBYsqk9gsYab_A,3167
|
|
238
|
-
workbench/utils/markdown_utils.py,sha256=
|
|
234
|
+
workbench/utils/markdown_utils.py,sha256=gOIkeHietL09dz4zB10E0V8E69SavIZhAAv27bFCwL4,10266
|
|
239
235
|
workbench/utils/meta_model_simulator.py,sha256=fMKZoLi_VEJohNVvbZSMvZWNdUbIpGlB6Bg6mJQW33s,20630
|
|
240
236
|
workbench/utils/metrics_utils.py,sha256=iAoKrAM4iRX8wFSjSJhfNKbbW1BqB3eI_U3wvdhUdhE,9496
|
|
241
237
|
workbench/utils/model_utils.py,sha256=ApUg3EclAIEzzGr7i1zwJsO-OV1NUqjOMV6Fd9lWlno,19261
|
|
242
238
|
workbench/utils/monitor_utils.py,sha256=kVaJ7BgUXs3VPMFYfLC03wkIV4Dq-pEhoXS0wkJFxCc,7858
|
|
243
239
|
workbench/utils/pandas_utils.py,sha256=uTUx-d1KYfjbS9PMQp2_9FogCV7xVZR6XLzU5YAGmfs,39371
|
|
244
240
|
workbench/utils/performance_utils.py,sha256=WDNvz-bOdC99cDuXl0urAV4DJ7alk_V3yzKPwvqgST4,1329
|
|
245
|
-
workbench/utils/pipeline_utils.py,sha256=
|
|
246
|
-
workbench/utils/plot_utils.py,sha256
|
|
241
|
+
workbench/utils/pipeline_utils.py,sha256=jRt7BnLDSG4oGW6iuCtIJAVNYl1L0edUx7cEqXWydEc,2170
|
|
242
|
+
workbench/utils/plot_utils.py,sha256=-32utfGvQPhzf1ONQX1fHoTgfAgNU3zS865KMuXgXhU,7521
|
|
247
243
|
workbench/utils/plugin_manager.py,sha256=JWfyFHQih_J_MMtAT1cgjGVnNVPk9bM917LkfH8Z-_A,13873
|
|
248
244
|
workbench/utils/prox_utils.py,sha256=V0YSxI6lboZl8Bed1GUobFqfMhfpehn2FtgqHpkuhDQ,6170
|
|
249
245
|
workbench/utils/pytorch_utils.py,sha256=RoltE9-fOX2UixzaEmnxN6oJtBEKQ9Jklu0LRzYKVDY,2879
|
|
@@ -266,51 +262,51 @@ workbench/utils/xgboost_model_utils.py,sha256=qEnB1viCIXMYLW0LJuyCioKMSilbmKTMup
|
|
|
266
262
|
workbench/utils/chem_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
267
263
|
workbench/utils/chem_utils/fingerprints.py,sha256=ECDzjZs4wSx3ZvAQipMl2NEqI2isCWHLYBv7mp0NVgk,6939
|
|
268
264
|
workbench/utils/chem_utils/misc.py,sha256=Nevf8_opu-uIPrv_1_0ubuFVVo2_fGUkMoLAHB3XAeo,7372
|
|
269
|
-
workbench/utils/chem_utils/mol_descriptors.py,sha256=
|
|
265
|
+
workbench/utils/chem_utils/mol_descriptors.py,sha256=YOmsz2vKRvwvbzgfHRhQJwx6n2_AxK_dN2a5EIpY6jI,18788
|
|
270
266
|
workbench/utils/chem_utils/mol_standardize.py,sha256=qPLCdVMSXMOWN-01O1isg2zq7eQyFAI0SNatHkRq1uw,17524
|
|
271
267
|
workbench/utils/chem_utils/mol_tagging.py,sha256=8Bt6gHvyN8B2jvVuz12JgYMHVLDkCLnEPAfqkyMEoMc,9995
|
|
272
268
|
workbench/utils/chem_utils/projections.py,sha256=V__MUp9zoCJcsTUS3REwIZv28fKIxc_Zd9BPBylLIkw,7977
|
|
273
269
|
workbench/utils/chem_utils/salts.py,sha256=ZzFb6Z71Z_kMjVF-PKwHx0fn9pN9rPMj-oEY8Nt5JWA,9095
|
|
274
270
|
workbench/utils/chem_utils/sdf.py,sha256=wucyMtnmdg6onBa5N_sX6ONDE4PThJokImFxCBk22RI,10319
|
|
275
271
|
workbench/utils/chem_utils/toxicity.py,sha256=OmVvR05XjP8rLteQ0gjlC5tRh3WitjoahPnSLPhbUXQ,10195
|
|
276
|
-
workbench/utils/chem_utils/vis.py,sha256=
|
|
272
|
+
workbench/utils/chem_utils/vis.py,sha256=3hFwH6fD-UQFJTuuQjJxvoHcxJHK9y5CZL67XAFapoo,12838
|
|
277
273
|
workbench/web_interface/components/component_interface.py,sha256=QCPWqiZLkVsAEzQFEQxFelk7H0UF5uI2dVvJNf0lRV4,7980
|
|
278
274
|
workbench/web_interface/components/correlation_matrix.py,sha256=Lv4vRta5-TdxBsu0G8Ea7hyyR3XyPes-k5AfL6qZWEc,6376
|
|
279
275
|
workbench/web_interface/components/data_details_markdown.py,sha256=axDs6eXniglBmvFwIKjpJ5oyT-3D4FO9IcfA_cl-EJ8,9706
|
|
280
276
|
workbench/web_interface/components/endpoint_metric_plots.py,sha256=H0cXuj9UQrrh_2JvRHtq7O8pMXFXKs7o9XpzySENylw,3441
|
|
281
|
-
workbench/web_interface/components/model_plot.py,sha256=
|
|
277
|
+
workbench/web_interface/components/model_plot.py,sha256=oIBWP3lfI6FvujM9e8TfgAq6bm5yeC5wvMt-QO1bh9M,2857
|
|
282
278
|
workbench/web_interface/components/plugin_interface.py,sha256=jGRq4igUTVXUT4sDqqsKKI2yjilV0ORNBQq6CjEWE84,9563
|
|
283
|
-
workbench/web_interface/components/plugin_unit_test.py,sha256=
|
|
279
|
+
workbench/web_interface/components/plugin_unit_test.py,sha256=CHBGKTySRhdUSt5ERCfg09_RSGUP4OLuOQFW4W5cDtQ,7746
|
|
284
280
|
workbench/web_interface/components/regression_plot.py,sha256=k18Bd0fcH7ig6kL5GqC_dINci3_YLle_fSEM32zXtzY,3342
|
|
285
|
-
workbench/web_interface/components/settings_menu.py,sha256=
|
|
281
|
+
workbench/web_interface/components/settings_menu.py,sha256=cC4ZibfFFYa-A6kyY_lucQUAEE6tHfdWX0PiWyDamvU,6667
|
|
286
282
|
workbench/web_interface/components/violin_plots.py,sha256=3_T85hIs_R_WZpfFkSrqY2eYXmYzWsywDqsLhB7W1RQ,5320
|
|
287
283
|
workbench/web_interface/components/experiments/dashboard_metric_plots.py,sha256=DPIw13tO9XOGxA6IeRPLgl-C3XUJ2N287JkSEg73Rjg,2984
|
|
288
|
-
workbench/web_interface/components/experiments/outlier_plot.py,sha256=
|
|
289
|
-
workbench/web_interface/components/plugins/ag_table.py,sha256=
|
|
290
|
-
workbench/web_interface/components/plugins/confusion_matrix.py,sha256=
|
|
284
|
+
workbench/web_interface/components/experiments/outlier_plot.py,sha256=5yGVnVScM0TR80OjPypx_83Ksg7r5HDR3hGjpT4Ub14,3646
|
|
285
|
+
workbench/web_interface/components/plugins/ag_table.py,sha256=MUtaKNzumCOvnvmZJGY4_j6rpl-ITeYCVKrxmLDwSzM,3923
|
|
286
|
+
workbench/web_interface/components/plugins/confusion_matrix.py,sha256=n7Fk361nArlFoxbfdgfjRPQHy3UpwUjplfPyCdLx0c0,7071
|
|
291
287
|
workbench/web_interface/components/plugins/dashboard_status.py,sha256=4plmoiXj3dDjoQerUNpep_jfk50pI9rHvcoSP20UbE8,5832
|
|
292
288
|
workbench/web_interface/components/plugins/data_details.py,sha256=pZm1AbM_0EXQwx77qUkfyrU9MedAs4Wlkp6iOtSrUtI,11104
|
|
293
289
|
workbench/web_interface/components/plugins/endpoint_details.py,sha256=0A7g_Lx5-3XnDWOGT3YEDPNpmME_-WfYc65f-rRVjJE,3769
|
|
294
290
|
workbench/web_interface/components/plugins/generated_compounds.py,sha256=A6JGlkl7buZUugPK21YgufVFDRoGlHJowaqf8PAmz_s,8056
|
|
295
291
|
workbench/web_interface/components/plugins/graph_plot.py,sha256=JFzuSH_CkEmlaLAgFpzmiEpS3sXov0ycnCfP0VLsK2g,14502
|
|
296
292
|
workbench/web_interface/components/plugins/license_details.py,sha256=UyMSBGxEgdp3m9szDkDUAl_Ua8C5a4RNMdYpYCx354M,5497
|
|
297
|
-
workbench/web_interface/components/plugins/model_details.py,sha256=
|
|
293
|
+
workbench/web_interface/components/plugins/model_details.py,sha256=Mb33be3jky4a6DxhTHQhkBw9jLrn7IhQ2zBbMaaxYcI,9102
|
|
298
294
|
workbench/web_interface/components/plugins/molecule_panel.py,sha256=xGCEI5af8F5lNId5eKUpetdQs_ahnIPdW6U7wKvbz2o,3515
|
|
299
295
|
workbench/web_interface/components/plugins/molecule_viewer.py,sha256=xavixcu4RNzh6Nj_-3-XlK09DgpNx5jGmo3wEPNftiE,4529
|
|
300
296
|
workbench/web_interface/components/plugins/pipeline_details.py,sha256=caiFIakHk-1dGGNW7wlio2X7iAm2_tCNbSjDzoRWGEk,5534
|
|
301
297
|
workbench/web_interface/components/plugins/proximity_mini_graph.py,sha256=b_YYnvLczJUhaDbrrXnyjUDYF7C4R4ufCZXtJiyRnJ0,7233
|
|
302
|
-
workbench/web_interface/components/plugins/scatter_plot.py,sha256=
|
|
298
|
+
workbench/web_interface/components/plugins/scatter_plot.py,sha256=PxcmirvUPmMNw269i8U_tb-5Ryatg5PeyW05LFYnba0,23640
|
|
303
299
|
workbench/web_interface/components/plugins/shap_summary_plot.py,sha256=_V-xxVehU-60IpYWvAqTW5x_6u6pbjz9mI8r0ppIXKg,9454
|
|
304
300
|
workbench/web_interface/page_views/data_sources_page_view.py,sha256=SXNUG6n_eP9i4anddEXd5E9rMRt-R2EyNR-bbe8OQK4,4673
|
|
305
301
|
workbench/web_interface/page_views/endpoints_page_view.py,sha256=EI3hA18pEn-mAPEzGAw0W-wM8qJR2j_8pQEJlbJCENk,2770
|
|
306
302
|
workbench/web_interface/page_views/feature_sets_page_view.py,sha256=BnIU_Yg0g71mg51ryuXIYaEF-SZpJELXUGhNfyXZO8o,4449
|
|
307
|
-
workbench/web_interface/page_views/main_page.py,sha256=
|
|
303
|
+
workbench/web_interface/page_views/main_page.py,sha256=DyChwOGX_KtbJ09pw2IswofbaSWya_PMg_8l7aindvI,7775
|
|
308
304
|
workbench/web_interface/page_views/models_page_view.py,sha256=M0bdC7bAzLyIaE2jviY12FF4abdMFZmg6sFuOY_LaGI,2650
|
|
309
305
|
workbench/web_interface/page_views/page_view.py,sha256=Gh6YnpOGlUejx-bHZAf5pzqoQ1H1R0OSwOpGhOBO06w,455
|
|
310
306
|
workbench/web_interface/page_views/pipelines_page_view.py,sha256=v2pxrIbsHBcYiblfius3JK766NZ7ciD2yPx0t3E5IJo,2656
|
|
311
|
-
workbench-0.8.
|
|
312
|
-
workbench-0.8.
|
|
313
|
-
workbench-0.8.
|
|
314
|
-
workbench-0.8.
|
|
315
|
-
workbench-0.8.
|
|
316
|
-
workbench-0.8.
|
|
307
|
+
workbench-0.8.231.dist-info/licenses/LICENSE,sha256=RTBoTMeEwTgEhS-n8vgQ-VUo5qig0PWVd8xFPKU6Lck,1080
|
|
308
|
+
workbench-0.8.231.dist-info/METADATA,sha256=IR5-3ZuLUOimQQq4lm2hF7dNGNBMkG7GF5EMTBGpo4g,10033
|
|
309
|
+
workbench-0.8.231.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
|
|
310
|
+
workbench-0.8.231.dist-info/entry_points.txt,sha256=t_9tY7iYku9z96qFZZtUgbWDh_nHtehXxLPLBSpAzeM,566
|
|
311
|
+
workbench-0.8.231.dist-info/top_level.txt,sha256=Dhy72zTxaA_o_yRkPZx5zw-fwumnjGaeGf0hBN3jc_w,10
|
|
312
|
+
workbench-0.8.231.dist-info/RECORD,,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
dbc.themes.QUARTZ
|