workbench 0.8.224__tar.gz → 0.8.230__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (819) hide show
  1. {workbench-0.8.224 → workbench-0.8.230}/PKG-INFO +31 -29
  2. {workbench-0.8.224 → workbench-0.8.230}/README.md +29 -27
  3. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/Dockerfile +18 -9
  4. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/data_sources/page.py +2 -10
  5. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/endpoints/page.py +1 -3
  6. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/feature_sets/page.py +2 -8
  7. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/main/page.py +4 -20
  8. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/models/callbacks.py +4 -4
  9. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/models/layout.py +8 -4
  10. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/models/page.py +4 -2
  11. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/pipelines/callbacks.py +0 -1
  12. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/status/page.py +0 -1
  13. {workbench-0.8.224 → workbench-0.8.230}/applications/compound_explorer/app.py +0 -1
  14. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_core/workbench_core/workbench_core_stack.py +1 -0
  15. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_dashboard_full/app.py +1 -1
  16. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_dashboard_lite/app.py +1 -1
  17. {workbench-0.8.224 → workbench-0.8.230}/docs/admin/dashboard_docker_push.md +3 -2
  18. {workbench-0.8.224 → workbench-0.8.230}/docs/themes/details.md +17 -53
  19. {workbench-0.8.224 → workbench-0.8.230}/docs/themes/index.md +30 -0
  20. {workbench-0.8.224 → workbench-0.8.230}/examples/datasource/datasource_from_df.py +0 -1
  21. {workbench-0.8.224 → workbench-0.8.230}/examples/ml_pipelines/wine_classifier.py +0 -1
  22. {workbench-0.8.224 → workbench-0.8.230}/examples/plugins/components/custom_plugin.py +0 -1
  23. {workbench-0.8.224 → workbench-0.8.230}/examples/plugins/components/endpoint_plugin.py +0 -2
  24. {workbench-0.8.224 → workbench-0.8.230}/examples/plugins/components/endpoint_turbo.py +0 -1
  25. {workbench-0.8.224 → workbench-0.8.230}/examples/plugins/pages/plugin_page_2.py +1 -1
  26. {workbench-0.8.224 → workbench-0.8.230}/examples/plugins/pages/plugin_page_3.py +1 -1
  27. {workbench-0.8.224/src/workbench/utils/chem_utils → workbench-0.8.230/feature_endpoints/model_scripts/molecular_utils}/mol_descriptors.py +0 -1
  28. {workbench-0.8.224 → workbench-0.8.230}/feature_endpoints/model_scripts/rdkit_mordred_model_script.py +0 -1
  29. {workbench-0.8.224 → workbench-0.8.230}/feature_endpoints/model_scripts/rdkit_mordred_model_script_keep_salts.py +0 -1
  30. {workbench-0.8.224 → workbench-0.8.230}/feature_endpoints/rdkit_mordred_keep_salts_v1.py +0 -1
  31. {workbench-0.8.224 → workbench-0.8.230}/feature_endpoints/rdkit_mordred_v1.py +0 -1
  32. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/ml_pipelines/Dockerfile +1 -1
  33. {workbench-0.8.224 → workbench-0.8.230}/open_admet/hello_world.py +0 -1
  34. {workbench-0.8.224 → workbench-0.8.230}/pyproject.toml +1 -1
  35. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/athena_ddl_mixed_case.py +0 -1
  36. {workbench-0.8.224 → workbench-0.8.230}/scripts/endpoint_timing.py +0 -1
  37. {workbench-0.8.224 → workbench-0.8.230}/scripts/storage/dns_data_to_features.py +0 -1
  38. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/__init__.py +1 -0
  39. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/dataframe/__init__.py +2 -0
  40. workbench-0.8.230/src/workbench/algorithms/dataframe/smart_aggregator.py +161 -0
  41. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/sql/column_stats.py +0 -1
  42. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/sql/correlations.py +0 -1
  43. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/sql/descriptive_stats.py +0 -1
  44. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/api/meta.py +0 -1
  45. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/cached/cached_meta.py +0 -1
  46. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/cached/cached_model.py +37 -7
  47. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/artifacts/endpoint_core.py +12 -2
  48. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/artifacts/feature_set_core.py +66 -8
  49. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/cloud_platform/cloud_meta.py +0 -1
  50. {workbench-0.8.224/src/workbench/model_scripts/pytorch_model → workbench-0.8.230/src/workbench/model_script_utils}/model_script_utils.py +30 -0
  51. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_script_utils/uq_harness.py +0 -1
  52. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/chemprop/chemprop.template +3 -0
  53. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/chemprop/generated_model_script.py +3 -3
  54. {workbench-0.8.224/src/workbench/model_script_utils → workbench-0.8.230/src/workbench/model_scripts/chemprop}/model_script_utils.py +30 -0
  55. {workbench-0.8.224/feature_endpoints/model_scripts/molecular_utils → workbench-0.8.230/src/workbench/model_scripts/custom_models/chem_info}/mol_descriptors.py +0 -1
  56. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/chem_info/molecular_descriptors.py +0 -1
  57. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/chem_info/morgan_fingerprints.py +0 -1
  58. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/pytorch_model/generated_model_script.py +50 -32
  59. {workbench-0.8.224/src/workbench/model_scripts/chemprop → workbench-0.8.230/src/workbench/model_scripts/pytorch_model}/model_script_utils.py +30 -0
  60. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/pytorch_model/pytorch.template +47 -29
  61. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/pytorch_model/uq_harness.py +0 -1
  62. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/script_generation.py +0 -1
  63. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/xgb_model/model_script_utils.py +30 -0
  64. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/xgb_model/uq_harness.py +0 -1
  65. {workbench-0.8.224/src/workbench/themes/quartz_dark → workbench-0.8.230/src/workbench/themes/dark}/custom.css +59 -0
  66. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/themes/dark/plotly.json +5 -5
  67. workbench-0.8.230/src/workbench/themes/light/custom.css +254 -0
  68. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/themes/light/plotly.json +9 -9
  69. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/themes/midnight_blue/custom.css +25 -0
  70. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/aws_utils.py +0 -1
  71. {workbench-0.8.224/src/workbench/model_scripts/custom_models/chem_info → workbench-0.8.230/src/workbench/utils/chem_utils}/mol_descriptors.py +0 -1
  72. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/chem_utils/vis.py +137 -27
  73. workbench-0.8.230/src/workbench/utils/clientside_callbacks.py +41 -0
  74. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/markdown_utils.py +57 -0
  75. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/pipeline_utils.py +0 -1
  76. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/plot_utils.py +8 -110
  77. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/experiments/outlier_plot.py +0 -1
  78. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/model_plot.py +2 -0
  79. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/plugin_unit_test.py +0 -1
  80. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/plugins/ag_table.py +2 -4
  81. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/plugins/confusion_matrix.py +3 -6
  82. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/plugins/model_details.py +10 -6
  83. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/plugins/scatter_plot.py +56 -43
  84. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/page_views/main_page.py +0 -1
  85. {workbench-0.8.224 → workbench-0.8.230}/src/workbench.egg-info/PKG-INFO +31 -29
  86. {workbench-0.8.224 → workbench-0.8.230}/src/workbench.egg-info/SOURCES.txt +2 -6
  87. {workbench-0.8.224 → workbench-0.8.230}/src/workbench.egg-info/requires.txt +1 -1
  88. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/create_aqsol_rt_artifacts.py +0 -1
  89. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/create_copy_artifacts.py +0 -1
  90. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/create_pipeline_model.py +0 -1
  91. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/create_wine_artifacts.py +0 -1
  92. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/delete_stress_test_artifacts.py +0 -1
  93. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/delete_test_artifacts.py +0 -1
  94. {workbench-0.8.224 → workbench-0.8.230}/tests/artifacts/empty_model_group.py +0 -1
  95. {workbench-0.8.224 → workbench-0.8.230}/tests/artifacts/model_metrics_tests.py +0 -1
  96. {workbench-0.8.224 → workbench-0.8.230}/tests/plugin_tests/crashing_plugin.py +0 -1
  97. {workbench-0.8.224 → workbench-0.8.230}/tests/web_components/plugin_interface_test.py +0 -1
  98. {workbench-0.8.224 → workbench-0.8.230}/ui_testing/table_comparison.py +1 -1
  99. workbench-0.8.224/src/workbench/themes/dark/custom.css +0 -131
  100. workbench-0.8.224/src/workbench/themes/light/custom.css +0 -151
  101. workbench-0.8.224/src/workbench/themes/quartz/base_css.url +0 -1
  102. workbench-0.8.224/src/workbench/themes/quartz/custom.css +0 -117
  103. workbench-0.8.224/src/workbench/themes/quartz/plotly.json +0 -642
  104. workbench-0.8.224/src/workbench/themes/quartz_dark/base_css.url +0 -1
  105. workbench-0.8.224/src/workbench/themes/quartz_dark/plotly.json +0 -642
  106. {workbench-0.8.224 → workbench-0.8.230}/.flake8 +0 -0
  107. {workbench-0.8.224 → workbench-0.8.230}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  108. {workbench-0.8.224 → workbench-0.8.230}/.github/dependabot.yml +0 -0
  109. {workbench-0.8.224 → workbench-0.8.230}/.github/workflows/deploy-docs.yml +0 -0
  110. {workbench-0.8.224 → workbench-0.8.230}/.github/workflows/python-lint.yml +0 -0
  111. {workbench-0.8.224 → workbench-0.8.230}/.gitignore +0 -0
  112. {workbench-0.8.224 → workbench-0.8.230}/CONTRIBUTING.md +0 -0
  113. {workbench-0.8.224 → workbench-0.8.230}/Dockerfile +0 -0
  114. {workbench-0.8.224 → workbench-0.8.230}/LICENSE +0 -0
  115. {workbench-0.8.224 → workbench-0.8.230}/Makefile +0 -0
  116. {workbench-0.8.224 → workbench-0.8.230}/SECURITY.md +0 -0
  117. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/README.md +0 -0
  118. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/app.py +0 -0
  119. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/assets/favicon.ico +0 -0
  120. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/dashboard +0 -0
  121. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/deploy.sh +0 -0
  122. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/nginx.conf +0 -0
  123. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/open_source_config.json +0 -0
  124. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/data_sources/callbacks.py +0 -0
  125. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/data_sources/layout.py +0 -0
  126. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/endpoints/callbacks.py +0 -0
  127. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/endpoints/layout.py +0 -0
  128. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/feature_sets/callbacks.py +0 -0
  129. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/feature_sets/layout.py +0 -0
  130. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/license/page.py +0 -0
  131. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/main/callbacks.py +0 -0
  132. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/main/layout.py +0 -0
  133. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/pipelines/layout.py +0 -0
  134. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/pages/pipelines/page.py +0 -0
  135. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/static/dark.css +0 -0
  136. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/static/light.css +0 -0
  137. {workbench-0.8.224 → workbench-0.8.230}/applications/aws_dashboard/supervisord.conf +0 -0
  138. {workbench-0.8.224 → workbench-0.8.230}/applications/compound_explorer/Dockerfile +0 -0
  139. {workbench-0.8.224 → workbench-0.8.230}/applications/compound_explorer/README.md +0 -0
  140. {workbench-0.8.224 → workbench-0.8.230}/applications/compound_explorer/assets/favicon.ico +0 -0
  141. {workbench-0.8.224 → workbench-0.8.230}/applications/compound_explorer/callbacks.py +0 -0
  142. {workbench-0.8.224 → workbench-0.8.230}/applications/compound_explorer/explorer +0 -0
  143. {workbench-0.8.224 → workbench-0.8.230}/applications/compound_explorer/layout.py +0 -0
  144. {workbench-0.8.224 → workbench-0.8.230}/applications/compound_explorer/nginx.conf +0 -0
  145. {workbench-0.8.224 → workbench-0.8.230}/applications/compound_explorer/open_source_config.json +0 -0
  146. {workbench-0.8.224 → workbench-0.8.230}/applications/compound_explorer/requirements.txt +0 -0
  147. {workbench-0.8.224 → workbench-0.8.230}/applications/compound_explorer/storage/callbacks.py +0 -0
  148. {workbench-0.8.224 → workbench-0.8.230}/applications/compound_explorer/storage/callbacks_new.py +0 -0
  149. {workbench-0.8.224 → workbench-0.8.230}/applications/compound_explorer/storage/layout_new.py +0 -0
  150. {workbench-0.8.224 → workbench-0.8.230}/applications/compound_explorer/supervisord.conf +0 -0
  151. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/aws_account_setup.py +0 -0
  152. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/aws_identity_check.py +0 -0
  153. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/build_ml_pipeline.py +0 -0
  154. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/compound_explorer/.gitignore +0 -0
  155. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/compound_explorer/README.md +0 -0
  156. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/compound_explorer/app.py +0 -0
  157. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/compound_explorer/cdk.json +0 -0
  158. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/compound_explorer/compound_explorer/__init__.py +0 -0
  159. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/compound_explorer/compound_explorer/compound_explorer_stack.py +0 -0
  160. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/compound_explorer/requirements.txt +0 -0
  161. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/event_bridge/Readme.md +0 -0
  162. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_compute/README.md +0 -0
  163. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_compute/app.py +0 -0
  164. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_compute/cdk.json +0 -0
  165. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_compute/requirements.txt +0 -0
  166. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_compute/workbench_compute/__init__.py +0 -0
  167. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_compute/workbench_compute/lambdas/batch_failure/handler.py +0 -0
  168. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_compute/workbench_compute/lambdas/batch_trigger/handler.py +0 -0
  169. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_compute/workbench_compute/workbench_compute_stack.py +0 -0
  170. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_core/.gitignore +0 -0
  171. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_core/README.md +0 -0
  172. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_core/app.py +0 -0
  173. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_core/cdk.json +0 -0
  174. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_core/requirements-dev.txt +0 -0
  175. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_core/requirements.txt +0 -0
  176. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_core/source.bat +0 -0
  177. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_core/workbench_core/__init__.py +0 -0
  178. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_dashboard_full/.gitignore +0 -0
  179. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_dashboard_full/README.md +0 -0
  180. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_dashboard_full/cdk.json +0 -0
  181. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_dashboard_full/requirements-dev.txt +0 -0
  182. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_dashboard_full/requirements.txt +0 -0
  183. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_dashboard_full/source.bat +0 -0
  184. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_dashboard_full/workbench_dashboard_full/__init__.py +0 -0
  185. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_dashboard_full/workbench_dashboard_full/workbench_dashboard_stack.py +0 -0
  186. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_dashboard_lite/.gitignore +0 -0
  187. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_dashboard_lite/README.md +0 -0
  188. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_dashboard_lite/cdk.json +0 -0
  189. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_dashboard_lite/requirements.txt +0 -0
  190. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_dashboard_lite/workbench_dashboard_lite/__init__.py +0 -0
  191. {workbench-0.8.224 → workbench-0.8.230}/aws_setup/workbench_dashboard_lite/workbench_dashboard_lite/workbench_dashboard_stack.py +0 -0
  192. {workbench-0.8.224 → workbench-0.8.230}/data/abalone.csv +0 -0
  193. {workbench-0.8.224 → workbench-0.8.230}/data/karate_graph.json +0 -0
  194. {workbench-0.8.224 → workbench-0.8.230}/data/test_data.csv +0 -0
  195. {workbench-0.8.224 → workbench-0.8.230}/data/test_data.json +0 -0
  196. {workbench-0.8.224 → workbench-0.8.230}/data/wine_dataset.csv +0 -0
  197. {workbench-0.8.224 → workbench-0.8.230}/deploy_docker.sh +0 -0
  198. {workbench-0.8.224 → workbench-0.8.230}/docs/admin/aws_service_limits.md +0 -0
  199. {workbench-0.8.224 → workbench-0.8.230}/docs/admin/base_docker_push.md +0 -0
  200. {workbench-0.8.224 → workbench-0.8.230}/docs/admin/dashboard_s3_plugins.md +0 -0
  201. {workbench-0.8.224 → workbench-0.8.230}/docs/admin/explorer_docker_push.md +0 -0
  202. {workbench-0.8.224 → workbench-0.8.230}/docs/admin/images/dashboard_secret_click.png +0 -0
  203. {workbench-0.8.224 → workbench-0.8.230}/docs/admin/images/serverless_quotas.png +0 -0
  204. {workbench-0.8.224 → workbench-0.8.230}/docs/admin/images/status_showing_S3_path.png +0 -0
  205. {workbench-0.8.224 → workbench-0.8.230}/docs/admin/pypi_release.md +0 -0
  206. {workbench-0.8.224 → workbench-0.8.230}/docs/admin/workbench_docker_for_lambdas.md +0 -0
  207. {workbench-0.8.224 → workbench-0.8.230}/docs/advanced_models/images/confidence.jpg +0 -0
  208. {workbench-0.8.224 → workbench-0.8.230}/docs/advanced_models/index.md +0 -0
  209. {workbench-0.8.224 → workbench-0.8.230}/docs/api_classes/data_source.md +0 -0
  210. {workbench-0.8.224 → workbench-0.8.230}/docs/api_classes/df_store.md +0 -0
  211. {workbench-0.8.224 → workbench-0.8.230}/docs/api_classes/endpoint.md +0 -0
  212. {workbench-0.8.224 → workbench-0.8.230}/docs/api_classes/feature_set.md +0 -0
  213. {workbench-0.8.224 → workbench-0.8.230}/docs/api_classes/meta.md +0 -0
  214. {workbench-0.8.224 → workbench-0.8.230}/docs/api_classes/model.md +0 -0
  215. {workbench-0.8.224 → workbench-0.8.230}/docs/api_classes/monitor.md +0 -0
  216. {workbench-0.8.224 → workbench-0.8.230}/docs/api_classes/overview.md +0 -0
  217. {workbench-0.8.224 → workbench-0.8.230}/docs/api_classes/parameter_store.md +0 -0
  218. {workbench-0.8.224 → workbench-0.8.230}/docs/api_classes/pipelines.md +0 -0
  219. {workbench-0.8.224 → workbench-0.8.230}/docs/api_classes/views.md +0 -0
  220. {workbench-0.8.224 → workbench-0.8.230}/docs/aws_setup/aws_access_management.md +0 -0
  221. {workbench-0.8.224 → workbench-0.8.230}/docs/aws_setup/aws_client_vpn.md +0 -0
  222. {workbench-0.8.224 → workbench-0.8.230}/docs/aws_setup/aws_setup.md +0 -0
  223. {workbench-0.8.224 → workbench-0.8.230}/docs/aws_setup/aws_tips_and_tricks.md +0 -0
  224. {workbench-0.8.224 → workbench-0.8.230}/docs/aws_setup/core_stack.md +0 -0
  225. {workbench-0.8.224 → workbench-0.8.230}/docs/aws_setup/dashboard_stack.md +0 -0
  226. {workbench-0.8.224 → workbench-0.8.230}/docs/aws_setup/domain_cert_setup.md +0 -0
  227. {workbench-0.8.224 → workbench-0.8.230}/docs/aws_setup/full_pipeline.md +0 -0
  228. {workbench-0.8.224 → workbench-0.8.230}/docs/aws_setup/iam_assume_role.md +0 -0
  229. {workbench-0.8.224 → workbench-0.8.230}/docs/aws_setup/sso_assume_role.md +0 -0
  230. {workbench-0.8.224 → workbench-0.8.230}/docs/blogs/aws_credentials_lock.md +0 -0
  231. {workbench-0.8.224 → workbench-0.8.230}/docs/blogs/canonicalization_and_tautomerization.md +0 -0
  232. {workbench-0.8.224 → workbench-0.8.230}/docs/blogs/compound_etl.md +0 -0
  233. {workbench-0.8.224 → workbench-0.8.230}/docs/blogs/compound_explorer.md +0 -0
  234. {workbench-0.8.224 → workbench-0.8.230}/docs/blogs/descriptor_drilldown.md +0 -0
  235. {workbench-0.8.224 → workbench-0.8.230}/docs/blogs/eda.md +0 -0
  236. {workbench-0.8.224 → workbench-0.8.230}/docs/blogs/feature_importances.md +0 -0
  237. {workbench-0.8.224 → workbench-0.8.230}/docs/blogs/fun_with_workbench/fun_with_endpoints.md +0 -0
  238. {workbench-0.8.224 → workbench-0.8.230}/docs/blogs/htg.md +0 -0
  239. {workbench-0.8.224 → workbench-0.8.230}/docs/blogs/index.md +0 -0
  240. {workbench-0.8.224 → workbench-0.8.230}/docs/blogs/model_monitoring.md +0 -0
  241. {workbench-0.8.224 → workbench-0.8.230}/docs/blogs/residual_analysis.md +0 -0
  242. {workbench-0.8.224 → workbench-0.8.230}/docs/cached/cached_data_source.md +0 -0
  243. {workbench-0.8.224 → workbench-0.8.230}/docs/cached/cached_endpoint.md +0 -0
  244. {workbench-0.8.224 → workbench-0.8.230}/docs/cached/cached_feature_set.md +0 -0
  245. {workbench-0.8.224 → workbench-0.8.230}/docs/cached/cached_meta.md +0 -0
  246. {workbench-0.8.224 → workbench-0.8.230}/docs/cached/cached_model.md +0 -0
  247. {workbench-0.8.224 → workbench-0.8.230}/docs/cached/overview.md +0 -0
  248. {workbench-0.8.224 → workbench-0.8.230}/docs/chem_utils/index.md +0 -0
  249. {workbench-0.8.224 → workbench-0.8.230}/docs/cloudwatch/index.md +0 -0
  250. {workbench-0.8.224 → workbench-0.8.230}/docs/comparisons/workbench_vs_databricks.md +0 -0
  251. {workbench-0.8.224 → workbench-0.8.230}/docs/compound_explorer/tox21.md +0 -0
  252. {workbench-0.8.224 → workbench-0.8.230}/docs/compound_explorer/toxicity_modeling.md +0 -0
  253. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/artifacts/artifact.md +0 -0
  254. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/artifacts/athena_source.md +0 -0
  255. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/artifacts/data_source_abstract.md +0 -0
  256. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/artifacts/endpoint_core.md +0 -0
  257. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/artifacts/feature_set_core.md +0 -0
  258. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/artifacts/model_core.md +0 -0
  259. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/artifacts/monitor_core.md +0 -0
  260. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/artifacts/overview.md +0 -0
  261. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/overview.md +0 -0
  262. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/transforms/data_loaders_heavy.md +0 -0
  263. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/transforms/data_loaders_light.md +0 -0
  264. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/transforms/data_to_features.md +0 -0
  265. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/transforms/features_to_model.md +0 -0
  266. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/transforms/model_to_endpoint.md +0 -0
  267. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/transforms/overview.md +0 -0
  268. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/transforms/pandas_transforms.md +0 -0
  269. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/transforms/transform.md +0 -0
  270. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/views/computation_view.md +0 -0
  271. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/views/display_view.md +0 -0
  272. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/views/inference_view.md +0 -0
  273. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/views/overview.md +0 -0
  274. {workbench-0.8.224 → workbench-0.8.230}/docs/core_classes/views/training_view.md +0 -0
  275. {workbench-0.8.224 → workbench-0.8.230}/docs/data_algorithms/dataframes/overview.md +0 -0
  276. {workbench-0.8.224 → workbench-0.8.230}/docs/data_algorithms/graphs/overview.md +0 -0
  277. {workbench-0.8.224 → workbench-0.8.230}/docs/data_algorithms/overview.md +0 -0
  278. {workbench-0.8.224 → workbench-0.8.230}/docs/data_algorithms/spark/overview.md +0 -0
  279. {workbench-0.8.224 → workbench-0.8.230}/docs/data_algorithms/sql/overview.md +0 -0
  280. {workbench-0.8.224 → workbench-0.8.230}/docs/enterprise/index.md +0 -0
  281. {workbench-0.8.224 → workbench-0.8.230}/docs/enterprise/private_saas.md +0 -0
  282. {workbench-0.8.224 → workbench-0.8.230}/docs/enterprise/project_branding.md +0 -0
  283. {workbench-0.8.224 → workbench-0.8.230}/docs/enterprise/themes.md +0 -0
  284. {workbench-0.8.224 → workbench-0.8.230}/docs/getting_started/index.md +0 -0
  285. {workbench-0.8.224 → workbench-0.8.230}/docs/glue/index.md +0 -0
  286. {workbench-0.8.224 → workbench-0.8.230}/docs/images/big_spider.png +0 -0
  287. {workbench-0.8.224 → workbench-0.8.230}/docs/images/graph_representation.png +0 -0
  288. {workbench-0.8.224 → workbench-0.8.230}/docs/images/powered_aws_dark_blue.png +0 -0
  289. {workbench-0.8.224 → workbench-0.8.230}/docs/images/powered_aws_transparent.png +0 -0
  290. {workbench-0.8.224 → workbench-0.8.230}/docs/images/powered_aws_white.png +0 -0
  291. {workbench-0.8.224 → workbench-0.8.230}/docs/images/powered_aws_with_tm_grey.png +0 -0
  292. {workbench-0.8.224 → workbench-0.8.230}/docs/images/scp.png +0 -0
  293. {workbench-0.8.224 → workbench-0.8.230}/docs/images/scp_labs.png +0 -0
  294. {workbench-0.8.224 → workbench-0.8.230}/docs/images/small_spider.png +0 -0
  295. {workbench-0.8.224 → workbench-0.8.230}/docs/images/workbench_concepts.png +0 -0
  296. {workbench-0.8.224 → workbench-0.8.230}/docs/index.md +0 -0
  297. {workbench-0.8.224 → workbench-0.8.230}/docs/lambda_layer/index.md +0 -0
  298. {workbench-0.8.224 → workbench-0.8.230}/docs/misc/faq.md +0 -0
  299. {workbench-0.8.224 → workbench-0.8.230}/docs/misc/general_info.md +0 -0
  300. {workbench-0.8.224 → workbench-0.8.230}/docs/misc/scp_consulting.md +0 -0
  301. {workbench-0.8.224 → workbench-0.8.230}/docs/misc/workbench_classes_concepts.md +0 -0
  302. {workbench-0.8.224 → workbench-0.8.230}/docs/model_utils/index.md +0 -0
  303. {workbench-0.8.224 → workbench-0.8.230}/docs/plugins/index.md +0 -0
  304. {workbench-0.8.224 → workbench-0.8.230}/docs/presentations/index.md +0 -0
  305. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/0_8_106.md +0 -0
  306. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/0_8_158.md +0 -0
  307. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/0_8_50.md +0 -0
  308. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/0_8_55.md +0 -0
  309. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/0_8_58.md +0 -0
  310. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/0_8_60.md +0 -0
  311. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/0_8_71.md +0 -0
  312. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/0_8_74.md +0 -0
  313. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/0_8_78.md +0 -0
  314. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/archived/0_7_8.md +0 -0
  315. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/archived/0_8_11.md +0 -0
  316. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/archived/0_8_20.md +0 -0
  317. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/archived/0_8_22.md +0 -0
  318. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/archived/0_8_23.md +0 -0
  319. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/archived/0_8_27.md +0 -0
  320. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/archived/0_8_29.md +0 -0
  321. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/archived/0_8_33.md +0 -0
  322. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/archived/0_8_35.md +0 -0
  323. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/archived/0_8_36.md +0 -0
  324. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/archived/0_8_39.md +0 -0
  325. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/archived/0_8_42.md +0 -0
  326. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/archived/0_8_46.md +0 -0
  327. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/archived/0_8_6.md +0 -0
  328. {workbench-0.8.224 → workbench-0.8.230}/docs/release_notes/archived/0_8_8.md +0 -0
  329. {workbench-0.8.224 → workbench-0.8.230}/docs/repl/index.md +0 -0
  330. {workbench-0.8.224 → workbench-0.8.230}/docs/road_maps/0_9_0.md +0 -0
  331. {workbench-0.8.224 → workbench-0.8.230}/docs/road_maps/0_9_5.md +0 -0
  332. {workbench-0.8.224 → workbench-0.8.230}/examples/ag-grid/hello_world.py +0 -0
  333. {workbench-0.8.224 → workbench-0.8.230}/examples/chem_utils/tautomerize_smiles.py +0 -0
  334. {workbench-0.8.224 → workbench-0.8.230}/examples/datasource/datasource_from_s3.py +0 -0
  335. {workbench-0.8.224 → workbench-0.8.230}/examples/datasource/datasource_query.py +0 -0
  336. {workbench-0.8.224 → workbench-0.8.230}/examples/datasource/datasource_stats.py +0 -0
  337. {workbench-0.8.224 → workbench-0.8.230}/examples/datasource/datasource_to_featureset.py +0 -0
  338. {workbench-0.8.224 → workbench-0.8.230}/examples/endpoint/endpoint_details.py +0 -0
  339. {workbench-0.8.224 → workbench-0.8.230}/examples/endpoint/endpoint_inference.py +0 -0
  340. {workbench-0.8.224 → workbench-0.8.230}/examples/endpoint/endpoint_metrics.py +0 -0
  341. {workbench-0.8.224 → workbench-0.8.230}/examples/featureset/featureset_eda.py +0 -0
  342. {workbench-0.8.224 → workbench-0.8.230}/examples/featureset/featureset_query.py +0 -0
  343. {workbench-0.8.224 → workbench-0.8.230}/examples/full_ml_pipeline.py +0 -0
  344. {workbench-0.8.224 → workbench-0.8.230}/examples/glue_jobs/glue_example_1.py +0 -0
  345. {workbench-0.8.224 → workbench-0.8.230}/examples/glue_jobs/glue_example_2.py +0 -0
  346. {workbench-0.8.224 → workbench-0.8.230}/examples/glue_jobs/glue_example_3.py +0 -0
  347. {workbench-0.8.224 → workbench-0.8.230}/examples/glue_jobs/glue_launcher_examples/example_1.py +0 -0
  348. {workbench-0.8.224 → workbench-0.8.230}/examples/glue_jobs/glue_launcher_examples/example_2.py +0 -0
  349. {workbench-0.8.224 → workbench-0.8.230}/examples/meta/meta_list_endpoints.py +0 -0
  350. {workbench-0.8.224 → workbench-0.8.230}/examples/meta/meta_list_models.py +0 -0
  351. {workbench-0.8.224 → workbench-0.8.230}/examples/meta/meta_model_metrics.py +0 -0
  352. {workbench-0.8.224 → workbench-0.8.230}/examples/ml_pipelines/list_models.py +0 -0
  353. {workbench-0.8.224 → workbench-0.8.230}/examples/model_utils/model_metrics.py +0 -0
  354. {workbench-0.8.224 → workbench-0.8.230}/examples/model_utils/model_to_endpoint.py +0 -0
  355. {workbench-0.8.224 → workbench-0.8.230}/examples/model_utils/onboard_model.py +0 -0
  356. {workbench-0.8.224 → workbench-0.8.230}/examples/models/chemprop.py +0 -0
  357. {workbench-0.8.224 → workbench-0.8.230}/examples/models/chemprop_foundation.py +0 -0
  358. {workbench-0.8.224 → workbench-0.8.230}/examples/models/custom_model.py +0 -0
  359. {workbench-0.8.224 → workbench-0.8.230}/examples/models/dbscan.py +0 -0
  360. {workbench-0.8.224 → workbench-0.8.230}/examples/models/knn.py +0 -0
  361. {workbench-0.8.224 → workbench-0.8.230}/examples/models/meta_model.py +0 -0
  362. {workbench-0.8.224 → workbench-0.8.230}/examples/models/pytorch.py +0 -0
  363. {workbench-0.8.224 → workbench-0.8.230}/examples/models/random_forest.py +0 -0
  364. {workbench-0.8.224 → workbench-0.8.230}/examples/models/smiles_to_fingerprints.py +0 -0
  365. {workbench-0.8.224 → workbench-0.8.230}/examples/models/smiles_to_md_v1.py +0 -0
  366. {workbench-0.8.224 → workbench-0.8.230}/examples/models/uq/bayesian_ridge.py +0 -0
  367. {workbench-0.8.224 → workbench-0.8.230}/examples/models/uq/ensemble_xgb.py +0 -0
  368. {workbench-0.8.224 → workbench-0.8.230}/examples/models/uq/gaussian_process.py +0 -0
  369. {workbench-0.8.224 → workbench-0.8.230}/examples/models/uq/meta_uq.py +0 -0
  370. {workbench-0.8.224 → workbench-0.8.230}/examples/models/uq/ngboost.py +0 -0
  371. {workbench-0.8.224 → workbench-0.8.230}/examples/models/uq/quant_xgb.py +0 -0
  372. {workbench-0.8.224 → workbench-0.8.230}/examples/models/xgb_model.py +0 -0
  373. {workbench-0.8.224 → workbench-0.8.230}/examples/monitor/monitor_setup.py +0 -0
  374. {workbench-0.8.224 → workbench-0.8.230}/examples/monitor/monitor_usage.py +0 -0
  375. {workbench-0.8.224 → workbench-0.8.230}/examples/plugins/branding/Readme.md +0 -0
  376. {workbench-0.8.224 → workbench-0.8.230}/examples/plugins/branding/scp.json +0 -0
  377. {workbench-0.8.224 → workbench-0.8.230}/examples/plugins/components/model_markdown.py +0 -0
  378. {workbench-0.8.224 → workbench-0.8.230}/examples/plugins/components/model_plugin.py +0 -0
  379. {workbench-0.8.224 → workbench-0.8.230}/examples/plugins/packages/my_plugin_utils/__init__.py +0 -0
  380. {workbench-0.8.224 → workbench-0.8.230}/examples/plugins/packages/my_plugin_utils/assets/foo.json +0 -0
  381. {workbench-0.8.224 → workbench-0.8.230}/examples/plugins/packages/my_plugin_utils/cool_stuff.py +0 -0
  382. {workbench-0.8.224 → workbench-0.8.230}/examples/plugins/pages/plugin_page_1.py +0 -0
  383. {workbench-0.8.224 → workbench-0.8.230}/examples/plugins/templates/Readme.md +0 -0
  384. {workbench-0.8.224 → workbench-0.8.230}/examples/plugins/views/model_plugin_view.py +0 -0
  385. {workbench-0.8.224 → workbench-0.8.230}/examples/plugins/views/my_view_plugin.py +0 -0
  386. {workbench-0.8.224 → workbench-0.8.230}/experiments/chem_info/bulk_sims.py +0 -0
  387. {workbench-0.8.224 → workbench-0.8.230}/experiments/chem_info/knn_sims.py +0 -0
  388. {workbench-0.8.224 → workbench-0.8.230}/experiments/cleanlab_bug_report.py +0 -0
  389. {workbench-0.8.224 → workbench-0.8.230}/experiments/confidence_roc_curve.py +0 -0
  390. {workbench-0.8.224 → workbench-0.8.230}/experiments/coverage_probability.py +0 -0
  391. {workbench-0.8.224 → workbench-0.8.230}/experiments/db_scan_test.py +0 -0
  392. {workbench-0.8.224 → workbench-0.8.230}/experiments/log_testing.py +0 -0
  393. {workbench-0.8.224 → workbench-0.8.230}/experiments/networkx_id.py +0 -0
  394. {workbench-0.8.224 → workbench-0.8.230}/experiments/prediction_intervals.py +0 -0
  395. {workbench-0.8.224 → workbench-0.8.230}/experiments/residual_analysis.py +0 -0
  396. {workbench-0.8.224 → workbench-0.8.230}/experiments/rocauc_testing.py +0 -0
  397. {workbench-0.8.224 → workbench-0.8.230}/experiments/scatter_zoom_issue.py +0 -0
  398. {workbench-0.8.224 → workbench-0.8.230}/experiments/sol_pipeline.py +0 -0
  399. {workbench-0.8.224 → workbench-0.8.230}/feature_endpoints/model_scripts/molecular_utils/mol_standardize.py +0 -0
  400. {workbench-0.8.224 → workbench-0.8.230}/feature_endpoints/model_scripts/requirements.txt +0 -0
  401. {workbench-0.8.224 → workbench-0.8.230}/glue_jobs/create_glue_workflow_with_trigger.py +0 -0
  402. {workbench-0.8.224 → workbench-0.8.230}/glue_jobs/example_glue_job.py +0 -0
  403. {workbench-0.8.224 → workbench-0.8.230}/glue_jobs/glue_job_pipeline.py +0 -0
  404. {workbench-0.8.224 → workbench-0.8.230}/glue_jobs/glue_mixed_case.py +0 -0
  405. {workbench-0.8.224 → workbench-0.8.230}/mkdocs.yml +0 -0
  406. {workbench-0.8.224 → workbench-0.8.230}/ml_pipelines/hyper_uq.py +0 -0
  407. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/Readme.md +0 -0
  408. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/inference/Dockerfile +0 -0
  409. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/inference/main.py +0 -0
  410. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/inference/requirements.txt +0 -0
  411. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/inference/serve +0 -0
  412. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/meta_inference/Dockerfile +0 -0
  413. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/meta_inference/main.py +0 -0
  414. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/meta_inference/requirements.txt +0 -0
  415. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/meta_inference/serve +0 -0
  416. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/meta_training/Dockerfile +0 -0
  417. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/meta_training/requirements.txt +0 -0
  418. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/meta_training/sagemaker_entrypoint.py +0 -0
  419. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/ml_pipelines/ml_pipeline_runner.py +0 -0
  420. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/ml_pipelines/requirements.txt +0 -0
  421. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/pytorch_inference/Dockerfile +0 -0
  422. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/pytorch_inference/main.py +0 -0
  423. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/pytorch_inference/requirements.txt +0 -0
  424. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/pytorch_inference/serve +0 -0
  425. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/pytorch_training/Dockerfile +0 -0
  426. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/pytorch_training/requirements.txt +0 -0
  427. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/pytorch_training/sagemaker_entrypoint.py +0 -0
  428. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/scripts/build_deploy.sh +0 -0
  429. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/tests/data/abalone_sm.csv +0 -0
  430. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/tests/example_model_script.py +0 -0
  431. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/tests/run_tests.sh +0 -0
  432. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/tests/test_inference.py +0 -0
  433. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/tests/test_training.py +0 -0
  434. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/training/Dockerfile +0 -0
  435. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/training/requirements.txt +0 -0
  436. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/training/sagemaker_entrypoint.py +0 -0
  437. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/workbench_inference/Dockerfile +0 -0
  438. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/workbench_inference/main.py +0 -0
  439. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/workbench_inference/requirements.txt +0 -0
  440. {workbench-0.8.224 → workbench-0.8.230}/model_docker_images/workbench_inference/serve +0 -0
  441. {workbench-0.8.224 → workbench-0.8.230}/notebooks/Inference_On_Legacy_Models.ipynb +0 -0
  442. {workbench-0.8.224 → workbench-0.8.230}/notebooks/ML_Pipeline_with_Workbench.ipynb +0 -0
  443. {workbench-0.8.224 → workbench-0.8.230}/notebooks/ML_Pipeline_with_Workbench_2.ipynb +0 -0
  444. {workbench-0.8.224 → workbench-0.8.230}/notebooks/Outliers_in_Workbench.ipynb +0 -0
  445. {workbench-0.8.224 → workbench-0.8.230}/notebooks/Regression_Confidence_Experiments.ipynb +0 -0
  446. {workbench-0.8.224 → workbench-0.8.230}/notebooks/Residual_Analysis.ipynb +0 -0
  447. {workbench-0.8.224 → workbench-0.8.230}/notebooks/images/athena_query_aqsol.png +0 -0
  448. {workbench-0.8.224 → workbench-0.8.230}/notebooks/images/aws_dashboard_aqsol.png +0 -0
  449. {workbench-0.8.224 → workbench-0.8.230}/notebooks/images/dashboard_aqsol_features.png +0 -0
  450. {workbench-0.8.224 → workbench-0.8.230}/notebooks/images/model_screenshot.png +0 -0
  451. {workbench-0.8.224 → workbench-0.8.230}/notebooks/images/scp_labs.png +0 -0
  452. {workbench-0.8.224 → workbench-0.8.230}/open_admet/.gitignore +0 -0
  453. {workbench-0.8.224 → workbench-0.8.230}/open_admet/README.md +0 -0
  454. {workbench-0.8.224 → workbench-0.8.230}/open_admet/all_models.py +0 -0
  455. {workbench-0.8.224 → workbench-0.8.230}/open_admet/images/confidence.jpg +0 -0
  456. {workbench-0.8.224 → workbench-0.8.230}/open_admet/images/open_admet_model.jpg +0 -0
  457. {workbench-0.8.224 → workbench-0.8.230}/open_admet/load_data.py +0 -0
  458. {workbench-0.8.224 → workbench-0.8.230}/open_admet/model_metrics.md +0 -0
  459. {workbench-0.8.224 → workbench-0.8.230}/open_admet/run_inference.py +0 -0
  460. {workbench-0.8.224 → workbench-0.8.230}/open_admet/utils/compute_model_metrics.py +0 -0
  461. {workbench-0.8.224 → workbench-0.8.230}/presentations/README.md +0 -0
  462. {workbench-0.8.224 → workbench-0.8.230}/scripts/active_logs.sh +0 -0
  463. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/check_all_glue_tables.py +0 -0
  464. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/delete_invalid_views.py +0 -0
  465. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/delete_redis_keys.py +0 -0
  466. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/list_datacatalog.py +0 -0
  467. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/migration/copy_glue_database.py +0 -0
  468. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/migration/delete_sageworks_glue_database.sh +0 -0
  469. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/migration/ds_migrate.py +0 -0
  470. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/migration/endpoint_migrate.py +0 -0
  471. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/migration/fs_migrate.py +0 -0
  472. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/migration/model_migrate.py +0 -0
  473. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/pull_image_digest.py +0 -0
  474. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/redis_reaper.py +0 -0
  475. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/spam_list_tags.py +0 -0
  476. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/storage/convert_training_views.py +0 -0
  477. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/storage/migrate_data_source_via_df.py +0 -0
  478. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/storage/migrate_ds_meta.py +0 -0
  479. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/test_batch_job_failure.py +0 -0
  480. {workbench-0.8.224 → workbench-0.8.230}/scripts/admin/test_no_workbench_config.py +0 -0
  481. {workbench-0.8.224 → workbench-0.8.230}/scripts/ag_table_row_selection.py +0 -0
  482. {workbench-0.8.224 → workbench-0.8.230}/scripts/compare_dataframes.py +0 -0
  483. {workbench-0.8.224 → workbench-0.8.230}/scripts/compare_model_packages.py +0 -0
  484. {workbench-0.8.224 → workbench-0.8.230}/scripts/delete_data_capture.py +0 -0
  485. {workbench-0.8.224 → workbench-0.8.230}/scripts/get_tags.py +0 -0
  486. {workbench-0.8.224 → workbench-0.8.230}/scripts/instantiation_timings.py +0 -0
  487. {workbench-0.8.224 → workbench-0.8.230}/scripts/llm_deploys/deepseek_deploy.py +0 -0
  488. {workbench-0.8.224 → workbench-0.8.230}/scripts/model_cache_refresh.py +0 -0
  489. {workbench-0.8.224 → workbench-0.8.230}/scripts/model_endpoint_sanity_check.py +0 -0
  490. {workbench-0.8.224 → workbench-0.8.230}/scripts/monitor_event_bridge.py +0 -0
  491. {workbench-0.8.224 → workbench-0.8.230}/scripts/onboard_endpoints.py +0 -0
  492. {workbench-0.8.224 → workbench-0.8.230}/scripts/onboard_models.py +0 -0
  493. {workbench-0.8.224 → workbench-0.8.230}/scripts/pipeline_model_endpoint.py +0 -0
  494. {workbench-0.8.224 → workbench-0.8.230}/scripts/pubchem/pubchem_example.py +0 -0
  495. {workbench-0.8.224 → workbench-0.8.230}/scripts/pubchem/pubchem_query.py +0 -0
  496. {workbench-0.8.224 → workbench-0.8.230}/scripts/pubchem/pubchem_query_with_cid.py +0 -0
  497. {workbench-0.8.224 → workbench-0.8.230}/scripts/sagemaker_feature_group_issue.py +0 -0
  498. {workbench-0.8.224 → workbench-0.8.230}/scripts/seaborn_to_plotly.py +0 -0
  499. {workbench-0.8.224 → workbench-0.8.230}/scripts/storage/generate_jsonl_data.py +0 -0
  500. {workbench-0.8.224 → workbench-0.8.230}/scripts/test_feature_resolution.py +0 -0
  501. {workbench-0.8.224 → workbench-0.8.230}/scripts/test_feature_set_creation.py +0 -0
  502. {workbench-0.8.224 → workbench-0.8.230}/scripts/tox21/test_tox_heuristic.py +0 -0
  503. {workbench-0.8.224 → workbench-0.8.230}/scripts/tox21/tox21_to_df_store.py +0 -0
  504. {workbench-0.8.224 → workbench-0.8.230}/setup.cfg +0 -0
  505. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/__init__.py +0 -0
  506. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/dataframe/Readme.md +0 -0
  507. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/dataframe/compound_dataset_overlap.py +0 -0
  508. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/dataframe/data_source_eda.py +0 -0
  509. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/dataframe/feature_space_proximity.py +0 -0
  510. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/dataframe/fingerprint_proximity.py +0 -0
  511. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/dataframe/projection_2d.py +0 -0
  512. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/dataframe/proximity.py +0 -0
  513. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/dataframe/storage/aggregation.py +0 -0
  514. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/dataframe/storage/feature_resolution.py +0 -0
  515. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/dataframe/storage/feature_spider.py +0 -0
  516. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/dataframe/storage/residuals_calculator.py +0 -0
  517. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/dataframe/storage/row_tagger.py +0 -0
  518. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/dataframe/storage/target_gradients.py +0 -0
  519. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/graph/__init__.py +0 -0
  520. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/graph/heavy/Readme.md +0 -0
  521. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/graph/light/Readme.md +0 -0
  522. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/graph/light/__init__.py +0 -0
  523. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/graph/light/proximity_graph.py +0 -0
  524. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/models/cleanlab_model.py +0 -0
  525. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/models/noise_model.py +0 -0
  526. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/spark/Readme.md +0 -0
  527. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/sql/Readme.md +0 -0
  528. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/sql/__init__.py +0 -0
  529. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/sql/outliers.py +0 -0
  530. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/sql/sample_rows.py +0 -0
  531. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/algorithms/sql/value_counts.py +0 -0
  532. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/api/__init__.py +0 -0
  533. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/api/compound.py +0 -0
  534. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/api/data_source.py +0 -0
  535. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/api/df_store.py +0 -0
  536. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/api/endpoint.py +0 -0
  537. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/api/feature_set.py +0 -0
  538. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/api/graph_store.py +0 -0
  539. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/api/meta_model.py +0 -0
  540. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/api/model.py +0 -0
  541. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/api/monitor.py +0 -0
  542. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/api/parameter_store.py +0 -0
  543. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/api/pipeline.py +0 -0
  544. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/cached/__init__.py +0 -0
  545. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/cached/cached_data_source.py +0 -0
  546. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/cached/cached_endpoint.py +0 -0
  547. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/cached/cached_feature_set.py +0 -0
  548. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/cached/cached_pipeline.py +0 -0
  549. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/__init__.py +0 -0
  550. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/artifacts/__init__.py +0 -0
  551. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/artifacts/artifact.py +0 -0
  552. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/artifacts/athena_source.py +0 -0
  553. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/artifacts/cached_artifact_mixin.py +0 -0
  554. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/artifacts/data_capture_core.py +0 -0
  555. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/artifacts/data_source_abstract.py +0 -0
  556. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/artifacts/data_source_factory.py +0 -0
  557. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/artifacts/df_store_core.py +0 -0
  558. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/artifacts/model_core.py +0 -0
  559. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/artifacts/monitor_core.py +0 -0
  560. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/artifacts/parameter_store_core.py +0 -0
  561. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/cloud_platform/aws/README.md +0 -0
  562. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/cloud_platform/aws/aws_account_clamp.py +0 -0
  563. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/cloud_platform/aws/aws_graph_store.py +0 -0
  564. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/cloud_platform/aws/aws_meta.py +0 -0
  565. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/cloud_platform/aws/aws_secrets_manager.py +0 -0
  566. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/cloud_platform/aws/aws_session.py +0 -0
  567. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/cloud_platform/aws/cache_dataframe.py +0 -0
  568. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/cloud_platform/azure/README.md +0 -0
  569. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/cloud_platform/gcp/README.md +0 -0
  570. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/pipelines/pipeline_executor.py +0 -0
  571. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/Readme.md +0 -0
  572. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/__init__.py +0 -0
  573. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_loaders/__init__.py +0 -0
  574. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_loaders/heavy/__init__.py +0 -0
  575. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_loaders/heavy/s3_heavy_to_data_source.py +0 -0
  576. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_loaders/light/__init__.py +0 -0
  577. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_loaders/light/csv_to_data_source.py +0 -0
  578. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_loaders/light/json_to_data_source.py +0 -0
  579. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_loaders/light/s3_to_data_source_light.py +0 -0
  580. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_to_data/__init__.py +0 -0
  581. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_to_data/heavy/__init__.py +0 -0
  582. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_to_data/heavy/emr/Readme.md +0 -0
  583. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_to_data/heavy/glue/Readme.md +0 -0
  584. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_to_data/light/__init__.py +0 -0
  585. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_to_data/light/clean_data.py +0 -0
  586. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_to_data/light/data_to_data_light.py +0 -0
  587. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_to_features/__init__.py +0 -0
  588. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_to_features/heavy/__init__.py +0 -0
  589. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_to_features/heavy/chunk/__init__.py +0 -0
  590. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_to_features/heavy/chunk/data_to_features_chunk.py +0 -0
  591. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_to_features/heavy/emr/Readme.md +0 -0
  592. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_to_features/heavy/glue/Readme.md +0 -0
  593. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_to_features/heavy/storage/data_to_features_heavy_old.py +0 -0
  594. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_to_features/light/__init__.py +0 -0
  595. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_to_features/light/data_to_features_light.py +0 -0
  596. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/data_to_features/light/molecular_descriptors.py +0 -0
  597. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/features_to_features/__init__.py +0 -0
  598. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/features_to_features/heavy/emr/Readme.md +0 -0
  599. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/features_to_features/heavy/glue/Readme.md +0 -0
  600. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/features_to_model/__init__.py +0 -0
  601. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/features_to_model/features_to_model.py +0 -0
  602. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/model_to_endpoint/__init__.py +0 -0
  603. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/model_to_endpoint/model_to_endpoint.py +0 -0
  604. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/pandas_transforms/__init__.py +0 -0
  605. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/pandas_transforms/data_to_pandas.py +0 -0
  606. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/pandas_transforms/features_to_pandas.py +0 -0
  607. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/pandas_transforms/pandas_to_data.py +0 -0
  608. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/pandas_transforms/pandas_to_features.py +0 -0
  609. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/pandas_transforms/pandas_to_features_chunked.py +0 -0
  610. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/transforms/transform.py +0 -0
  611. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/views/__init__.py +0 -0
  612. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/views/column_subset_view.py +0 -0
  613. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/views/computation_view.py +0 -0
  614. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/views/create_view.py +0 -0
  615. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/views/display_view.py +0 -0
  616. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/views/inference_view.py +0 -0
  617. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/views/pandas_to_view.py +0 -0
  618. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/views/storage/mdq_view.py +0 -0
  619. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/views/training_view.py +0 -0
  620. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/views/view.py +0 -0
  621. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/core/views/view_utils.py +0 -0
  622. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_script_utils/pytorch_utils.py +0 -0
  623. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/chemprop/requirements.txt +0 -0
  624. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/chem_info/Readme.md +0 -0
  625. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/chem_info/fingerprints.py +0 -0
  626. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/chem_info/mol_standardize.py +0 -0
  627. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/chem_info/requirements.txt +0 -0
  628. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/network_security/Readme.md +0 -0
  629. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/proximity/Readme.md +0 -0
  630. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/proximity/feature_space_proximity.py +0 -0
  631. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/proximity/feature_space_proximity.template +0 -0
  632. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/proximity/requirements.txt +0 -0
  633. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/uq_models/Readme.md +0 -0
  634. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/uq_models/bayesian_ridge.template +0 -0
  635. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/uq_models/ensemble_xgb.template +0 -0
  636. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/uq_models/feature_space_proximity.py +0 -0
  637. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/uq_models/gaussian_process.template +0 -0
  638. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/uq_models/ngboost.template +0 -0
  639. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_models/uq_models/requirements.txt +0 -0
  640. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_script_example/custom_model_script.py +0 -0
  641. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/custom_script_example/requirements.txt +0 -0
  642. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/ensemble_xgb/ensemble_xgb.template +0 -0
  643. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/ensemble_xgb/requirements.txt +0 -0
  644. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/meta_model/generated_model_script.py +0 -0
  645. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/meta_model/meta_model.template +0 -0
  646. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/pytorch_model/pytorch_utils.py +0 -0
  647. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/pytorch_model/requirements.txt +0 -0
  648. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/scikit_learn/generated_model_script.py +0 -0
  649. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/scikit_learn/requirements.txt +0 -0
  650. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/scikit_learn/scikit_learn.template +0 -0
  651. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/uq_models/generated_model_script.py +0 -0
  652. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/xgb_model/generated_model_script.py +0 -0
  653. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/xgb_model/requirements.txt +0 -0
  654. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/model_scripts/xgb_model/xgb_model.template +0 -0
  655. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/repl/__init__.py +0 -0
  656. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/repl/workbench_shell.py +0 -0
  657. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/resources/open_source_api.key +0 -0
  658. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/resources/signature_verify_pub.pem +0 -0
  659. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/scripts/check_double_bond_stereo.py +0 -0
  660. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/scripts/endpoint_test.py +0 -0
  661. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/scripts/glue_launcher.py +0 -0
  662. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/scripts/lambda_test.py +0 -0
  663. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/scripts/meta_model_sim.py +0 -0
  664. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/scripts/ml_pipeline_batch.py +0 -0
  665. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/scripts/ml_pipeline_sqs.py +0 -0
  666. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/scripts/monitor_cloud_watch.py +0 -0
  667. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/scripts/redis_expire.py +0 -0
  668. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/scripts/redis_report.py +0 -0
  669. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/scripts/show_config.py +0 -0
  670. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/scripts/training_test.py +0 -0
  671. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/themes/dark/base_css.url +0 -0
  672. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/themes/light/base_css.url +0 -0
  673. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/themes/light/branding.json +0 -0
  674. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/themes/midnight_blue/base_css.url +0 -0
  675. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/themes/midnight_blue/branding.json +0 -0
  676. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/themes/midnight_blue/plotly.json +0 -0
  677. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/__init__.py +0 -0
  678. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/ai_compound_generator.py +0 -0
  679. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/ai_summary.py +0 -0
  680. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/ai_synth.py +0 -0
  681. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/athena_utils.py +0 -0
  682. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/bulk_utils.py +0 -0
  683. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/cache.py +0 -0
  684. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/chem_utils/__init__.py +0 -0
  685. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/chem_utils/fingerprints.py +0 -0
  686. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/chem_utils/misc.py +0 -0
  687. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/chem_utils/mol_standardize.py +0 -0
  688. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/chem_utils/mol_tagging.py +0 -0
  689. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/chem_utils/projections.py +0 -0
  690. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/chem_utils/salts.py +0 -0
  691. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/chem_utils/sdf.py +0 -0
  692. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/chem_utils/toxicity.py +0 -0
  693. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/chemprop_utils.py +0 -0
  694. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/cloudwatch_handler.py +0 -0
  695. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/cloudwatch_utils.py +0 -0
  696. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/color_utils.py +0 -0
  697. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/config_manager.py +0 -0
  698. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/dashboard_metrics.py +0 -0
  699. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/datetime_utils.py +0 -0
  700. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/deprecated_utils.py +0 -0
  701. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/df_to_endpoint.py +0 -0
  702. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/ecs_info.py +0 -0
  703. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/endpoint_metrics.py +0 -0
  704. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/endpoint_utils.py +0 -0
  705. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/extract_model_artifact.py +0 -0
  706. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/glue_utils.py +0 -0
  707. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/graph_utils.py +0 -0
  708. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/ipython_utils.py +0 -0
  709. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/json_utils.py +0 -0
  710. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/lambda_utils.py +0 -0
  711. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/license_manager.py +0 -0
  712. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/log_utils.py +0 -0
  713. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/meta_model_simulator.py +0 -0
  714. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/metrics_utils.py +0 -0
  715. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/model_utils.py +0 -0
  716. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/monitor_utils.py +0 -0
  717. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/pandas_utils.py +0 -0
  718. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/performance_utils.py +0 -0
  719. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/plugin_manager.py +0 -0
  720. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/prox_utils.py +0 -0
  721. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/pytorch_utils.py +0 -0
  722. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/redis_cache.py +0 -0
  723. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/repl_utils.py +0 -0
  724. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/s3_utils.py +0 -0
  725. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/shap_utils.py +0 -0
  726. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/shapley_values.py +0 -0
  727. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/symbols.py +0 -0
  728. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/test_data_generator.py +0 -0
  729. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/theme_manager.py +0 -0
  730. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/trace_calls.py +0 -0
  731. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/type_abbrev.py +0 -0
  732. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/workbench_cache.py +0 -0
  733. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/workbench_event_bridge.py +0 -0
  734. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/workbench_logging.py +0 -0
  735. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/workbench_sqs.py +0 -0
  736. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/xgboost_local_crossfold.py +0 -0
  737. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/utils/xgboost_model_utils.py +0 -0
  738. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/component_interface.py +0 -0
  739. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/correlation_matrix.py +0 -0
  740. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/data_details_markdown.py +0 -0
  741. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/endpoint_metric_plots.py +0 -0
  742. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/experiments/dashboard_metric_plots.py +0 -0
  743. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/plugin_interface.py +0 -0
  744. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/plugins/dashboard_status.py +0 -0
  745. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/plugins/data_details.py +0 -0
  746. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/plugins/endpoint_details.py +0 -0
  747. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/plugins/generated_compounds.py +0 -0
  748. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/plugins/graph_plot.py +0 -0
  749. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/plugins/license_details.py +0 -0
  750. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/plugins/molecule_panel.py +0 -0
  751. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/plugins/molecule_viewer.py +0 -0
  752. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/plugins/pipeline_details.py +0 -0
  753. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/plugins/proximity_mini_graph.py +0 -0
  754. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/plugins/shap_summary_plot.py +0 -0
  755. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/regression_plot.py +0 -0
  756. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/settings_menu.py +0 -0
  757. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/components/violin_plots.py +0 -0
  758. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/page_views/data_sources_page_view.py +0 -0
  759. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/page_views/endpoints_page_view.py +0 -0
  760. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/page_views/feature_sets_page_view.py +0 -0
  761. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/page_views/models_page_view.py +0 -0
  762. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/page_views/page_view.py +0 -0
  763. {workbench-0.8.224 → workbench-0.8.230}/src/workbench/web_interface/page_views/pipelines_page_view.py +0 -0
  764. {workbench-0.8.224 → workbench-0.8.230}/src/workbench.egg-info/dependency_links.txt +0 -0
  765. {workbench-0.8.224 → workbench-0.8.230}/src/workbench.egg-info/entry_points.txt +0 -0
  766. {workbench-0.8.224 → workbench-0.8.230}/src/workbench.egg-info/top_level.txt +0 -0
  767. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/create_aqsol_artifacts.py +0 -0
  768. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/create_aqsol_artifacts_all.py +0 -0
  769. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/create_basic_test_artifacts.py +0 -0
  770. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/create_empty_model_group.py +0 -0
  771. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/create_endpoints_for_timing.py +0 -0
  772. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/create_graph_artifacts.py +0 -0
  773. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/create_knn_artifacts.py +0 -0
  774. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/create_meta_endpoints.py +0 -0
  775. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/create_proximity_models.py +0 -0
  776. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/create_quant_regression_artifacts.py +0 -0
  777. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/create_realtime_endpoint.py +0 -0
  778. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/create_training_adjusted_artifacts.py +0 -0
  779. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/hyper_testing.py +0 -0
  780. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/regression_ensemble.py +0 -0
  781. {workbench-0.8.224 → workbench-0.8.230}/test_artifacts/stress_test_aws.py +0 -0
  782. {workbench-0.8.224 → workbench-0.8.230}/tests/README.md +0 -0
  783. {workbench-0.8.224 → workbench-0.8.230}/tests/artifacts/data_source_tests.py +0 -0
  784. {workbench-0.8.224 → workbench-0.8.230}/tests/artifacts/endpoint_tests.py +0 -0
  785. {workbench-0.8.224 → workbench-0.8.230}/tests/artifacts/featureset_ingest_boundaries.py +0 -0
  786. {workbench-0.8.224 → workbench-0.8.230}/tests/artifacts/featureset_tests.py +0 -0
  787. {workbench-0.8.224 → workbench-0.8.230}/tests/artifacts/graph_tests.py +0 -0
  788. {workbench-0.8.224 → workbench-0.8.230}/tests/artifacts/model_tests.py +0 -0
  789. {workbench-0.8.224 → workbench-0.8.230}/tests/aws_account/aws_account_clamp_tests.py +0 -0
  790. {workbench-0.8.224 → workbench-0.8.230}/tests/cached/cached_artifact_tests.py +0 -0
  791. {workbench-0.8.224 → workbench-0.8.230}/tests/chem_info/test_tautomerization.py +0 -0
  792. {workbench-0.8.224 → workbench-0.8.230}/tests/corner_cases/end_to_end.py +0 -0
  793. {workbench-0.8.224 → workbench-0.8.230}/tests/df_store/df_store_tests.py +0 -0
  794. {workbench-0.8.224 → workbench-0.8.230}/tests/lambda/decompress_layers.py +0 -0
  795. {workbench-0.8.224 → workbench-0.8.230}/tests/pandas_tests/test_drift.py +0 -0
  796. {workbench-0.8.224 → workbench-0.8.230}/tests/parameter_store/param_store_tests.py +0 -0
  797. {workbench-0.8.224 → workbench-0.8.230}/tests/pytorch/pytorch_hello.py +0 -0
  798. {workbench-0.8.224 → workbench-0.8.230}/tests/requirements-dev.txt +0 -0
  799. {workbench-0.8.224 → workbench-0.8.230}/tests/specific/capital_tests.py +0 -0
  800. {workbench-0.8.224 → workbench-0.8.230}/tests/specific/column_changes.py +0 -0
  801. {workbench-0.8.224 → workbench-0.8.230}/tests/specific/config_manager.py +0 -0
  802. {workbench-0.8.224 → workbench-0.8.230}/tests/specific/deletion_tests.py +0 -0
  803. {workbench-0.8.224 → workbench-0.8.230}/tests/specific/shap_tests.py +0 -0
  804. {workbench-0.8.224 → workbench-0.8.230}/tests/transforms/data_to_data_tests.py +0 -0
  805. {workbench-0.8.224 → workbench-0.8.230}/tests/transforms/data_to_features_tests.py +0 -0
  806. {workbench-0.8.224 → workbench-0.8.230}/tests/transforms/features_to_model_tests.py +0 -0
  807. {workbench-0.8.224 → workbench-0.8.230}/tests/transforms/model_to_endpoint_tests.py +0 -0
  808. {workbench-0.8.224 → workbench-0.8.230}/tests/transforms/pandas_to_data_tests.py +0 -0
  809. {workbench-0.8.224 → workbench-0.8.230}/tests/transforms/pandas_to_features_test.py +0 -0
  810. {workbench-0.8.224 → workbench-0.8.230}/tests/views/view_tests.py +0 -0
  811. {workbench-0.8.224 → workbench-0.8.230}/tests/views/view_tests_complex.py +0 -0
  812. {workbench-0.8.224 → workbench-0.8.230}/tests/web_components/confusion_matrix_test.py +0 -0
  813. {workbench-0.8.224 → workbench-0.8.230}/tests/web_components/correlation_matrix_test.py +0 -0
  814. {workbench-0.8.224 → workbench-0.8.230}/tests/web_components/graph_plot_test.py +0 -0
  815. {workbench-0.8.224 → workbench-0.8.230}/tests/web_components/scatter_plot_test.py +0 -0
  816. {workbench-0.8.224 → workbench-0.8.230}/tox.ini +0 -0
  817. {workbench-0.8.224 → workbench-0.8.230}/ui_testing/assets/custom.css +0 -0
  818. {workbench-0.8.224 → workbench-0.8.230}/ui_testing/theme_switching.py +0 -0
  819. {workbench-0.8.224 → workbench-0.8.230}/ui_testing/theme_switching_2.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: workbench
