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.
Files changed (61) hide show
  1. workbench/__init__.py +1 -0
  2. workbench/algorithms/dataframe/__init__.py +2 -0
  3. workbench/algorithms/dataframe/smart_aggregator.py +161 -0
  4. workbench/algorithms/sql/column_stats.py +0 -1
  5. workbench/algorithms/sql/correlations.py +0 -1
  6. workbench/algorithms/sql/descriptive_stats.py +0 -1
  7. workbench/api/meta.py +0 -1
  8. workbench/cached/cached_meta.py +0 -1
  9. workbench/cached/cached_model.py +37 -7
  10. workbench/core/artifacts/endpoint_core.py +12 -2
  11. workbench/core/artifacts/feature_set_core.py +66 -8
  12. workbench/core/cloud_platform/cloud_meta.py +0 -1
  13. workbench/model_script_utils/model_script_utils.py +30 -0
  14. workbench/model_script_utils/uq_harness.py +0 -1
  15. workbench/model_scripts/chemprop/chemprop.template +3 -0
  16. workbench/model_scripts/chemprop/generated_model_script.py +3 -3
  17. workbench/model_scripts/chemprop/model_script_utils.py +30 -0
  18. workbench/model_scripts/custom_models/chem_info/mol_descriptors.py +0 -1
  19. workbench/model_scripts/custom_models/chem_info/molecular_descriptors.py +0 -1
  20. workbench/model_scripts/custom_models/chem_info/morgan_fingerprints.py +0 -1
  21. workbench/model_scripts/pytorch_model/generated_model_script.py +50 -32
  22. workbench/model_scripts/pytorch_model/model_script_utils.py +30 -0
  23. workbench/model_scripts/pytorch_model/pytorch.template +47 -29
  24. workbench/model_scripts/pytorch_model/uq_harness.py +0 -1
  25. workbench/model_scripts/script_generation.py +0 -1
  26. workbench/model_scripts/xgb_model/model_script_utils.py +30 -0
  27. workbench/model_scripts/xgb_model/uq_harness.py +0 -1
  28. workbench/themes/dark/custom.css +85 -8
  29. workbench/themes/dark/plotly.json +6 -6
  30. workbench/themes/light/custom.css +172 -70
  31. workbench/themes/light/plotly.json +9 -9
  32. workbench/themes/midnight_blue/custom.css +48 -29
  33. workbench/themes/midnight_blue/plotly.json +1 -1
  34. workbench/utils/aws_utils.py +0 -1
  35. workbench/utils/chem_utils/mol_descriptors.py +0 -1
  36. workbench/utils/chem_utils/vis.py +137 -27
  37. workbench/utils/clientside_callbacks.py +41 -0
  38. workbench/utils/markdown_utils.py +57 -0
  39. workbench/utils/pipeline_utils.py +0 -1
  40. workbench/utils/plot_utils.py +8 -110
  41. workbench/web_interface/components/experiments/outlier_plot.py +0 -1
  42. workbench/web_interface/components/model_plot.py +2 -0
  43. workbench/web_interface/components/plugin_unit_test.py +0 -1
  44. workbench/web_interface/components/plugins/ag_table.py +2 -4
  45. workbench/web_interface/components/plugins/confusion_matrix.py +3 -6
  46. workbench/web_interface/components/plugins/model_details.py +10 -6
  47. workbench/web_interface/components/plugins/scatter_plot.py +56 -43
  48. workbench/web_interface/components/settings_menu.py +2 -1
  49. workbench/web_interface/page_views/main_page.py +0 -1
  50. {workbench-0.8.224.dist-info → workbench-0.8.231.dist-info}/METADATA +31 -29
  51. {workbench-0.8.224.dist-info → workbench-0.8.231.dist-info}/RECORD +55 -59
  52. {workbench-0.8.224.dist-info → workbench-0.8.231.dist-info}/WHEEL +1 -1
  53. workbench/themes/quartz/base_css.url +0 -1
  54. workbench/themes/quartz/custom.css +0 -117
  55. workbench/themes/quartz/plotly.json +0 -642
  56. workbench/themes/quartz_dark/base_css.url +0 -1
  57. workbench/themes/quartz_dark/custom.css +0 -131
  58. workbench/themes/quartz_dark/plotly.json +0 -642
  59. {workbench-0.8.224.dist-info → workbench-0.8.231.dist-info}/entry_points.txt +0 -0
  60. {workbench-0.8.224.dist-info → workbench-0.8.231.dist-info}/licenses/LICENSE +0 -0
  61. {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, molecule_hover_tooltip
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
- self.id_column = kwargs.get("id_column") or next((col for col in self.df.columns if col.lower() == "id"), None)
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, default to a numeric column)
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
- color_default = kwargs.get("color", numeric_columns[2])
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=marker_size,
316
+ size=marker_sizes,
299
317
  color=marker_color,