3
- Version: 0.8.224
3
+ Version: 0.8.230
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<=32.3.2; 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,49 +1,47 @@
1
1
 
2
- # Recent News
2
+ ## Live Dashboard Demo
3
+ You can explore a live demo of the Workbench Dashboard at: [Workbench Dashboard Demo](https://workbench-dashboard.com)
3
4
 
4
- ### Themes
5
+ ## Recent News
6
+ **Chemprop Models!** All the rage for the Open ADMET Challenge.
5
7
 
6
- Everyone knows that good data science requires... **Some Awesome Themes!**
8
+ Workbench now supports:
9
+ - Single Task Chemprop Models
10
+ - Multi Task Chemprop Models
11
+ - Chemprop Hybrid Models (MPNN + Descriptors)
12
+ - Foundation Chemprop Models (CheMeleon Pretrained)
13
+
14
+ Examples:
15
+
16
+ - [Deploying Chemprop Models](examples/models/chemprop.py)
17
+ - [Deploying Foundation Chemprop Models](examples/models/chemprop_foundation.py)
18
+
19
+ **References**
20
+ - [Open ADMET Challenge](https://huggingface.co/spaces/openadmet/OpenADMET-ExpansionRx-Challenge)
21
+ - **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)
22
+ - [CheMeleon Github](https://github.com/JacksonBurns/chemeleon)
23
+
24
+ ### Chemprop Action Shots!
7
25
 
8
26
  <table>
9
27
  <tr>
10
28
  <td>
11
- <a href="https://github.com/user-attachments/assets/82ab4eab-0688-4b93-ad8e-9b954564777b">
12
- <img width="400" alt="theme_dark" src="https://github.com/user-attachments/assets/82ab4eab-0688-4b93-ad8e-9b954564777b" />
13
- </a>
14
- </td>
15
- <td>
16
- <a href="https://github.com/user-attachments/assets/b63a0789-c144-4048-afb6-f03e3d993680">
17
- <img width="400" alt="theme_light" src="https://github.com/user-attachments/assets/b63a0789-c144-4048-afb6-f03e3d993680" />
29
+ <a href="https://github.com/user-attachments/assets/a36c6eff-c464-4c9a-9859-a45cd7e35145">
30
+ <img width="800" alt="theme_dark" src="https://github.com/user-attachments/assets/a36c6eff-c464-4c9a-9859-a45cd7e35145" />
18
31
  </a>
19
32
  </td>
20
33
  </tr>
21
34
  <tr>
22
35
  <td>
23
- <a href="https://github.com/user-attachments/assets/8a59be19-0c5d-42c6-9922-feafb1a1eecd">
24
- <img width="400" alt="theme_quartz" src="https://github.com/user-attachments/assets/8a59be19-0c5d-42c6-9922-feafb1a1eecd" />
25
- </a>
26
- </td>
27
- <td>
28
- <a href="https://github.com/user-attachments/assets/5b01ec64-8d56-43bf-96c5-7da8ec48f527">
29
- <img width="400" alt="theme_quartz_dark" src="https://github.com/user-attachments/assets/5b01ec64-8d56-43bf-96c5-7da8ec48f527" />
36
+ <a href="https://github.com/user-attachments/assets/d65ec1da-e04e-44fe-8782-4da0fb50588a">
37
+ <img width="800" alt="theme_quartz" src="https://github.com/user-attachments/assets/d65ec1da-e04e-44fe-8782-4da0fb50588a" />
30
38
  </a>
31
39
  </td>
32
40
  </tr>
33
41
  </table>
34
42
 
35
- 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)
36
-
37
43
 
38
44
 
39
- ### Workbench up on the AWS Marketplace
40
-
41
- 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.
42
-
43
- ### Coming Soon: `v0.9`
44
-
45
- 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/)
46
-
47
45
  # Welcome to Workbench
48
46
  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.
49
47
 
@@ -81,6 +79,10 @@ For the full instructions for connecting your AWS Account see:
81
79
  - One time AWS Onboarding: [AWS Setup](https://supercowpowers.github.io/workbench/aws_setup/core_stack/)
82
80
 
83
81
 
82
+ ### Workbench up on the AWS Marketplace
83
+
84
+ 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.
85
+
84
86
  ### Workbench Presentations
85
87
  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/)
86
88
 
@@ -1,4 +1,16 @@
1
- # Base image: python:3.12.5-bookworm
1
+ # Define workbench version once at the top
2
+ ARG WORKBENCH_VERSION=0.8.228
3
+
4
+ # Stage 1: Extract dependencies from workbench[ui]
5
+ FROM python:3.12.5-bookworm AS deps-extractor
6
+ ARG WORKBENCH_VERSION
7
+ RUN pip install --no-cache-dir pip-tools && \
8
+ pip download --no-deps "workbench[ui]==${WORKBENCH_VERSION}" -d /tmp/pkg && \
9
+ cd /tmp/pkg && unzip -q *.whl -d /tmp/extracted && \
10
+ cat /tmp/extracted/*.dist-info/METADATA | grep "^Requires-Dist:" | \
11
+ sed 's/Requires-Dist: //' | sed 's/;.*//' | sed 's/ (.*//' > /tmp/deps.txt
12
+
13
+ # Stage 2: Build the final image
2
14
  FROM python:3.12.5-bookworm AS base
3
15
  WORKDIR /app
4
16
  EXPOSE 8000
@@ -6,9 +18,6 @@ EXPOSE 8000
6
18
  # Set PYTHONHASHSEED to ensure consistent hashing across processes
7
19
  ENV PYTHONHASHSEED=0
8
20
 
9
- # Define workbench version
10
- ARG WORKBENCH_VERSION=0.8.208
11
-
12
21
  # Install system packages and gunicorn in one layer
13
22
  RUN apt-get update && apt-get install -y --no-install-recommends \
14
23
  nginx supervisor libnghttp2-dev && \
@@ -16,13 +25,13 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
16
25
  rm -rf /var/lib/apt/lists/* && \
17
26
  pip install --no-cache-dir gunicorn
18
27
 
19
- # Dependency Layer: Install all dependencies of workbench[ui]
20
- RUN pip install --no-cache-dir "workbench[ui]==${WORKBENCH_VERSION}" && \
21
- pip uninstall -y workbench && \
22
- pip cache purge
28
+ # Copy and install dependencies (this layer only changes when deps change)
29
+ COPY --from=deps-extractor /tmp/deps.txt /tmp/deps.txt
30
+ RUN pip install --no-cache-dir -r /tmp/deps.txt && rm /tmp/deps.txt
23
31
 
24
32
  # Install workbench[ui] in separate layer (dependencies already satisfied)
25
- RUN pip install --no-cache-dir "workbench[ui]==${WORKBENCH_VERSION}"
33
+ ARG WORKBENCH_VERSION
34
+ RUN pip install --no-cache-dir --no-deps "workbench[ui]==${WORKBENCH_VERSION}"
26
35
 
27
36
  # Copy app code and configuration (after pip installs to avoid cache invalidation)
28
37
  COPY . /app
@@ -21,19 +21,11 @@ register_page(
21
21
 
22
22
  # Create a table to display the Data Sources
23
23
  data_sources_table = AGTable()
24
- data_sources_component = data_sources_table.create_component(
25
- "data_sources_table",
26
- header_color="rgb(120, 70, 70)",
27
- max_height=270,
28
- )
24
+ data_sources_component = data_sources_table.create_component("data_sources_table", max_height=270)
29
25
 
30
26
  # Create a table that sample rows from the currently selected data source
31
27
  samples_table = AGTable()
32
- samples_component = samples_table.create_component(
33
- "data_source_sample_rows",
34
- header_color="rgb(70, 70, 110)",
35
- max_height=250,
36
- )
28
+ samples_component = samples_table.create_component("data_source_sample_rows", max_height=250)
37
29
 
38
30
  # Data Source Details Markdown PANEL
39
31
  data_details = DataDetails()
@@ -23,9 +23,7 @@ register_page(
23
23
 
24
24
  # Create a table to display the endpoints
25
25
  endpoints_table = ag_table.AGTable()
26
- endpoints_component = endpoints_table.create_component(
27
- "endpoints_table", header_color="rgb(100, 60, 100)", max_height=270
28
- )
26
+ endpoints_component = endpoints_table.create_component("endpoints_table", max_height=270)
29
27
 
30
28
  # Create a Markdown component to display the endpoint details
31
29
  endpoint_details = endpoint_details.EndpointDetails()
@@ -16,17 +16,11 @@ register_page(__name__, path="/feature_sets", name="Workbench - Feature Sets")
16
16
 
17
17
  # Create a table to display the Feature Sets
18
18
  feature_sets_table = AGTable()
19
- feature_sets_component = feature_sets_table.create_component(
20
- "feature_sets_table", header_color="rgb(60, 100, 60)", max_height=270
21
- )
19
+ feature_sets_component = feature_sets_table.create_component("feature_sets_table", max_height=270)
22
20
 
23
21
  # Grab smart_sample rows from the first Feature Set
24
22
  samples_table = AGTable()
25
- samples_component = samples_table.create_component(
26
- "feature_set_sample_rows",
27
- header_color="rgb(70, 70, 110)",
28
- max_height=250,
29
- )
23
+ samples_component = samples_table.create_component("feature_set_sample_rows", max_height=250)
30
24
 
31
25
  # Feature Set Details
32
26
  feature_details = DataDetails()
@@ -25,29 +25,13 @@ for table_name in table_names:
25
25
  # Create a table container for each Workbench Artifact Type
26
26
  table_containers = dict()
27
27
  table_name = "data_sources"
28
- table_containers[table_name] = tables[table_name].create_component(
29
- f"main_{table_name}",
30
- header_color="rgb(120, 70, 70)",
31
- max_height=200,
32
- )
28
+ table_containers[table_name] = tables[table_name].create_component(f"main_{table_name}", max_height=200)
33
29
  table_name = "feature_sets"
34
- table_containers[table_name] = tables[table_name].create_component(
35
- f"main_{table_name}",
36
- header_color="rgb(110, 110, 70)",
37
- max_height=200,
38
- )
30
+ table_containers[table_name] = tables[table_name].create_component(f"main_{table_name}", max_height=200)
39
31
  table_name = "models"
40
- table_containers[table_name] = tables[table_name].create_component(
41
- f"main_{table_name}",
42
- header_color="rgb(60, 100, 60)",
43
- max_height=500,
44
- )
32
+ table_containers[table_name] = tables[table_name].create_component(f"main_{table_name}", max_height=500)
45
33
  table_name = "endpoints"
46
- table_containers[table_name] = tables[table_name].create_component(
47
- f"main_{table_name}",
48
- header_color="rgb(100, 60, 100)",
49
- max_height=500,
50
- )
34
+ table_containers[table_name] = tables[table_name].create_component(f"main_{table_name}", max_height=500)
51
35
 
52
36
  # Set up our layout (Dash looks for a var called layout)
53
37
  layout = main_layout(**table_containers)
@@ -5,7 +5,6 @@ from dash import callback, no_update, Input, Output, State
5
5
  from dash.exceptions import PreventUpdate
6
6
  from urllib.parse import urlparse, parse_qs
7
7
 
8
-
9
8
  # Workbench Imports
10
9
  from workbench.api import ModelType
11
10
  from workbench.web_interface.page_views.models_page_view import ModelsPageView
@@ -136,18 +135,19 @@ def setup_plugin_callbacks(plugins, scatter_plot_plugin: ScatterPlot, confusion_
136
135
  if df is None:
137
136
  raise PreventUpdate
138
137
 
139
- # Get target column and compute error for coloring
138
+ # Get target column (residual is already computed in CachedModel)
140
139
  target = model.target()
141
140
  if isinstance(target, list):
142
141
  target = next((t for t in target if t in inference_run), target[0])
143
142
 
144
- df["error"] = abs(df["prediction"] - df[target])
143
+ # Check if "confidence" column exists for coloring
144
+ color_col = "confidence" if "confidence" in df.columns else "prediction"
145
145
 
146
146
  scatter_props = scatter_plot_plugin.update_properties(
147
147
  df,
148
148
  x=target,
149
149
  y="prediction",
150
- color="error",
150
+ color=color_col,
151
151
  regression_line=True,
152
152
  )
153
153
  cm_props = [no_update] * len(confusion_matrix_plugin.properties)
@@ -37,8 +37,8 @@ def models_layout(
37
37
  [
38
38
  # Column 1: Model Details
39
39
  dbc.Col(
40
- dcc.Loading(model_details, type="dot", color="#33aa33", delay_show=1000, delay_hide=100),
41
- width=5,
40
+ dcc.Loading(model_details, type="dot", color="#33aa33", delay_show=1000),
41
+ width=4,
42
42
  className="text-break workbench-container",
43
43
  style={"margin": "20px 0px 0px 0px", "padding": "20px"},
44
44
  ),
@@ -46,7 +46,11 @@ def models_layout(
46
46
  dbc.Col(
47
47
  [
48
48
  dbc.Row(
49
- dcc.Loading(model_plot, type="graph", delay_show=500, style={"height": "400px"}),
49
+ dcc.Loading(
50
+ model_plot,
51
+ type="graph",
52
+ delay_show=500,
53
+ ),
50
54
  className="workbench-container",
51
55
  style={"margin": "20px 0px 10px 20px"},
52
56
  ),
@@ -56,7 +60,7 @@ def models_layout(
56
60
  style={"margin": "20px 0px 10px 20px"},
57
61
  ),
58
62
  ],
59
- width=7,
63
+ width=8,
60
64
  style={"padding": "0px"},
61
65
  ),
62
66
  ],
@@ -25,7 +25,7 @@ register_page(
25
25
 
26
26
  # Create a table to display the models
27
27
  models_table = ag_table.AGTable()
28
- models_table_component = models_table.create_component("models_table", header_color="rgb(60, 100, 60)", max_height=270)
28
+ models_table_component = models_table.create_component("models_table", max_height=270)
29
29
 
30
30
  # Create a Markdown component to display the model details
31
31
  my_model_details = model_details.ModelDetails()
@@ -40,9 +40,11 @@ my_confusion_matrix = confusion_matrix.ConfusionMatrix()
40
40
  confusion_matrix_component = my_confusion_matrix.create_component("model_confusion_matrix")
41
41
 
42
42
  # Wrap both in visibility-controlled containers
43
+ # Show scatter plot by default (with "Waiting for Data..." placeholder)
44
+ # The callback will toggle visibility based on model type once data loads
43
45
  model_plot_container = html.Div(
44
46
  [
45
- html.Div(scatter_plot_component, id="scatter-plot-container", style={"display": "none"}),
47
+ html.Div(scatter_plot_component, id="scatter-plot-container", style={"display": "block"}),
46
48
  html.Div(confusion_matrix_component, id="confusion-matrix-container", style={"display": "none"}),
47
49
  ],
48
50
  id="model-plot-container",
@@ -6,7 +6,6 @@ from dash import callback, Output, Input, State
6
6
  from dash.exceptions import PreventUpdate
7
7
  from urllib.parse import urlparse, parse_qs
8
8
 
9
-
10
9
  # Workbench Imports
11
10
  from workbench.web_interface.page_views.pipelines_page_view import PipelinesPageView
12
11
  from workbench.web_interface.components.plugins.ag_table import AGTable
@@ -7,7 +7,6 @@ from dash import html
7
7
  from workbench.web_interface.components.plugins import dashboard_status
8
8
  from workbench.utils.config_manager import ConfigManager
9
9
 
10
-
11
10
  # Register this page with Dash
12
11
  register_page(
13
12
  __name__,
@@ -11,7 +11,6 @@ from workbench.web_interface.components.plugins import scatter_plot, molecule_vi
11
11
  from layout import compound_explorer_layout
12
12
  import callbacks
13
13
 
14
-
15
14
  # Note: The 'app' and 'server' objects need to be at the top level since NGINX/uWSGI needs to
16
15
  # import this file and use the server object as an ^entry-point^ into the Dash Application Code
17
16
 
@@ -180,6 +180,7 @@ class WorkbenchCoreStack(Stack):
180
180
  "glue:GetDatabases",
181
181
  "glue:GetTable",
182
182
  "glue:GetTables",
183
+ "glue:GetPartitions",
183
184
  "glue:SearchTables",
184
185
  ],
185
186
  resources=[f"arn:aws:glue:{self.region}:{self.account}:catalog"],
@@ -12,7 +12,7 @@ print(f"Account: {aws_account}")
12
12
  print(f"Region: {aws_region}")
13
13
 
14
14
  # When you want a different docker image change this line
15
- dashboard_image = "public.ecr.aws/m6i5k1r2/workbench_dashboard:v0_8_208_amd64"
15
+ dashboard_image = "public.ecr.aws/m6i5k1r2/workbench_dashboard:v0_8_228_amd64"
16
16
 
17
17
  # Workbench Configuration
18
18
  try:
@@ -12,7 +12,7 @@ print(f"Account: {aws_account}")
12
12
  print(f"Region: {aws_region}")
13
13
 
14
14
  # When you want a different docker image change this line
15
- dashboard_image = "public.ecr.aws/m6i5k1r2/workbench_dashboard:v0_8_208_amd64"
15
+ dashboard_image = "public.ecr.aws/m6i5k1r2/workbench_dashboard:v0_8_228_amd64"
16
16
 
17
17
  # Workbench Configuration
18
18
  try:
@@ -6,9 +6,10 @@ Notes and information on how to do the Dashboard Docker Builds and Push to AWS E
6
6
  ```
7
7
  cd applications/aws_dashboard
8
8
  vi Dockerfile
9
+ ...
9
10
 
10
- # Install workbench[ui] in separate layer
11
- RUN pip install --no-cache-dir "workbench[ui]==0.8.116" <-- change this
11
+ # Install workbench[ui] in separate layer (dependencies already satisfied)
12
+ ARG WORKBENCH_VERSION=0.8.227 <-- change this
12
13
  ```
13
14
 
14
15
  ### Run the Deploy Script
@@ -54,66 +54,30 @@ Bootstrap and Dash Bootstrap Components (DBC) provide mechanisms to control them
54
54
 
55
55
  # Theming Strategy for Workbench Dashboard
56
56
 
57
- ## **Phase 1: Application Start-Up Theming**
58
- This focuses on setting a polished, cohesive interface at startup. It ensures:
57
+ ## **How Theme Switching Works**
59
58
 
60
- 1. **CSS and Plotly Templates at Start-Up**:
61
- - The current system handles global styles via CSS (including Flask-served `custom.css`) and Plotly templates (via `pio.templates.default`) during app initialization.
62
- 2. **Highly Customizable Interface**:
63
- - By leveraging both custom CSS and Plotly templates, you can style everything to match branding and preferences.
59
+ Workbench supports dynamic theme switching at runtime. When a user changes themes, the page reloads to ensure all styling systems are applied consistently.
64
60
 
65
- ### **Why Phase 1 Works Well**
66
- - **Plotly Templates**: Figures are automatically styled if `pio.templates.default` is set before app initialization.
67
- - **CSS**: Dynamically affects the entire app without additional callbacks.
68
- - **Scalability**: Suitable for large apps since styles and templates are applied globally.
61
+ ### **Why We Use Page Reload**
69
62
 
70
- <br><br>
63
+ 1. **CSS and Plotly Templates**:
64
+ - Global styles are handled via CSS (including Flask-served `custom.css`) and Plotly templates (via `pio.templates.default`) during app initialization.
65
+ - Plotly figures have their styling "baked in" at render time—they don't respond to CSS variable changes.
71
66
 
72
- ## **Phase 2: Dynamic Theme Switching**
73
- Dynamic theme switching allows users to toggle between themes (e.g., light and dark) at runtime. This is more complex, and splitting it into its own phase will reduce the complexity of each Phase.
67
+ 2. **The Alternative Would Be Complex**:
68
+ - Without reload, every figure would need an explicit callback to re-render when themes change.
69
+ - With 20+ dynamic figures across plugin pages, wiring up individual callbacks isn't practical.
74
70
 
75
- ### **Challenges with Dynamic Switching**
76
- 1. **Encapsulation Barriers**:
77
- - A centralized callback for theme switching needs to know about every figure or component in the app, which is not scalable.
78
- 2. **Dynamic Content/Plugins**:
79
- - We have plugin pages, views, and components. A Typical app has 20 figures dynamically created, adding complexity to centralized callbacks.
71
+ 3. **Reload Is Simple and Reliable**:
72
+ - A page reload ensures all three systems (CSS, Plotly templates, Bootstrap) are applied correctly.
73
+ - Theme switching is typically a one-time choice, not something users toggle frequently.
80
74
 
75
+ ### **What Happens on Theme Change**
81
76
 
82
-
83
- ### **Proposed Solution: `set_theme()` Method**
84
- Introduce a `set_theme()` method in each component to manage its own updates:
85
-
86
- - **Figures**: Update their `layout.template` or regenerate themselves.
87
- - **HTML/CSS Components**: Dynamically update styles or toggle CSS classes.
88
-
89
- ### **Advantages of `set_theme()`**
90
- 1. **Encapsulation**:
91
- - Each component knows how to update itself based on the theme.
92
- 2. **Simple Callback**:
93
- - The theme switch callback iterates through all registered components and calls their `set_theme()` method.
94
- 3. **Scalable**:
95
- - Suitable for multi-page apps with many dynamic components.
96
-
97
-
98
-
99
- ## **How the Two Phases Work Together**
100
- ### Phase 1:
101
- - **Focus**: Global theming at app start-up.
102
- - **What Works**:
103
- - Plotly templates are applied to all figures by default.
104
- - CSS styles are applied across the app.
105
-
106
- ### Phase 2:
107
- - **Focus**: Extend components to dynamically update their theme.
108
- - **What to Add**:
109
- - Extend components with a `set_theme(theme_name: str)` method.
110
- - The callback triggers `set_theme()` for each registered component.
111
-
112
-
113
-
114
- ## **Next Steps**
115
- - **Phase 1**: Finalize CSS and Plotly template integration for start-up theming.
116
- - **Phase 2**: Begin implementing a `set_theme()` system for individual components.
77
+ 1. User selects a new theme
78
+ 2. Theme preference is saved (persisted across sessions)
79
+ 3. Page reloads
80
+ 4. On reload, the new CSS stylesheet, Plotly template, and Bootstrap theme are all applied consistently
117
81
 
118
82
  <br><br><br>
119
83
  <br><br><br>
@@ -47,6 +47,36 @@ The `data-bs-theme=light/dark` html attribute affects **Bootstrap-specific compo
47
47
 
48
48
  * Some figure parameters will automatically work, but for stuff like colorscales the component code needs to 'pull' that from the template meta data when it updates it's figure.
49
49
 
50
+ ## Why We Require a Page Reload for Theme Switching
51
+
52
+ Workbench supports dynamic theme switching—you can change themes at runtime. However, switching themes triggers a page reload rather than an instant in-place update. If you've seen demos like the [Dash Bootstrap Theme Explorer Gallery](https://hellodash.pythonanywhere.com/theme-explorer/gallery) where themes switch instantly, you might wonder why we can't do the same.
53
+
54
+ ### The Technical Reality
55
+
56
+ **Plotly figures don't respond to CSS variables.** Unlike Bootstrap components (buttons, cards, tables) which automatically re-style when `data-bs-theme` changes, Plotly figures have their styling "baked in" at render time. The figure's colors, fonts, and backgrounds are set when the figure is created—they don't dynamically respond to theme changes.
57
+
58
+ ### What dash-bootstrap-templates Actually Does
59
+
60
+ Even the excellent [dash-bootstrap-templates](https://github.com/AnnMarieW/dash-bootstrap-templates) library has this limitation. From their docs:
61
+
62
+ > *"The All-in-One component switches the Bootstrap stylesheet and sets the default Plotly figure template, however, figures must be updated in a callback in order to render the figure with the new template."*
63
+
64
+ This means every figure needs an explicit callback to re-render when the theme changes. In a simple demo app with 3-5 figures, that's manageable. In Workbench, with 20+ dynamic figures across multiple plugin pages, wiring up individual callbacks for each figure isn't practical.
65
+
66
+ ### Three Separate Styling Systems
67
+
68
+ | **System** | **What It Styles** | **Instant Switching?** |
69
+ |----------------------|---------------------------------|--------------------------------------------|
70
+ | CSS/Bootstrap | Layout, buttons, cards, tables | ✅ Yes (via `data-bs-theme`) |
71
+ | Plotly Templates | Figure axes, colors, fonts | ❌ No - requires figure re-render |
72
+ | Custom CSS | Non-Bootstrap elements | ⚠️ Requires stylesheet swap |
73
+
74
+ ### Our Approach: Reload on Theme Change
75
+
76
+ Rather than implementing complex callback wiring for every figure across all plugin pages, Workbench takes a pragmatic approach: **when you switch themes, the page reloads**. This ensures all three styling systems (CSS, Plotly templates, and Bootstrap components) are applied consistently and correctly.
77
+
78
+ The reload is fast, and theme selection is typically a one-time choice rather than something users toggle frequently. This approach gives us full theme flexibility without the architectural complexity of in-place figure updates.
79
+
50
80
  ## Additional Resources
51
81
 
52
82
  <img align="right" src="../images/scp.png" width="180">
@@ -2,7 +2,6 @@ from workbench.utils.test_data_generator import TestDataGenerator
2
2
  from workbench.api.data_source import DataSource
3
3
  from pprint import pprint
4
4
 
5
-
6
5
  # Create a new Data Source from a Pandas DataFrame
7
6
  gen_data = TestDataGenerator()
8
7
  df = gen_data.person_data()
@@ -12,7 +12,6 @@ Endpoints:
12
12
 
13
13
  from workbench.api import DataSource, FeatureSet, Model, ModelType
14
14
 
15
-
16
15
  if __name__ == "__main__":
17
16
 
18
17
  # Create the wine_features FeatureSet
@@ -2,7 +2,6 @@
2
2
 
3
3
  from dash import dcc
4
4
 
5
-
6
5
  # Workbench Imports
7
6
  from workbench.web_interface.components.plugin_interface import PluginInterface, PluginPage, PluginInputType
8
7
  from workbench.api.model import Model