300
318
  colorscale=self.colorscale,
301
319
  colorbar=colorbar,
302
- opacity=0.8,
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=marker_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
- @callback(
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(smiles, mol_id=mol_id, width=mol_width, height=mol_height)
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
- # Extract bounding box and offset the molecule tooltip to the right of the point
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": bbox["x0"] + 15,
470
- "x1": bbox["x1"] + mol_width + 15,
471
- "y0": bbox["y0"] - (2 * mol_height + 60),
472
- "y1": bbox["y1"] - (mol_height + 60),
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),
@@ -3,7 +3,6 @@
3
3
  import pandas as pd
4
4
  from typing import Optional, Tuple
5
5
 
6
-
7
6
  # Workbench Imports
8
7
  from workbench.web_interface.page_views.page_view import PageView
9
8
  from workbench.utils.symbols import tag_symbols
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: workbench
3
- Version: 0.8.224
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
- # Recent News
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
- ### Themes
83
+ ## Recent News
84
+ **Chemprop Models!** All the rage for the Open ADMET Challenge.
83
85
 
84
- Everyone knows that good data science requires... **Some Awesome Themes!**
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/82ab4eab-0688-4b93-ad8e-9b954564777b">
90
- <img width="400" alt="theme_dark" src="https://github.com/user-attachments/assets/82ab4eab-0688-4b93-ad8e-9b954564777b" />
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/8a59be19-0c5d-42c6-9922-feafb1a1eecd">
102
- <img width="400" alt="theme_quartz" src="https://github.com/user-attachments/assets/8a59be19-0c5d-42c6-9922-feafb1a1eecd" />
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=Kbp7lpicM-LH4ODhViZyas4uuvlDUzZQW8Dioks19Dc,1241
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=AXpwD4WYOk7odNS9vaKSO0DM-bMRuC93faq0JAltQ54,419
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=IwgddvPVITdAvUgxaK_px2IVSEX-jA-8cPIVFoVkbN8,5943
28
- workbench/algorithms/sql/correlations.py,sha256=0DMgAkzIdR0cApQ_5vs4CxPSRz1qItcAToz7GAOFqzI,3935
29
- workbench/algorithms/sql/descriptive_stats.py,sha256=VxSR5zQi8NmAWrJvOCO3wrmgVHYrwhenSy5Gl0AOqoo,4075
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=1_9989cPvf3hd3tA-83hLijOGNnhwXAF8aZF45adeDQ,8596
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=DTlnb6jblviVmSg9w0F6LRVIuQ_lWBNqGh8vqKP5Baw,12257
51
- workbench/cached/cached_model.py,sha256=c2DosGbGLPnlBrjt67uXoMrAVOVS8tsljUTyflpOHac,4340
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=fLOxgwNmbsrOpKafXN8zLCzazKdpJQZr2zanKJ14KRc,54057
63
- workbench/core/artifacts/feature_set_core.py,sha256=HjZd_RoP07piwALzt0eAjk3co-YJ6B88UdEfv-7Kx40,39404
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=-g4-LTC3D0PXb3VfaXdLR1ERijKuHdffeMK_zhD-koQ,8809
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=rGPdjxmQUPcZNXK_8nKYQWb7IPQ5ietne7UMYRQZpMo,11841
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=70b7dI9Wls03ff6zm2TpfKIsboVBKsj7P7fNzmMe6c0,10305
132
- workbench/model_scripts/script_generation.py,sha256=w3L2VYGnGUvBtd01BWzH38DuHKULtYsc_Xz_3_Eavvo,8258
133
- workbench/model_scripts/chemprop/chemprop.template,sha256=0d_7Pmna6UCR1lyx6cdXnP9eC_sSXW9dOqXx-5W0MX4,35814
134
- workbench/model_scripts/chemprop/generated_model_script.py,sha256=j-XxQ0qLDQpWykAkuv4p2hmFxedriL30muw6pOc2W-c,36003
135
- workbench/model_scripts/chemprop/model_script_utils.py,sha256=rGPdjxmQUPcZNXK_8nKYQWb7IPQ5ietne7UMYRQZpMo,11841
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=c8gkHZ-8s3HJaW9zN9pnYGK7YVW8Y0xFqQ1G_ysrF2Y,18789
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=xljMjdfh4Idi4v1Afq1zZxvF1SDa7pDOLSAhvGBEj88,2891
142
- workbench/model_scripts/custom_models/chem_info/morgan_fingerprints.py,sha256=LqVh_AHObo0uxHt_uNmeemScTLjM2j9C3I_QFJXdmUI,3232
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=FEpTjCDSbw-xAqLNGXas90KsN2-h7qs78nc24VNeBx8,25348
163
- workbench/model_scripts/pytorch_model/model_script_utils.py,sha256=rGPdjxmQUPcZNXK_8nKYQWb7IPQ5ietne7UMYRQZpMo,11841
164
- workbench/model_scripts/pytorch_model/pytorch.template,sha256=KOH7nhq_3u0pHmjGymY5aycF0_ZlwLQ16qmDKUQcE9k,21091
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=70b7dI9Wls03ff6zm2TpfKIsboVBKsj7P7fNzmMe6c0,10305
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=rGPdjxmQUPcZNXK_8nKYQWb7IPQ5ietne7UMYRQZpMo,11841
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=70b7dI9Wls03ff6zm2TpfKIsboVBKsj7P7fNzmMe6c0,10305
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=hw5R9JSH40ZvtSo1GXRqDb4XDze6uiGkU0IL5flZdaI,2754
195
- workbench/themes/dark/plotly.json,sha256=w37jZYCWz18FdiYXgOwBKyBgtvl5JYMG4QSFMocFo2A,18184
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=JCgBcYYNexFrQEHOTvpatuD4lEUKbENljpPNlsB_pwA,3503
199
- workbench/themes/light/plotly.json,sha256=Fm9HIEgp1VQlqOmoT3eyUG5B9GD62GZR5toodBD-A8Y,18734
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=Aob0GII0umQOEqLveSoFD-YBrf6uT1ZEjDywl5ZMDvs,4004
203
- workbench/themes/midnight_blue/plotly.json,sha256=IQYIdzT5aDcCbhRGDwA7byUNs_tFLHVjAfNzWLCkXFI,18578
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=x8c_WxtdSKmBqNg8P_Z6K2m4AsSMEiD_kh2nVaUZ28c,22077
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=4lEqzgG4EVmLcvvKKNUwNxVCySLQKJTJmWDiaDroI1w,8306
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=yzR5tgAzz6zNqvxzZR6YqsbS7r3QDKzBXozaM_ADXlc,2171
246
- workbench/utils/plot_utils.py,sha256=iW7kjUgBTioeRi9IIZN7YRgXwuxQks9ApAihn-j7zkY,11022
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=c8gkHZ-8s3HJaW9zN9pnYGK7YVW8Y0xFqQ1G_ysrF2Y,18789
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=ZnNv2o0mab3z09FP8oqtT3z7bAPtBJ61p5u15A2LR1s,8713
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=9KSILXvq1L_DUZszj5ozWwi43jEtJlpWdqSs3mXBPeQ,2774
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=Lx3HhIMHzrwDUYs2bADSFYzQq3sFHS9RyA415hyUOdc,7747
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=JHh7kfLtpkWCVQMdcKU_Qby3GMJ5GoOQrZOhbEiN-Fw,6609
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=5bWsmJEXyt50npeQxLHXCPtiq4WRVgg938Sl0DVjNWg,3647
289
- workbench/web_interface/components/plugins/ag_table.py,sha256=HrPOMotlOGigk0v8Cxx_doSHXdOKTT1-bzlsqDwwzng,3979
290
- workbench/web_interface/components/plugins/confusion_matrix.py,sha256=1K94JSlDwQwdf5uDYVydQzY-EQm89hYXchxbXoNvons,7176
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=mgAZdhZhKcOoDKYhazGbKb5qM5et0U6nX_7VeWsz_zg,9177
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=quF4oVUsuVOnqQk7_ix-JIZD4LkpI8IeSvSIeNCLSZQ,22582
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=X4-KyGTKLAdxR-Zk2niuLJB2Y_p75nfeF_9Y9YXrk94,7776
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.224.dist-info/licenses/LICENSE,sha256=RTBoTMeEwTgEhS-n8vgQ-VUo5qig0PWVd8xFPKU6Lck,1080
312
- workbench-0.8.224.dist-info/METADATA,sha256=cVbRbeJqtXHvwRmb4XQnTCyMGJGRHQL2hWhTSMZppLQ,10102
313
- workbench-0.8.224.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
314
- workbench-0.8.224.dist-info/entry_points.txt,sha256=t_9tY7iYku9z96qFZZtUgbWDh_nHtehXxLPLBSpAzeM,566
315
- workbench-0.8.224.dist-info/top_level.txt,sha256=Dhy72zTxaA_o_yRkPZx5zw-fwumnjGaeGf0hBN3jc_w,10
316
- workbench-0.8.224.dist-info/RECORD,,
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,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1 +0,0 @@
1
- dbc.themes.QUARTZ