workbench 0.8.233__tar.gz → 0.8.238__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 (822) hide show
  1. {workbench-0.8.233 → workbench-0.8.238}/PKG-INFO +2 -2
  2. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/Dockerfile +1 -1
  3. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/app.py +13 -3
  4. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/endpoints/callbacks.py +23 -0
  5. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/endpoints/page.py +1 -0
  6. workbench-0.8.238/applications/aws_dashboard/pages/models/callbacks.py +137 -0
  7. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/models/page.py +12 -31
  8. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_compute/workbench_compute/lambdas/batch_failure/handler.py +1 -1
  9. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_compute/workbench_compute/workbench_compute_stack.py +53 -5
  10. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_dashboard_full/app.py +1 -1
  11. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_dashboard_full/workbench_dashboard_full/workbench_dashboard_stack.py +4 -0
  12. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_dashboard_lite/app.py +1 -1
  13. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_dashboard_lite/workbench_dashboard_lite/workbench_dashboard_stack.py +4 -0
  14. {workbench-0.8.233 → workbench-0.8.238}/docs/advanced_models/index.md +1 -8
  15. workbench-0.8.238/docs/confidence/index.md +111 -0
  16. workbench-0.8.238/docs/themes/details.md +61 -0
  17. workbench-0.8.238/docs/themes/index.md +79 -0
  18. workbench-0.8.238/examples/models/split_comparison_chemprop.py +90 -0
  19. workbench-0.8.238/examples/models/split_comparison_pytorch.py +96 -0
  20. workbench-0.8.238/examples/models/split_comparison_xgb.py +95 -0
  21. {workbench-0.8.233 → workbench-0.8.238}/mkdocs.yml +2 -0
  22. workbench-0.8.238/model_docker_images/inference/requirements.txt +11 -0
  23. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/ml_pipelines/Dockerfile +1 -1
  24. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/ml_pipelines/requirements.txt +4 -4
  25. workbench-0.8.238/model_docker_images/training/requirements.txt +9 -0
  26. {workbench-0.8.233 → workbench-0.8.238}/pyproject.toml +4 -2
  27. workbench-0.8.238/scripts/admin/find_orphan_models.py +132 -0
  28. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/dataframe/smart_aggregator.py +17 -12
  29. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/api/endpoint.py +13 -4
  30. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/api/model.py +2 -2
  31. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/cached/cached_model.py +2 -2
  32. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/artifacts/athena_source.py +5 -3
  33. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/artifacts/endpoint_core.py +30 -5
  34. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/cloud_platform/aws/aws_meta.py +2 -1
  35. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/model_to_endpoint/model_to_endpoint.py +27 -14
  36. {workbench-0.8.233/src/workbench/model_scripts/pytorch_model → workbench-0.8.238/src/workbench/model_script_utils}/model_script_utils.py +225 -0
  37. {workbench-0.8.233/src/workbench/model_scripts/pytorch_model → workbench-0.8.238/src/workbench/model_script_utils}/uq_harness.py +39 -21
  38. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/chemprop/chemprop.template +29 -14
  39. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/chemprop/generated_model_script.py +35 -18
  40. {workbench-0.8.233/src/workbench/model_script_utils → workbench-0.8.238/src/workbench/model_scripts/chemprop}/model_script_utils.py +225 -0
  41. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/pytorch_model/generated_model_script.py +29 -15
  42. {workbench-0.8.233/src/workbench/model_scripts/xgb_model → workbench-0.8.238/src/workbench/model_scripts/pytorch_model}/model_script_utils.py +225 -0
  43. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/pytorch_model/pytorch.template +28 -14
  44. {workbench-0.8.233/src/workbench/model_scripts/xgb_model → workbench-0.8.238/src/workbench/model_scripts/pytorch_model}/uq_harness.py +39 -21
  45. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/xgb_model/generated_model_script.py +35 -22
  46. {workbench-0.8.233/src/workbench/model_scripts/chemprop → workbench-0.8.238/src/workbench/model_scripts/xgb_model}/model_script_utils.py +225 -0
  47. {workbench-0.8.233/src/workbench/model_script_utils → workbench-0.8.238/src/workbench/model_scripts/xgb_model}/uq_harness.py +39 -21
  48. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/xgb_model/xgb_model.template +29 -18
  49. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/scripts/ml_pipeline_batch.py +47 -2
  50. workbench-0.8.238/src/workbench/scripts/ml_pipeline_launcher.py +410 -0
  51. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/scripts/ml_pipeline_sqs.py +22 -2
  52. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/themes/dark/custom.css +29 -0
  53. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/themes/light/custom.css +29 -0
  54. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/themes/midnight_blue/custom.css +28 -0
  55. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/model_utils.py +9 -0
  56. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/theme_manager.py +95 -0
  57. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/component_interface.py +3 -0
  58. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/plugin_interface.py +26 -0
  59. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/plugins/ag_table.py +4 -11
  60. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/plugins/confusion_matrix.py +14 -8
  61. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/plugins/model_details.py +8 -3
  62. workbench-0.8.238/src/workbench/web_interface/components/plugins/model_plot.py +156 -0
  63. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/plugins/scatter_plot.py +9 -2
  64. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/plugins/shap_summary_plot.py +12 -4
  65. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/settings_menu.py +10 -49
  66. {workbench-0.8.233 → workbench-0.8.238}/src/workbench.egg-info/PKG-INFO +2 -2
  67. {workbench-0.8.233 → workbench-0.8.238}/src/workbench.egg-info/SOURCES.txt +7 -1
  68. {workbench-0.8.233 → workbench-0.8.238}/src/workbench.egg-info/entry_points.txt +1 -0
  69. {workbench-0.8.233 → workbench-0.8.238}/src/workbench.egg-info/requires.txt +1 -1
  70. {workbench-0.8.233 → workbench-0.8.238}/tests/artifacts/empty_model_group.py +4 -0
  71. {workbench-0.8.233 → workbench-0.8.238}/tox.ini +2 -2
  72. workbench-0.8.233/applications/aws_dashboard/pages/models/callbacks.py +0 -156
  73. workbench-0.8.233/docs/themes/details.md +0 -112
  74. workbench-0.8.233/docs/themes/index.md +0 -87
  75. workbench-0.8.233/model_docker_images/inference/requirements.txt +0 -10
  76. workbench-0.8.233/model_docker_images/training/requirements.txt +0 -8
  77. workbench-0.8.233/src/workbench/web_interface/components/model_plot.py +0 -75
  78. {workbench-0.8.233 → workbench-0.8.238}/.flake8 +0 -0
  79. {workbench-0.8.233 → workbench-0.8.238}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  80. {workbench-0.8.233 → workbench-0.8.238}/.github/dependabot.yml +0 -0
  81. {workbench-0.8.233 → workbench-0.8.238}/.github/workflows/deploy-docs.yml +0 -0
  82. {workbench-0.8.233 → workbench-0.8.238}/.github/workflows/python-lint.yml +0 -0
  83. {workbench-0.8.233 → workbench-0.8.238}/.gitignore +0 -0
  84. {workbench-0.8.233 → workbench-0.8.238}/CONTRIBUTING.md +0 -0
  85. {workbench-0.8.233 → workbench-0.8.238}/Dockerfile +0 -0
  86. {workbench-0.8.233 → workbench-0.8.238}/LICENSE +0 -0
  87. {workbench-0.8.233 → workbench-0.8.238}/Makefile +0 -0
  88. {workbench-0.8.233 → workbench-0.8.238}/README.md +0 -0
  89. {workbench-0.8.233 → workbench-0.8.238}/SECURITY.md +0 -0
  90. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/README.md +0 -0
  91. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/assets/favicon.ico +0 -0
  92. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/dashboard +0 -0
  93. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/deploy.sh +0 -0
  94. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/open_source_config.json +0 -0
  95. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/data_sources/callbacks.py +0 -0
  96. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/data_sources/layout.py +0 -0
  97. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/data_sources/page.py +0 -0
  98. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/endpoints/layout.py +0 -0
  99. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/feature_sets/callbacks.py +0 -0
  100. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/feature_sets/layout.py +0 -0
  101. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/feature_sets/page.py +0 -0
  102. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/license/page.py +0 -0
  103. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/main/callbacks.py +0 -0
  104. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/main/layout.py +0 -0
  105. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/main/page.py +0 -0
  106. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/models/layout.py +0 -0
  107. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/pipelines/callbacks.py +0 -0
  108. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/pipelines/layout.py +0 -0
  109. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/pipelines/page.py +0 -0
  110. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/pages/status/page.py +0 -0
  111. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/static/dark.css +0 -0
  112. {workbench-0.8.233 → workbench-0.8.238}/applications/aws_dashboard/static/light.css +0 -0
  113. {workbench-0.8.233 → workbench-0.8.238}/applications/compound_explorer/Dockerfile +0 -0
  114. {workbench-0.8.233 → workbench-0.8.238}/applications/compound_explorer/README.md +0 -0
  115. {workbench-0.8.233 → workbench-0.8.238}/applications/compound_explorer/app.py +0 -0
  116. {workbench-0.8.233 → workbench-0.8.238}/applications/compound_explorer/assets/favicon.ico +0 -0
  117. {workbench-0.8.233 → workbench-0.8.238}/applications/compound_explorer/callbacks.py +0 -0
  118. {workbench-0.8.233 → workbench-0.8.238}/applications/compound_explorer/explorer +0 -0
  119. {workbench-0.8.233 → workbench-0.8.238}/applications/compound_explorer/layout.py +0 -0
  120. {workbench-0.8.233 → workbench-0.8.238}/applications/compound_explorer/nginx.conf +0 -0
  121. {workbench-0.8.233 → workbench-0.8.238}/applications/compound_explorer/open_source_config.json +0 -0
  122. {workbench-0.8.233 → workbench-0.8.238}/applications/compound_explorer/requirements.txt +0 -0
  123. {workbench-0.8.233 → workbench-0.8.238}/applications/compound_explorer/storage/callbacks.py +0 -0
  124. {workbench-0.8.233 → workbench-0.8.238}/applications/compound_explorer/storage/callbacks_new.py +0 -0
  125. {workbench-0.8.233 → workbench-0.8.238}/applications/compound_explorer/storage/layout_new.py +0 -0
  126. {workbench-0.8.233 → workbench-0.8.238}/applications/compound_explorer/supervisord.conf +0 -0
  127. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/aws_account_setup.py +0 -0
  128. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/aws_identity_check.py +0 -0
  129. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/build_ml_pipeline.py +0 -0
  130. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/compound_explorer/.gitignore +0 -0
  131. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/compound_explorer/README.md +0 -0
  132. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/compound_explorer/app.py +0 -0
  133. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/compound_explorer/cdk.json +0 -0
  134. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/compound_explorer/compound_explorer/__init__.py +0 -0
  135. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/compound_explorer/compound_explorer/compound_explorer_stack.py +0 -0
  136. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/compound_explorer/requirements.txt +0 -0
  137. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/event_bridge/Readme.md +0 -0
  138. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_compute/README.md +0 -0
  139. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_compute/app.py +0 -0
  140. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_compute/cdk.json +0 -0
  141. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_compute/requirements.txt +0 -0
  142. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_compute/workbench_compute/__init__.py +0 -0
  143. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_compute/workbench_compute/lambdas/batch_trigger/handler.py +0 -0
  144. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_core/.gitignore +0 -0
  145. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_core/README.md +0 -0
  146. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_core/app.py +0 -0
  147. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_core/cdk.json +0 -0
  148. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_core/requirements-dev.txt +0 -0
  149. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_core/requirements.txt +0 -0
  150. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_core/source.bat +0 -0
  151. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_core/workbench_core/__init__.py +0 -0
  152. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_core/workbench_core/workbench_core_stack.py +0 -0
  153. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_dashboard_full/.gitignore +0 -0
  154. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_dashboard_full/README.md +0 -0
  155. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_dashboard_full/cdk.json +0 -0
  156. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_dashboard_full/requirements-dev.txt +0 -0
  157. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_dashboard_full/requirements.txt +0 -0
  158. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_dashboard_full/source.bat +0 -0
  159. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_dashboard_full/workbench_dashboard_full/__init__.py +0 -0
  160. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_dashboard_lite/.gitignore +0 -0
  161. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_dashboard_lite/README.md +0 -0
  162. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_dashboard_lite/cdk.json +0 -0
  163. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_dashboard_lite/requirements.txt +0 -0
  164. {workbench-0.8.233 → workbench-0.8.238}/aws_setup/workbench_dashboard_lite/workbench_dashboard_lite/__init__.py +0 -0
  165. {workbench-0.8.233 → workbench-0.8.238}/data/abalone.csv +0 -0
  166. {workbench-0.8.233 → workbench-0.8.238}/data/karate_graph.json +0 -0
  167. {workbench-0.8.233 → workbench-0.8.238}/data/test_data.csv +0 -0
  168. {workbench-0.8.233 → workbench-0.8.238}/data/test_data.json +0 -0
  169. {workbench-0.8.233 → workbench-0.8.238}/data/wine_dataset.csv +0 -0
  170. {workbench-0.8.233 → workbench-0.8.238}/deploy_docker.sh +0 -0
  171. {workbench-0.8.233 → workbench-0.8.238}/docs/admin/aws_service_limits.md +0 -0
  172. {workbench-0.8.233 → workbench-0.8.238}/docs/admin/base_docker_push.md +0 -0
  173. {workbench-0.8.233 → workbench-0.8.238}/docs/admin/dashboard_docker_push.md +0 -0
  174. {workbench-0.8.233 → workbench-0.8.238}/docs/admin/dashboard_s3_plugins.md +0 -0
  175. {workbench-0.8.233 → workbench-0.8.238}/docs/admin/explorer_docker_push.md +0 -0
  176. {workbench-0.8.233 → workbench-0.8.238}/docs/admin/images/dashboard_secret_click.png +0 -0
  177. {workbench-0.8.233 → workbench-0.8.238}/docs/admin/images/serverless_quotas.png +0 -0
  178. {workbench-0.8.233 → workbench-0.8.238}/docs/admin/images/status_showing_S3_path.png +0 -0
  179. {workbench-0.8.233 → workbench-0.8.238}/docs/admin/pypi_release.md +0 -0
  180. {workbench-0.8.233 → workbench-0.8.238}/docs/admin/workbench_docker_for_lambdas.md +0 -0
  181. {workbench-0.8.233 → workbench-0.8.238}/docs/advanced_models/images/confidence.jpg +0 -0
  182. {workbench-0.8.233 → workbench-0.8.238}/docs/api_classes/data_source.md +0 -0
  183. {workbench-0.8.233 → workbench-0.8.238}/docs/api_classes/df_store.md +0 -0
  184. {workbench-0.8.233 → workbench-0.8.238}/docs/api_classes/endpoint.md +0 -0
  185. {workbench-0.8.233 → workbench-0.8.238}/docs/api_classes/feature_set.md +0 -0
  186. {workbench-0.8.233 → workbench-0.8.238}/docs/api_classes/meta.md +0 -0
  187. {workbench-0.8.233 → workbench-0.8.238}/docs/api_classes/model.md +0 -0
  188. {workbench-0.8.233 → workbench-0.8.238}/docs/api_classes/monitor.md +0 -0
  189. {workbench-0.8.233 → workbench-0.8.238}/docs/api_classes/overview.md +0 -0
  190. {workbench-0.8.233 → workbench-0.8.238}/docs/api_classes/parameter_store.md +0 -0
  191. {workbench-0.8.233 → workbench-0.8.238}/docs/api_classes/pipelines.md +0 -0
  192. {workbench-0.8.233 → workbench-0.8.238}/docs/api_classes/views.md +0 -0
  193. {workbench-0.8.233 → workbench-0.8.238}/docs/aws_setup/aws_access_management.md +0 -0
  194. {workbench-0.8.233 → workbench-0.8.238}/docs/aws_setup/aws_client_vpn.md +0 -0
  195. {workbench-0.8.233 → workbench-0.8.238}/docs/aws_setup/aws_setup.md +0 -0
  196. {workbench-0.8.233 → workbench-0.8.238}/docs/aws_setup/aws_tips_and_tricks.md +0 -0
  197. {workbench-0.8.233 → workbench-0.8.238}/docs/aws_setup/core_stack.md +0 -0
  198. {workbench-0.8.233 → workbench-0.8.238}/docs/aws_setup/dashboard_stack.md +0 -0
  199. {workbench-0.8.233 → workbench-0.8.238}/docs/aws_setup/domain_cert_setup.md +0 -0
  200. {workbench-0.8.233 → workbench-0.8.238}/docs/aws_setup/full_pipeline.md +0 -0
  201. {workbench-0.8.233 → workbench-0.8.238}/docs/aws_setup/iam_assume_role.md +0 -0
  202. {workbench-0.8.233 → workbench-0.8.238}/docs/aws_setup/sso_assume_role.md +0 -0
  203. {workbench-0.8.233 → workbench-0.8.238}/docs/blogs/aws_credentials_lock.md +0 -0
  204. {workbench-0.8.233 → workbench-0.8.238}/docs/blogs/canonicalization_and_tautomerization.md +0 -0
  205. {workbench-0.8.233 → workbench-0.8.238}/docs/blogs/compound_etl.md +0 -0
  206. {workbench-0.8.233 → workbench-0.8.238}/docs/blogs/compound_explorer.md +0 -0
  207. {workbench-0.8.233 → workbench-0.8.238}/docs/blogs/descriptor_drilldown.md +0 -0
  208. {workbench-0.8.233 → workbench-0.8.238}/docs/blogs/eda.md +0 -0
  209. {workbench-0.8.233 → workbench-0.8.238}/docs/blogs/feature_importances.md +0 -0
  210. {workbench-0.8.233 → workbench-0.8.238}/docs/blogs/fun_with_workbench/fun_with_endpoints.md +0 -0
  211. {workbench-0.8.233 → workbench-0.8.238}/docs/blogs/htg.md +0 -0
  212. {workbench-0.8.233 → workbench-0.8.238}/docs/blogs/index.md +0 -0
  213. {workbench-0.8.233 → workbench-0.8.238}/docs/blogs/model_monitoring.md +0 -0
  214. {workbench-0.8.233 → workbench-0.8.238}/docs/blogs/residual_analysis.md +0 -0
  215. {workbench-0.8.233 → workbench-0.8.238}/docs/cached/cached_data_source.md +0 -0
  216. {workbench-0.8.233 → workbench-0.8.238}/docs/cached/cached_endpoint.md +0 -0
  217. {workbench-0.8.233 → workbench-0.8.238}/docs/cached/cached_feature_set.md +0 -0
  218. {workbench-0.8.233 → workbench-0.8.238}/docs/cached/cached_meta.md +0 -0
  219. {workbench-0.8.233 → workbench-0.8.238}/docs/cached/cached_model.md +0 -0
  220. {workbench-0.8.233 → workbench-0.8.238}/docs/cached/overview.md +0 -0
  221. {workbench-0.8.233 → workbench-0.8.238}/docs/chem_utils/index.md +0 -0
  222. {workbench-0.8.233 → workbench-0.8.238}/docs/cloudwatch/index.md +0 -0
  223. {workbench-0.8.233 → workbench-0.8.238}/docs/comparisons/workbench_vs_databricks.md +0 -0
  224. {workbench-0.8.233 → workbench-0.8.238}/docs/compound_explorer/tox21.md +0 -0
  225. {workbench-0.8.233 → workbench-0.8.238}/docs/compound_explorer/toxicity_modeling.md +0 -0
  226. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/artifacts/artifact.md +0 -0
  227. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/artifacts/athena_source.md +0 -0
  228. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/artifacts/data_source_abstract.md +0 -0
  229. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/artifacts/endpoint_core.md +0 -0
  230. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/artifacts/feature_set_core.md +0 -0
  231. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/artifacts/model_core.md +0 -0
  232. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/artifacts/monitor_core.md +0 -0
  233. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/artifacts/overview.md +0 -0
  234. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/overview.md +0 -0
  235. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/transforms/data_loaders_heavy.md +0 -0
  236. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/transforms/data_loaders_light.md +0 -0
  237. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/transforms/data_to_features.md +0 -0
  238. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/transforms/features_to_model.md +0 -0
  239. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/transforms/model_to_endpoint.md +0 -0
  240. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/transforms/overview.md +0 -0
  241. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/transforms/pandas_transforms.md +0 -0
  242. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/transforms/transform.md +0 -0
  243. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/views/computation_view.md +0 -0
  244. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/views/display_view.md +0 -0
  245. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/views/inference_view.md +0 -0
  246. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/views/overview.md +0 -0
  247. {workbench-0.8.233 → workbench-0.8.238}/docs/core_classes/views/training_view.md +0 -0
  248. {workbench-0.8.233 → workbench-0.8.238}/docs/data_algorithms/dataframes/overview.md +0 -0
  249. {workbench-0.8.233 → workbench-0.8.238}/docs/data_algorithms/graphs/overview.md +0 -0
  250. {workbench-0.8.233 → workbench-0.8.238}/docs/data_algorithms/overview.md +0 -0
  251. {workbench-0.8.233 → workbench-0.8.238}/docs/data_algorithms/spark/overview.md +0 -0
  252. {workbench-0.8.233 → workbench-0.8.238}/docs/data_algorithms/sql/overview.md +0 -0
  253. {workbench-0.8.233 → workbench-0.8.238}/docs/enterprise/index.md +0 -0
  254. {workbench-0.8.233 → workbench-0.8.238}/docs/enterprise/private_saas.md +0 -0
  255. {workbench-0.8.233 → workbench-0.8.238}/docs/enterprise/project_branding.md +0 -0
  256. {workbench-0.8.233 → workbench-0.8.238}/docs/enterprise/themes.md +0 -0
  257. {workbench-0.8.233 → workbench-0.8.238}/docs/getting_started/index.md +0 -0
  258. {workbench-0.8.233 → workbench-0.8.238}/docs/glue/index.md +0 -0
  259. {workbench-0.8.233 → workbench-0.8.238}/docs/images/big_spider.png +0 -0
  260. {workbench-0.8.233 → workbench-0.8.238}/docs/images/graph_representation.png +0 -0
  261. {workbench-0.8.233 → workbench-0.8.238}/docs/images/powered_aws_dark_blue.png +0 -0
  262. {workbench-0.8.233 → workbench-0.8.238}/docs/images/powered_aws_transparent.png +0 -0
  263. {workbench-0.8.233 → workbench-0.8.238}/docs/images/powered_aws_white.png +0 -0
  264. {workbench-0.8.233 → workbench-0.8.238}/docs/images/powered_aws_with_tm_grey.png +0 -0
  265. {workbench-0.8.233 → workbench-0.8.238}/docs/images/scp.png +0 -0
  266. {workbench-0.8.233 → workbench-0.8.238}/docs/images/scp_labs.png +0 -0
  267. {workbench-0.8.233 → workbench-0.8.238}/docs/images/small_spider.png +0 -0
  268. {workbench-0.8.233 → workbench-0.8.238}/docs/images/workbench_concepts.png +0 -0
  269. {workbench-0.8.233 → workbench-0.8.238}/docs/index.md +0 -0
  270. {workbench-0.8.233 → workbench-0.8.238}/docs/lambda_layer/index.md +0 -0
  271. {workbench-0.8.233 → workbench-0.8.238}/docs/misc/faq.md +0 -0
  272. {workbench-0.8.233 → workbench-0.8.238}/docs/misc/general_info.md +0 -0
  273. {workbench-0.8.233 → workbench-0.8.238}/docs/misc/scp_consulting.md +0 -0
  274. {workbench-0.8.233 → workbench-0.8.238}/docs/misc/workbench_classes_concepts.md +0 -0
  275. {workbench-0.8.233 → workbench-0.8.238}/docs/model_utils/index.md +0 -0
  276. {workbench-0.8.233 → workbench-0.8.238}/docs/plugins/index.md +0 -0
  277. {workbench-0.8.233 → workbench-0.8.238}/docs/presentations/index.md +0 -0
  278. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/0_8_106.md +0 -0
  279. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/0_8_158.md +0 -0
  280. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/0_8_50.md +0 -0
  281. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/0_8_55.md +0 -0
  282. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/0_8_58.md +0 -0
  283. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/0_8_60.md +0 -0
  284. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/0_8_71.md +0 -0
  285. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/0_8_74.md +0 -0
  286. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/0_8_78.md +0 -0
  287. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/archived/0_7_8.md +0 -0
  288. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/archived/0_8_11.md +0 -0
  289. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/archived/0_8_20.md +0 -0
  290. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/archived/0_8_22.md +0 -0
  291. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/archived/0_8_23.md +0 -0
  292. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/archived/0_8_27.md +0 -0
  293. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/archived/0_8_29.md +0 -0
  294. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/archived/0_8_33.md +0 -0
  295. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/archived/0_8_35.md +0 -0
  296. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/archived/0_8_36.md +0 -0
  297. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/archived/0_8_39.md +0 -0
  298. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/archived/0_8_42.md +0 -0
  299. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/archived/0_8_46.md +0 -0
  300. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/archived/0_8_6.md +0 -0
  301. {workbench-0.8.233 → workbench-0.8.238}/docs/release_notes/archived/0_8_8.md +0 -0
  302. {workbench-0.8.233 → workbench-0.8.238}/docs/repl/index.md +0 -0
  303. {workbench-0.8.233 → workbench-0.8.238}/docs/road_maps/0_9_0.md +0 -0
  304. {workbench-0.8.233 → workbench-0.8.238}/docs/road_maps/0_9_5.md +0 -0
  305. {workbench-0.8.233 → workbench-0.8.238}/examples/ag-grid/hello_world.py +0 -0
  306. {workbench-0.8.233 → workbench-0.8.238}/examples/chem_utils/tautomerize_smiles.py +0 -0
  307. {workbench-0.8.233 → workbench-0.8.238}/examples/datasource/datasource_from_df.py +0 -0
  308. {workbench-0.8.233 → workbench-0.8.238}/examples/datasource/datasource_from_s3.py +0 -0
  309. {workbench-0.8.233 → workbench-0.8.238}/examples/datasource/datasource_query.py +0 -0
  310. {workbench-0.8.233 → workbench-0.8.238}/examples/datasource/datasource_stats.py +0 -0
  311. {workbench-0.8.233 → workbench-0.8.238}/examples/datasource/datasource_to_featureset.py +0 -0
  312. {workbench-0.8.233 → workbench-0.8.238}/examples/endpoint/endpoint_details.py +0 -0
  313. {workbench-0.8.233 → workbench-0.8.238}/examples/endpoint/endpoint_inference.py +0 -0
  314. {workbench-0.8.233 → workbench-0.8.238}/examples/endpoint/endpoint_metrics.py +0 -0
  315. {workbench-0.8.233 → workbench-0.8.238}/examples/featureset/featureset_eda.py +0 -0
  316. {workbench-0.8.233 → workbench-0.8.238}/examples/featureset/featureset_query.py +0 -0
  317. {workbench-0.8.233 → workbench-0.8.238}/examples/full_ml_pipeline.py +0 -0
  318. {workbench-0.8.233 → workbench-0.8.238}/examples/glue_jobs/glue_example_1.py +0 -0
  319. {workbench-0.8.233 → workbench-0.8.238}/examples/glue_jobs/glue_example_2.py +0 -0
  320. {workbench-0.8.233 → workbench-0.8.238}/examples/glue_jobs/glue_example_3.py +0 -0
  321. {workbench-0.8.233 → workbench-0.8.238}/examples/glue_jobs/glue_launcher_examples/example_1.py +0 -0
  322. {workbench-0.8.233 → workbench-0.8.238}/examples/glue_jobs/glue_launcher_examples/example_2.py +0 -0
  323. {workbench-0.8.233 → workbench-0.8.238}/examples/meta/meta_list_endpoints.py +0 -0
  324. {workbench-0.8.233 → workbench-0.8.238}/examples/meta/meta_list_models.py +0 -0
  325. {workbench-0.8.233 → workbench-0.8.238}/examples/meta/meta_model_metrics.py +0 -0
  326. {workbench-0.8.233 → workbench-0.8.238}/examples/ml_pipelines/list_models.py +0 -0
  327. {workbench-0.8.233 → workbench-0.8.238}/examples/ml_pipelines/wine_classifier.py +0 -0
  328. {workbench-0.8.233 → workbench-0.8.238}/examples/model_utils/model_metrics.py +0 -0
  329. {workbench-0.8.233 → workbench-0.8.238}/examples/model_utils/model_to_endpoint.py +0 -0
  330. {workbench-0.8.233 → workbench-0.8.238}/examples/model_utils/onboard_model.py +0 -0
  331. {workbench-0.8.233 → workbench-0.8.238}/examples/models/chemprop.py +0 -0
  332. {workbench-0.8.233 → workbench-0.8.238}/examples/models/chemprop_foundation.py +0 -0
  333. {workbench-0.8.233 → workbench-0.8.238}/examples/models/custom_model.py +0 -0
  334. {workbench-0.8.233 → workbench-0.8.238}/examples/models/dbscan.py +0 -0
  335. {workbench-0.8.233 → workbench-0.8.238}/examples/models/knn.py +0 -0
  336. {workbench-0.8.233 → workbench-0.8.238}/examples/models/meta_model.py +0 -0
  337. {workbench-0.8.233 → workbench-0.8.238}/examples/models/pytorch.py +0 -0
  338. {workbench-0.8.233 → workbench-0.8.238}/examples/models/random_forest.py +0 -0
  339. {workbench-0.8.233 → workbench-0.8.238}/examples/models/smiles_to_fingerprints.py +0 -0
  340. {workbench-0.8.233 → workbench-0.8.238}/examples/models/smiles_to_md_v1.py +0 -0
  341. {workbench-0.8.233 → workbench-0.8.238}/examples/models/uq/bayesian_ridge.py +0 -0
  342. {workbench-0.8.233 → workbench-0.8.238}/examples/models/uq/ensemble_xgb.py +0 -0
  343. {workbench-0.8.233 → workbench-0.8.238}/examples/models/uq/gaussian_process.py +0 -0
  344. {workbench-0.8.233 → workbench-0.8.238}/examples/models/uq/meta_uq.py +0 -0
  345. {workbench-0.8.233 → workbench-0.8.238}/examples/models/uq/ngboost.py +0 -0
  346. {workbench-0.8.233 → workbench-0.8.238}/examples/models/uq/quant_xgb.py +0 -0
  347. {workbench-0.8.233 → workbench-0.8.238}/examples/models/xgb_model.py +0 -0
  348. {workbench-0.8.233 → workbench-0.8.238}/examples/monitor/monitor_setup.py +0 -0
  349. {workbench-0.8.233 → workbench-0.8.238}/examples/monitor/monitor_usage.py +0 -0
  350. {workbench-0.8.233 → workbench-0.8.238}/examples/plugins/branding/Readme.md +0 -0
  351. {workbench-0.8.233 → workbench-0.8.238}/examples/plugins/branding/scp.json +0 -0
  352. {workbench-0.8.233 → workbench-0.8.238}/examples/plugins/components/custom_plugin.py +0 -0
  353. {workbench-0.8.233 → workbench-0.8.238}/examples/plugins/components/endpoint_plugin.py +0 -0
  354. {workbench-0.8.233 → workbench-0.8.238}/examples/plugins/components/endpoint_turbo.py +0 -0
  355. {workbench-0.8.233 → workbench-0.8.238}/examples/plugins/components/model_markdown.py +0 -0
  356. {workbench-0.8.233 → workbench-0.8.238}/examples/plugins/components/model_plugin.py +0 -0
  357. {workbench-0.8.233 → workbench-0.8.238}/examples/plugins/packages/my_plugin_utils/__init__.py +0 -0
  358. {workbench-0.8.233 → workbench-0.8.238}/examples/plugins/packages/my_plugin_utils/assets/foo.json +0 -0
  359. {workbench-0.8.233 → workbench-0.8.238}/examples/plugins/packages/my_plugin_utils/cool_stuff.py +0 -0
  360. {workbench-0.8.233 → workbench-0.8.238}/examples/plugins/pages/plugin_page_1.py +0 -0
  361. {workbench-0.8.233 → workbench-0.8.238}/examples/plugins/pages/plugin_page_2.py +0 -0
  362. {workbench-0.8.233 → workbench-0.8.238}/examples/plugins/pages/plugin_page_3.py +0 -0
  363. {workbench-0.8.233 → workbench-0.8.238}/examples/plugins/templates/Readme.md +0 -0
  364. {workbench-0.8.233 → workbench-0.8.238}/examples/plugins/views/model_plugin_view.py +0 -0
  365. {workbench-0.8.233 → workbench-0.8.238}/examples/plugins/views/my_view_plugin.py +0 -0
  366. {workbench-0.8.233 → workbench-0.8.238}/experiments/chem_info/bulk_sims.py +0 -0
  367. {workbench-0.8.233 → workbench-0.8.238}/experiments/chem_info/knn_sims.py +0 -0
  368. {workbench-0.8.233 → workbench-0.8.238}/experiments/cleanlab_bug_report.py +0 -0
  369. {workbench-0.8.233 → workbench-0.8.238}/experiments/confidence_roc_curve.py +0 -0
  370. {workbench-0.8.233 → workbench-0.8.238}/experiments/coverage_probability.py +0 -0
  371. {workbench-0.8.233 → workbench-0.8.238}/experiments/db_scan_test.py +0 -0
  372. {workbench-0.8.233 → workbench-0.8.238}/experiments/log_testing.py +0 -0
  373. {workbench-0.8.233 → workbench-0.8.238}/experiments/networkx_id.py +0 -0
  374. {workbench-0.8.233 → workbench-0.8.238}/experiments/prediction_intervals.py +0 -0
  375. {workbench-0.8.233 → workbench-0.8.238}/experiments/residual_analysis.py +0 -0
  376. {workbench-0.8.233 → workbench-0.8.238}/experiments/rocauc_testing.py +0 -0
  377. {workbench-0.8.233 → workbench-0.8.238}/experiments/scatter_zoom_issue.py +0 -0
  378. {workbench-0.8.233 → workbench-0.8.238}/experiments/sol_pipeline.py +0 -0
  379. {workbench-0.8.233 → workbench-0.8.238}/feature_endpoints/model_scripts/molecular_utils/mol_descriptors.py +0 -0
  380. {workbench-0.8.233 → workbench-0.8.238}/feature_endpoints/model_scripts/molecular_utils/mol_standardize.py +0 -0
  381. {workbench-0.8.233 → workbench-0.8.238}/feature_endpoints/model_scripts/rdkit_mordred_model_script.py +0 -0
  382. {workbench-0.8.233 → workbench-0.8.238}/feature_endpoints/model_scripts/rdkit_mordred_model_script_keep_salts.py +0 -0
  383. {workbench-0.8.233 → workbench-0.8.238}/feature_endpoints/model_scripts/requirements.txt +0 -0
  384. {workbench-0.8.233 → workbench-0.8.238}/feature_endpoints/rdkit_mordred_keep_salts_v1.py +0 -0
  385. {workbench-0.8.233 → workbench-0.8.238}/feature_endpoints/rdkit_mordred_v1.py +0 -0
  386. {workbench-0.8.233 → workbench-0.8.238}/glue_jobs/create_glue_workflow_with_trigger.py +0 -0
  387. {workbench-0.8.233 → workbench-0.8.238}/glue_jobs/example_glue_job.py +0 -0
  388. {workbench-0.8.233 → workbench-0.8.238}/glue_jobs/glue_job_pipeline.py +0 -0
  389. {workbench-0.8.233 → workbench-0.8.238}/glue_jobs/glue_mixed_case.py +0 -0
  390. {workbench-0.8.233 → workbench-0.8.238}/ml_pipelines/hyper_uq.py +0 -0
  391. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/Readme.md +0 -0
  392. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/inference/Dockerfile +0 -0
  393. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/inference/main.py +0 -0
  394. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/inference/serve +0 -0
  395. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/meta_inference/Dockerfile +0 -0
  396. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/meta_inference/main.py +0 -0
  397. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/meta_inference/requirements.txt +0 -0
  398. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/meta_inference/serve +0 -0
  399. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/meta_training/Dockerfile +0 -0
  400. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/meta_training/requirements.txt +0 -0
  401. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/meta_training/sagemaker_entrypoint.py +0 -0
  402. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/ml_pipelines/ml_pipeline_runner.py +0 -0
  403. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/pytorch_inference/Dockerfile +0 -0
  404. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/pytorch_inference/main.py +0 -0
  405. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/pytorch_inference/requirements.txt +0 -0
  406. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/pytorch_inference/serve +0 -0
  407. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/pytorch_training/Dockerfile +0 -0
  408. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/pytorch_training/requirements.txt +0 -0
  409. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/pytorch_training/sagemaker_entrypoint.py +0 -0
  410. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/scripts/build_deploy.sh +0 -0
  411. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/tests/data/abalone_sm.csv +0 -0
  412. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/tests/example_model_script.py +0 -0
  413. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/tests/run_tests.sh +0 -0
  414. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/tests/test_inference.py +0 -0
  415. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/tests/test_training.py +0 -0
  416. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/training/Dockerfile +0 -0
  417. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/training/sagemaker_entrypoint.py +0 -0
  418. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/workbench_inference/Dockerfile +0 -0
  419. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/workbench_inference/main.py +0 -0
  420. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/workbench_inference/requirements.txt +0 -0
  421. {workbench-0.8.233 → workbench-0.8.238}/model_docker_images/workbench_inference/serve +0 -0
  422. {workbench-0.8.233 → workbench-0.8.238}/notebooks/Inference_On_Legacy_Models.ipynb +0 -0
  423. {workbench-0.8.233 → workbench-0.8.238}/notebooks/ML_Pipeline_with_Workbench.ipynb +0 -0
  424. {workbench-0.8.233 → workbench-0.8.238}/notebooks/ML_Pipeline_with_Workbench_2.ipynb +0 -0
  425. {workbench-0.8.233 → workbench-0.8.238}/notebooks/Outliers_in_Workbench.ipynb +0 -0
  426. {workbench-0.8.233 → workbench-0.8.238}/notebooks/Regression_Confidence_Experiments.ipynb +0 -0
  427. {workbench-0.8.233 → workbench-0.8.238}/notebooks/Residual_Analysis.ipynb +0 -0
  428. {workbench-0.8.233 → workbench-0.8.238}/notebooks/images/athena_query_aqsol.png +0 -0
  429. {workbench-0.8.233 → workbench-0.8.238}/notebooks/images/aws_dashboard_aqsol.png +0 -0
  430. {workbench-0.8.233 → workbench-0.8.238}/notebooks/images/dashboard_aqsol_features.png +0 -0
  431. {workbench-0.8.233 → workbench-0.8.238}/notebooks/images/model_screenshot.png +0 -0
  432. {workbench-0.8.233 → workbench-0.8.238}/notebooks/images/scp_labs.png +0 -0
  433. {workbench-0.8.233 → workbench-0.8.238}/open_admet/.gitignore +0 -0
  434. {workbench-0.8.233 → workbench-0.8.238}/open_admet/README.md +0 -0
  435. {workbench-0.8.233 → workbench-0.8.238}/open_admet/all_models.py +0 -0
  436. {workbench-0.8.233 → workbench-0.8.238}/open_admet/hello_world.py +0 -0
  437. {workbench-0.8.233 → workbench-0.8.238}/open_admet/images/confidence.jpg +0 -0
  438. {workbench-0.8.233 → workbench-0.8.238}/open_admet/images/open_admet_model.jpg +0 -0
  439. {workbench-0.8.233 → workbench-0.8.238}/open_admet/load_data.py +0 -0
  440. {workbench-0.8.233 → workbench-0.8.238}/open_admet/model_metrics.md +0 -0
  441. {workbench-0.8.233 → workbench-0.8.238}/open_admet/run_inference.py +0 -0
  442. {workbench-0.8.233 → workbench-0.8.238}/open_admet/utils/compute_model_metrics.py +0 -0
  443. {workbench-0.8.233 → workbench-0.8.238}/presentations/README.md +0 -0
  444. {workbench-0.8.233 → workbench-0.8.238}/scripts/active_logs.sh +0 -0
  445. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/athena_ddl_mixed_case.py +0 -0
  446. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/check_all_glue_tables.py +0 -0
  447. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/delete_invalid_views.py +0 -0
  448. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/delete_redis_keys.py +0 -0
  449. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/list_datacatalog.py +0 -0
  450. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/migration/copy_glue_database.py +0 -0
  451. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/migration/delete_sageworks_glue_database.sh +0 -0
  452. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/migration/ds_migrate.py +0 -0
  453. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/migration/endpoint_migrate.py +0 -0
  454. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/migration/fs_migrate.py +0 -0
  455. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/migration/model_migrate.py +0 -0
  456. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/pull_image_digest.py +0 -0
  457. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/redis_reaper.py +0 -0
  458. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/spam_list_tags.py +0 -0
  459. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/storage/convert_training_views.py +0 -0
  460. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/storage/migrate_data_source_via_df.py +0 -0
  461. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/storage/migrate_ds_meta.py +0 -0
  462. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/test_batch_job_failure.py +0 -0
  463. {workbench-0.8.233 → workbench-0.8.238}/scripts/admin/test_no_workbench_config.py +0 -0
  464. {workbench-0.8.233 → workbench-0.8.238}/scripts/ag_table_row_selection.py +0 -0
  465. {workbench-0.8.233 → workbench-0.8.238}/scripts/compare_dataframes.py +0 -0
  466. {workbench-0.8.233 → workbench-0.8.238}/scripts/compare_model_packages.py +0 -0
  467. {workbench-0.8.233 → workbench-0.8.238}/scripts/delete_data_capture.py +0 -0
  468. {workbench-0.8.233 → workbench-0.8.238}/scripts/endpoint_timing.py +0 -0
  469. {workbench-0.8.233 → workbench-0.8.238}/scripts/get_tags.py +0 -0
  470. {workbench-0.8.233 → workbench-0.8.238}/scripts/instantiation_timings.py +0 -0
  471. {workbench-0.8.233 → workbench-0.8.238}/scripts/llm_deploys/deepseek_deploy.py +0 -0
  472. {workbench-0.8.233 → workbench-0.8.238}/scripts/model_cache_refresh.py +0 -0
  473. {workbench-0.8.233 → workbench-0.8.238}/scripts/model_endpoint_sanity_check.py +0 -0
  474. {workbench-0.8.233 → workbench-0.8.238}/scripts/monitor_event_bridge.py +0 -0
  475. {workbench-0.8.233 → workbench-0.8.238}/scripts/onboard_endpoints.py +0 -0
  476. {workbench-0.8.233 → workbench-0.8.238}/scripts/onboard_models.py +0 -0
  477. {workbench-0.8.233 → workbench-0.8.238}/scripts/pipeline_model_endpoint.py +0 -0
  478. {workbench-0.8.233 → workbench-0.8.238}/scripts/pubchem/pubchem_example.py +0 -0
  479. {workbench-0.8.233 → workbench-0.8.238}/scripts/pubchem/pubchem_query.py +0 -0
  480. {workbench-0.8.233 → workbench-0.8.238}/scripts/pubchem/pubchem_query_with_cid.py +0 -0
  481. {workbench-0.8.233 → workbench-0.8.238}/scripts/sagemaker_feature_group_issue.py +0 -0
  482. {workbench-0.8.233 → workbench-0.8.238}/scripts/seaborn_to_plotly.py +0 -0
  483. {workbench-0.8.233 → workbench-0.8.238}/scripts/storage/dns_data_to_features.py +0 -0
  484. {workbench-0.8.233 → workbench-0.8.238}/scripts/storage/generate_jsonl_data.py +0 -0
  485. {workbench-0.8.233 → workbench-0.8.238}/scripts/test_feature_resolution.py +0 -0
  486. {workbench-0.8.233 → workbench-0.8.238}/scripts/test_feature_set_creation.py +0 -0
  487. {workbench-0.8.233 → workbench-0.8.238}/scripts/tox21/test_tox_heuristic.py +0 -0
  488. {workbench-0.8.233 → workbench-0.8.238}/scripts/tox21/tox21_to_df_store.py +0 -0
  489. {workbench-0.8.233 → workbench-0.8.238}/setup.cfg +0 -0
  490. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/__init__.py +0 -0
  491. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/__init__.py +0 -0
  492. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/dataframe/Readme.md +0 -0
  493. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/dataframe/__init__.py +0 -0
  494. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/dataframe/compound_dataset_overlap.py +0 -0
  495. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/dataframe/data_source_eda.py +0 -0
  496. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/dataframe/feature_space_proximity.py +0 -0
  497. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/dataframe/fingerprint_proximity.py +0 -0
  498. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/dataframe/projection_2d.py +0 -0
  499. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/dataframe/proximity.py +0 -0
  500. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/dataframe/storage/aggregation.py +0 -0
  501. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/dataframe/storage/feature_resolution.py +0 -0
  502. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/dataframe/storage/feature_spider.py +0 -0
  503. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/dataframe/storage/residuals_calculator.py +0 -0
  504. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/dataframe/storage/row_tagger.py +0 -0
  505. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/dataframe/storage/target_gradients.py +0 -0
  506. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/graph/__init__.py +0 -0
  507. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/graph/heavy/Readme.md +0 -0
  508. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/graph/light/Readme.md +0 -0
  509. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/graph/light/__init__.py +0 -0
  510. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/graph/light/proximity_graph.py +0 -0
  511. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/models/cleanlab_model.py +0 -0
  512. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/models/noise_model.py +0 -0
  513. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/spark/Readme.md +0 -0
  514. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/sql/Readme.md +0 -0
  515. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/sql/__init__.py +0 -0
  516. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/sql/column_stats.py +0 -0
  517. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/sql/correlations.py +0 -0
  518. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/sql/descriptive_stats.py +0 -0
  519. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/sql/outliers.py +0 -0
  520. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/sql/sample_rows.py +0 -0
  521. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/algorithms/sql/value_counts.py +0 -0
  522. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/api/__init__.py +0 -0
  523. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/api/compound.py +0 -0
  524. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/api/data_source.py +0 -0
  525. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/api/df_store.py +0 -0
  526. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/api/feature_set.py +0 -0
  527. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/api/graph_store.py +0 -0
  528. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/api/meta.py +0 -0
  529. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/api/meta_model.py +0 -0
  530. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/api/monitor.py +0 -0
  531. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/api/parameter_store.py +0 -0
  532. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/api/pipeline.py +0 -0
  533. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/cached/__init__.py +0 -0
  534. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/cached/cached_data_source.py +0 -0
  535. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/cached/cached_endpoint.py +0 -0
  536. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/cached/cached_feature_set.py +0 -0
  537. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/cached/cached_meta.py +0 -0
  538. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/cached/cached_pipeline.py +0 -0
  539. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/__init__.py +0 -0
  540. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/artifacts/__init__.py +0 -0
  541. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/artifacts/artifact.py +0 -0
  542. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/artifacts/cached_artifact_mixin.py +0 -0
  543. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/artifacts/data_capture_core.py +0 -0
  544. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/artifacts/data_source_abstract.py +0 -0
  545. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/artifacts/data_source_factory.py +0 -0
  546. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/artifacts/df_store_core.py +0 -0
  547. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/artifacts/feature_set_core.py +0 -0
  548. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/artifacts/model_core.py +0 -0
  549. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/artifacts/monitor_core.py +0 -0
  550. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/artifacts/parameter_store_core.py +0 -0
  551. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/cloud_platform/aws/README.md +0 -0
  552. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/cloud_platform/aws/aws_account_clamp.py +0 -0
  553. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/cloud_platform/aws/aws_graph_store.py +0 -0
  554. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/cloud_platform/aws/aws_secrets_manager.py +0 -0
  555. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/cloud_platform/aws/aws_session.py +0 -0
  556. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/cloud_platform/aws/cache_dataframe.py +0 -0
  557. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/cloud_platform/azure/README.md +0 -0
  558. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/cloud_platform/cloud_meta.py +0 -0
  559. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/cloud_platform/gcp/README.md +0 -0
  560. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/pipelines/pipeline_executor.py +0 -0
  561. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/Readme.md +0 -0
  562. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/__init__.py +0 -0
  563. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_loaders/__init__.py +0 -0
  564. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_loaders/heavy/__init__.py +0 -0
  565. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_loaders/heavy/s3_heavy_to_data_source.py +0 -0
  566. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_loaders/light/__init__.py +0 -0
  567. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_loaders/light/csv_to_data_source.py +0 -0
  568. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_loaders/light/json_to_data_source.py +0 -0
  569. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_loaders/light/s3_to_data_source_light.py +0 -0
  570. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_to_data/__init__.py +0 -0
  571. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_to_data/heavy/__init__.py +0 -0
  572. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_to_data/heavy/emr/Readme.md +0 -0
  573. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_to_data/heavy/glue/Readme.md +0 -0
  574. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_to_data/light/__init__.py +0 -0
  575. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_to_data/light/clean_data.py +0 -0
  576. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_to_data/light/data_to_data_light.py +0 -0
  577. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_to_features/__init__.py +0 -0
  578. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_to_features/heavy/__init__.py +0 -0
  579. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_to_features/heavy/chunk/__init__.py +0 -0
  580. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_to_features/heavy/chunk/data_to_features_chunk.py +0 -0
  581. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_to_features/heavy/emr/Readme.md +0 -0
  582. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_to_features/heavy/glue/Readme.md +0 -0
  583. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_to_features/heavy/storage/data_to_features_heavy_old.py +0 -0
  584. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_to_features/light/__init__.py +0 -0
  585. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_to_features/light/data_to_features_light.py +0 -0
  586. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/data_to_features/light/molecular_descriptors.py +0 -0
  587. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/features_to_features/__init__.py +0 -0
  588. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/features_to_features/heavy/emr/Readme.md +0 -0
  589. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/features_to_features/heavy/glue/Readme.md +0 -0
  590. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/features_to_model/__init__.py +0 -0
  591. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/features_to_model/features_to_model.py +0 -0
  592. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/model_to_endpoint/__init__.py +0 -0
  593. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/pandas_transforms/__init__.py +0 -0
  594. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/pandas_transforms/data_to_pandas.py +0 -0
  595. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/pandas_transforms/features_to_pandas.py +0 -0
  596. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/pandas_transforms/pandas_to_data.py +0 -0
  597. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/pandas_transforms/pandas_to_features.py +0 -0
  598. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/pandas_transforms/pandas_to_features_chunked.py +0 -0
  599. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/transforms/transform.py +0 -0
  600. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/views/__init__.py +0 -0
  601. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/views/column_subset_view.py +0 -0
  602. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/views/computation_view.py +0 -0
  603. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/views/create_view.py +0 -0
  604. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/views/display_view.py +0 -0
  605. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/views/inference_view.py +0 -0
  606. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/views/pandas_to_view.py +0 -0
  607. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/views/storage/mdq_view.py +0 -0
  608. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/views/training_view.py +0 -0
  609. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/views/view.py +0 -0
  610. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/core/views/view_utils.py +0 -0
  611. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_script_utils/pytorch_utils.py +0 -0
  612. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/chemprop/requirements.txt +0 -0
  613. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/chem_info/Readme.md +0 -0
  614. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/chem_info/fingerprints.py +0 -0
  615. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/chem_info/mol_descriptors.py +0 -0
  616. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/chem_info/mol_standardize.py +0 -0
  617. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/chem_info/molecular_descriptors.py +0 -0
  618. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/chem_info/morgan_fingerprints.py +0 -0
  619. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/chem_info/requirements.txt +0 -0
  620. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/network_security/Readme.md +0 -0
  621. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/proximity/Readme.md +0 -0
  622. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/proximity/feature_space_proximity.py +0 -0
  623. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/proximity/feature_space_proximity.template +0 -0
  624. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/proximity/requirements.txt +0 -0
  625. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/uq_models/Readme.md +0 -0
  626. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/uq_models/bayesian_ridge.template +0 -0
  627. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/uq_models/ensemble_xgb.template +0 -0
  628. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/uq_models/feature_space_proximity.py +0 -0
  629. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/uq_models/gaussian_process.template +0 -0
  630. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/uq_models/ngboost.template +0 -0
  631. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_models/uq_models/requirements.txt +0 -0
  632. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_script_example/custom_model_script.py +0 -0
  633. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/custom_script_example/requirements.txt +0 -0
  634. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/ensemble_xgb/ensemble_xgb.template +0 -0
  635. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/ensemble_xgb/requirements.txt +0 -0
  636. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/meta_model/generated_model_script.py +0 -0
  637. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/meta_model/meta_model.template +0 -0
  638. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/pytorch_model/pytorch_utils.py +0 -0
  639. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/pytorch_model/requirements.txt +0 -0
  640. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/scikit_learn/generated_model_script.py +0 -0
  641. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/scikit_learn/requirements.txt +0 -0
  642. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/scikit_learn/scikit_learn.template +0 -0
  643. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/script_generation.py +0 -0
  644. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/uq_models/generated_model_script.py +0 -0
  645. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/model_scripts/xgb_model/requirements.txt +0 -0
  646. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/repl/__init__.py +0 -0
  647. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/repl/workbench_shell.py +0 -0
  648. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/resources/open_source_api.key +0 -0
  649. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/resources/signature_verify_pub.pem +0 -0
  650. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/scripts/check_double_bond_stereo.py +0 -0
  651. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/scripts/endpoint_test.py +0 -0
  652. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/scripts/glue_launcher.py +0 -0
  653. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/scripts/lambda_test.py +0 -0
  654. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/scripts/meta_model_sim.py +0 -0
  655. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/scripts/monitor_cloud_watch.py +0 -0
  656. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/scripts/redis_expire.py +0 -0
  657. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/scripts/redis_report.py +0 -0
  658. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/scripts/show_config.py +0 -0
  659. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/scripts/training_test.py +0 -0
  660. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/themes/dark/base_css.url +0 -0
  661. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/themes/dark/plotly.json +0 -0
  662. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/themes/light/base_css.url +0 -0
  663. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/themes/light/branding.json +0 -0
  664. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/themes/light/plotly.json +0 -0
  665. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/themes/midnight_blue/base_css.url +0 -0
  666. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/themes/midnight_blue/branding.json +0 -0
  667. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/themes/midnight_blue/plotly.json +0 -0
  668. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/__init__.py +0 -0
  669. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/ai_compound_generator.py +0 -0
  670. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/ai_summary.py +0 -0
  671. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/ai_synth.py +0 -0
  672. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/athena_utils.py +0 -0
  673. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/aws_utils.py +0 -0
  674. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/bulk_utils.py +0 -0
  675. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/cache.py +0 -0
  676. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/chem_utils/__init__.py +0 -0
  677. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/chem_utils/fingerprints.py +0 -0
  678. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/chem_utils/misc.py +0 -0
  679. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/chem_utils/mol_descriptors.py +0 -0
  680. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/chem_utils/mol_standardize.py +0 -0
  681. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/chem_utils/mol_tagging.py +0 -0
  682. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/chem_utils/projections.py +0 -0
  683. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/chem_utils/salts.py +0 -0
  684. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/chem_utils/sdf.py +0 -0
  685. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/chem_utils/toxicity.py +0 -0
  686. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/chem_utils/vis.py +0 -0
  687. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/chemprop_utils.py +0 -0
  688. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/clientside_callbacks.py +0 -0
  689. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/cloudwatch_handler.py +0 -0
  690. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/cloudwatch_utils.py +0 -0
  691. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/color_utils.py +0 -0
  692. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/config_manager.py +0 -0
  693. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/dashboard_metrics.py +0 -0
  694. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/datetime_utils.py +0 -0
  695. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/deprecated_utils.py +0 -0
  696. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/df_to_endpoint.py +0 -0
  697. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/ecs_info.py +0 -0
  698. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/endpoint_metrics.py +0 -0
  699. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/endpoint_utils.py +0 -0
  700. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/extract_model_artifact.py +0 -0
  701. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/glue_utils.py +0 -0
  702. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/graph_utils.py +0 -0
  703. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/ipython_utils.py +0 -0
  704. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/json_utils.py +0 -0
  705. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/lambda_utils.py +0 -0
  706. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/license_manager.py +0 -0
  707. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/log_utils.py +0 -0
  708. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/markdown_utils.py +0 -0
  709. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/meta_model_simulator.py +0 -0
  710. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/metrics_utils.py +0 -0
  711. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/monitor_utils.py +0 -0
  712. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/pandas_utils.py +0 -0
  713. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/performance_utils.py +0 -0
  714. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/pipeline_utils.py +0 -0
  715. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/plot_utils.py +0 -0
  716. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/plugin_manager.py +0 -0
  717. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/prox_utils.py +0 -0
  718. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/pytorch_utils.py +0 -0
  719. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/redis_cache.py +0 -0
  720. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/repl_utils.py +0 -0
  721. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/s3_utils.py +0 -0
  722. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/shap_utils.py +0 -0
  723. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/shapley_values.py +0 -0
  724. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/symbols.py +0 -0
  725. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/test_data_generator.py +0 -0
  726. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/trace_calls.py +0 -0
  727. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/type_abbrev.py +0 -0
  728. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/workbench_cache.py +0 -0
  729. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/workbench_event_bridge.py +0 -0
  730. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/workbench_logging.py +0 -0
  731. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/workbench_sqs.py +0 -0
  732. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/xgboost_local_crossfold.py +0 -0
  733. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/utils/xgboost_model_utils.py +0 -0
  734. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/correlation_matrix.py +0 -0
  735. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/data_details_markdown.py +0 -0
  736. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/endpoint_metric_plots.py +0 -0
  737. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/experiments/dashboard_metric_plots.py +0 -0
  738. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/experiments/outlier_plot.py +0 -0
  739. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/plugin_unit_test.py +0 -0
  740. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/plugins/dashboard_status.py +0 -0
  741. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/plugins/data_details.py +0 -0
  742. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/plugins/endpoint_details.py +0 -0
  743. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/plugins/generated_compounds.py +0 -0
  744. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/plugins/graph_plot.py +0 -0
  745. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/plugins/license_details.py +0 -0
  746. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/plugins/molecule_panel.py +0 -0
  747. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/plugins/molecule_viewer.py +0 -0
  748. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/plugins/pipeline_details.py +0 -0
  749. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/plugins/proximity_mini_graph.py +0 -0
  750. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/regression_plot.py +0 -0
  751. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/components/violin_plots.py +0 -0
  752. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/page_views/data_sources_page_view.py +0 -0
  753. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/page_views/endpoints_page_view.py +0 -0
  754. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/page_views/feature_sets_page_view.py +0 -0
  755. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/page_views/main_page.py +0 -0
  756. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/page_views/models_page_view.py +0 -0
  757. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/page_views/page_view.py +0 -0
  758. {workbench-0.8.233 → workbench-0.8.238}/src/workbench/web_interface/page_views/pipelines_page_view.py +0 -0
  759. {workbench-0.8.233 → workbench-0.8.238}/src/workbench.egg-info/dependency_links.txt +0 -0
  760. {workbench-0.8.233 → workbench-0.8.238}/src/workbench.egg-info/top_level.txt +0 -0
  761. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/create_aqsol_artifacts.py +0 -0
  762. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/create_aqsol_artifacts_all.py +0 -0
  763. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/create_aqsol_rt_artifacts.py +0 -0
  764. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/create_basic_test_artifacts.py +0 -0
  765. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/create_copy_artifacts.py +0 -0
  766. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/create_empty_model_group.py +0 -0
  767. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/create_endpoints_for_timing.py +0 -0
  768. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/create_graph_artifacts.py +0 -0
  769. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/create_knn_artifacts.py +0 -0
  770. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/create_meta_endpoints.py +0 -0
  771. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/create_pipeline_model.py +0 -0
  772. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/create_proximity_models.py +0 -0
  773. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/create_quant_regression_artifacts.py +0 -0
  774. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/create_realtime_endpoint.py +0 -0
  775. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/create_training_adjusted_artifacts.py +0 -0
  776. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/create_wine_artifacts.py +0 -0
  777. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/delete_stress_test_artifacts.py +0 -0
  778. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/delete_test_artifacts.py +0 -0
  779. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/hyper_testing.py +0 -0
  780. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/regression_ensemble.py +0 -0
  781. {workbench-0.8.233 → workbench-0.8.238}/test_artifacts/stress_test_aws.py +0 -0
  782. {workbench-0.8.233 → workbench-0.8.238}/tests/README.md +0 -0
  783. {workbench-0.8.233 → workbench-0.8.238}/tests/artifacts/data_source_tests.py +0 -0
  784. {workbench-0.8.233 → workbench-0.8.238}/tests/artifacts/endpoint_tests.py +0 -0
  785. {workbench-0.8.233 → workbench-0.8.238}/tests/artifacts/featureset_ingest_boundaries.py +0 -0
  786. {workbench-0.8.233 → workbench-0.8.238}/tests/artifacts/featureset_tests.py +0 -0
  787. {workbench-0.8.233 → workbench-0.8.238}/tests/artifacts/graph_tests.py +0 -0
  788. {workbench-0.8.233 → workbench-0.8.238}/tests/artifacts/model_metrics_tests.py +0 -0
  789. {workbench-0.8.233 → workbench-0.8.238}/tests/artifacts/model_tests.py +0 -0
  790. {workbench-0.8.233 → workbench-0.8.238}/tests/aws_account/aws_account_clamp_tests.py +0 -0
  791. {workbench-0.8.233 → workbench-0.8.238}/tests/cached/cached_artifact_tests.py +0 -0
  792. {workbench-0.8.233 → workbench-0.8.238}/tests/chem_info/test_tautomerization.py +0 -0
  793. {workbench-0.8.233 → workbench-0.8.238}/tests/corner_cases/end_to_end.py +0 -0
  794. {workbench-0.8.233 → workbench-0.8.238}/tests/df_store/df_store_tests.py +0 -0
  795. {workbench-0.8.233 → workbench-0.8.238}/tests/lambda/decompress_layers.py +0 -0
  796. {workbench-0.8.233 → workbench-0.8.238}/tests/pandas_tests/test_drift.py +0 -0
  797. {workbench-0.8.233 → workbench-0.8.238}/tests/parameter_store/param_store_tests.py +0 -0
  798. {workbench-0.8.233 → workbench-0.8.238}/tests/plugin_tests/crashing_plugin.py +0 -0
  799. {workbench-0.8.233 → workbench-0.8.238}/tests/pytorch/pytorch_hello.py +0 -0
  800. {workbench-0.8.233 → workbench-0.8.238}/tests/requirements-dev.txt +0 -0
  801. {workbench-0.8.233 → workbench-0.8.238}/tests/specific/capital_tests.py +0 -0
  802. {workbench-0.8.233 → workbench-0.8.238}/tests/specific/column_changes.py +0 -0
  803. {workbench-0.8.233 → workbench-0.8.238}/tests/specific/config_manager.py +0 -0
  804. {workbench-0.8.233 → workbench-0.8.238}/tests/specific/deletion_tests.py +0 -0
  805. {workbench-0.8.233 → workbench-0.8.238}/tests/specific/shap_tests.py +0 -0
  806. {workbench-0.8.233 → workbench-0.8.238}/tests/transforms/data_to_data_tests.py +0 -0
  807. {workbench-0.8.233 → workbench-0.8.238}/tests/transforms/data_to_features_tests.py +0 -0
  808. {workbench-0.8.233 → workbench-0.8.238}/tests/transforms/features_to_model_tests.py +0 -0
  809. {workbench-0.8.233 → workbench-0.8.238}/tests/transforms/model_to_endpoint_tests.py +0 -0
  810. {workbench-0.8.233 → workbench-0.8.238}/tests/transforms/pandas_to_data_tests.py +0 -0
  811. {workbench-0.8.233 → workbench-0.8.238}/tests/transforms/pandas_to_features_test.py +0 -0
  812. {workbench-0.8.233 → workbench-0.8.238}/tests/views/view_tests.py +0 -0
  813. {workbench-0.8.233 → workbench-0.8.238}/tests/views/view_tests_complex.py +0 -0
  814. {workbench-0.8.233 → workbench-0.8.238}/tests/web_components/confusion_matrix_test.py +0 -0
  815. {workbench-0.8.233 → workbench-0.8.238}/tests/web_components/correlation_matrix_test.py +0 -0
  816. {workbench-0.8.233 → workbench-0.8.238}/tests/web_components/graph_plot_test.py +0 -0
  817. {workbench-0.8.233 → workbench-0.8.238}/tests/web_components/plugin_interface_test.py +0 -0
  818. {workbench-0.8.233 → workbench-0.8.238}/tests/web_components/scatter_plot_test.py +0 -0
  819. {workbench-0.8.233 → workbench-0.8.238}/ui_testing/assets/custom.css +0 -0
  820. {workbench-0.8.233 → workbench-0.8.238}/ui_testing/table_comparison.py +0 -0
  821. {workbench-0.8.233 → workbench-0.8.238}/ui_testing/theme_switching.py +0 -0
  822. {workbench-0.8.233 → workbench-0.8.238}/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.233
3
+ Version: 0.8.238
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
@@ -40,7 +40,7 @@ Requires-Dist: boto3>=1.31.76
40
40
  Requires-Dist: botocore>=1.31.76
41
41
  Requires-Dist: redis>=5.0.1
42
42
  Requires-Dist: numpy>=1.26.4
43
- Requires-Dist: pandas>=2.2.1
43
+ Requires-Dist: pandas<3.0,>=2.2.1
44
44
  Requires-Dist: awswrangler>=3.4.0
45
45
  Requires-Dist: sagemaker<3.0,>=2.143
46
46
  Requires-Dist: cryptography>=44.0.2
@@ -1,5 +1,5 @@
1
1
  # Define workbench version once at the top
2
- ARG WORKBENCH_VERSION=0.8.232
2
+ ARG WORKBENCH_VERSION=0.8.237
3
3
 
4
4
  # Stage 1: Extract dependencies from workbench[ui]
5
5
  FROM python:3.12.5-bookworm AS deps-extractor
@@ -33,6 +33,7 @@ app = Dash(
33
33
  title=app_title,
34
34
  use_pages=True,
35
35
  external_stylesheets=css_files,
36
+ assets_folder="assets",
36
37
  )
37
38
 
38
39
  # Register the CSS route in the ThemeManager
@@ -90,6 +91,8 @@ app.layout = html.Div(
90
91
  # URL for subpage navigation (jumping to feature_sets, models, etc.)
91
92
  dcc.Location(id="url", refresh="callback-nav"),
92
93
  dcc.Store(id=plugin_info_id, data={}),
94
+ # Theme store for dynamic theme switching (plugins can use this as Input to re-render figures)
95
+ dcc.Store(id="workbench-theme-store", data=tm.current_theme()),
93
96
  # Settings menu in top-right corner
94
97
  html.Div(
95
98
  settings_menu.create_component(settings_menu_id),
@@ -100,10 +103,10 @@ app.layout = html.Div(
100
103
  **{"data-bs-theme": tm.data_bs_theme()},
101
104
  )
102
105
 
103
- # Clientside callback for theme switching (stores in localStorage, sets cookie, reloads page)
106
+ # Clientside callback for theme switching (stores in localStorage, sets cookie, triggers checkmark update)
104
107
  app.clientside_callback(
105
- settings_menu.get_clientside_callback_code(settings_menu_id),
106
- Output(f"{settings_menu_id}-dummy", "data"),
108
+ settings_menu.get_clientside_callback_code(),
109
+ Output(f"{settings_menu_id}-init", "data"),
107
110
  Input({"type": f"{settings_menu_id}-theme-item", "theme": ALL}, "n_clicks"),
108
111
  State({"type": f"{settings_menu_id}-theme-item", "theme": ALL}, "id"),
109
112
  )
@@ -116,6 +119,13 @@ app.clientside_callback(
116
119
  State({"type": f"{settings_menu_id}-checkmark", "theme": ALL}, "id"),
117
120
  )
118
121
 
122
+ # Clientside callback to update the workbench-theme-store (plugins listen to this for figure re-renders)
123
+ app.clientside_callback(
124
+ "function(theme) { return theme; }",
125
+ Output("workbench-theme-store", "data"),
126
+ Input(f"{settings_menu_id}-init", "data"),
127
+ )
128
+
119
129
  # Spin up the Plugin Manager
120
130
  pm = PluginManager()
121
131
 
@@ -14,6 +14,9 @@ from workbench.cached.cached_endpoint import CachedEndpoint
14
14
  # Get the Workbench logger
15
15
  log = logging.getLogger("workbench")
16
16
 
17
+ # Theme store ID (defined in app.py)
18
+ THEME_STORE_ID = "workbench-theme-store"
19
+
17
20
 
18
21
  def on_page_load():
19
22
  @callback(
@@ -119,3 +122,23 @@ def setup_plugin_callbacks(plugins):
119
122
 
120
123
  # Return all the updated properties
121
124
  return all_props
125
+
126
+
127
+ def setup_theme_callback(plugins):
128
+ """Set up a callback to update all plugins when the theme changes.
129
+
130
+ Args:
131
+ plugins: List of all plugin instances on this page.
132
+ """
133
+
134
+ @callback(
135
+ [Output(cid, prop, allow_duplicate=True) for p in plugins for cid, prop in p.properties],
136
+ Input(THEME_STORE_ID, "data"),
137
+ prevent_initial_call=True,
138
+ )
139
+ def on_theme_change(theme):
140
+ """Update all plugins when the theme changes."""
141
+ all_props = []
142
+ for plugin in plugins:
143
+ all_props.extend(plugin.set_theme(theme))
144
+ return all_props
@@ -69,3 +69,4 @@ callbacks.update_endpoint_metrics(endpoints_view)
69
69
  # For all the plugins we have we'll call their update_properties method
70
70
  if plugins:
71
71
  callbacks.setup_plugin_callbacks(plugins)
72
+ callbacks.setup_theme_callback(plugins)
@@ -0,0 +1,137 @@
1
+ """Callbacks for the Model Subpage Web User Interface"""
2
+
3
+ import logging
4
+ from dash import callback, Input, Output, State
5
+ from dash.exceptions import PreventUpdate
6
+ from urllib.parse import urlparse, parse_qs
7
+
8
+ # Workbench Imports
9
+ from workbench.web_interface.page_views.models_page_view import ModelsPageView
10
+ from workbench.web_interface.components.plugins.ag_table import AGTable
11
+ from workbench.cached.cached_model import CachedModel
12
+
13
+ # Get the Workbench logger
14
+ log = logging.getLogger("workbench")
15
+
16
+ # Theme store ID (defined in app.py)
17
+ THEME_STORE_ID = "workbench-theme-store"
18
+
19
+
20
+ def on_page_load():
21
+ @callback(
22
+ Output("models_table", "selectedRows"),
23
+ Output("models_page_loaded", "data"),
24
+ Input("url", "href"),
25
+ Input("models_table", "rowData"),
26
+ State("models_page_loaded", "data"),
27
+ prevent_initial_call=True,
28
+ )
29
+ def _on_page_load(href, row_data, page_already_loaded):
30
+ if page_already_loaded:
31
+ raise PreventUpdate
32
+
33
+ if not href or not row_data:
34
+ raise PreventUpdate
35
+
36
+ parsed = urlparse(href)
37
+ if parsed.path != "/models":
38
+ raise PreventUpdate
39
+
40
+ selected_name = parse_qs(parsed.query).get("name", [None])[0]
41
+ if not selected_name:
42
+ return [row_data[0]], True
43
+
44
+ for row in row_data:
45
+ if row.get("name") == selected_name:
46
+ return [row], True
47
+
48
+ raise PreventUpdate
49
+
50
+
51
+ def model_table_refresh(page_view: ModelsPageView, table: AGTable):
52
+ @callback(
53
+ [Output(component_id, prop) for component_id, prop in table.properties],
54
+ Input("models_refresh", "n_intervals"),
55
+ )
56
+ def _model_table_refresh(_n):
57
+ """Return the table data for the Models Table"""
58
+ page_view.refresh()
59
+ models = page_view.models()
60
+ models["name"] = models["Model Group"]
61
+ models["id"] = range(len(models))
62
+ return table.update_properties(models)
63
+
64
+
65
+ def setup_plugin_callbacks(plugins, model_details_plugin):
66
+ """Set up callbacks for all plugins.
67
+
68
+ Args:
69
+ plugins: List of all plugins (model_details, shap_plot, model_plot)
70
+ model_details_plugin: The model_details plugin (handles the inference dropdown)
71
+ """
72
+
73
+ # Register internal callbacks for all plugins
74
+ for plugin in plugins:
75
+ plugin.register_internal_callbacks()
76
+
77
+ # Separate model_details from other plugins - it sets the dropdown that others depend on
78
+ other_plugins = [p for p in plugins if p is not model_details_plugin]
79
+
80
+ # Callback to update model_details when a model is selected (this sets the dropdown)
81
+ @callback(
82
+ [Output(cid, prop) for cid, prop in model_details_plugin.properties],
83
+ Input("models_table", "selectedRows"),
84
+ State("model_details-dropdown", "value"),
85
+ State("model_details-header", "children"),
86
+ )
87
+ def update_model_details(selected_rows, inference_run, previous_model_name):
88
+ """Update model_details when a model is selected."""
89
+ if not selected_rows or selected_rows[0] is None:
90
+ raise PreventUpdate
91
+
92
+ model_name = selected_rows[0]["name"]
93
+ model = CachedModel(model_name)
94
+
95
+ return model_details_plugin.update_properties(
96
+ model, inference_run=inference_run, previous_model_name=previous_model_name
97
+ )
98
+
99
+ # Callback to update other plugins when the dropdown changes (triggered by model_details)
100
+ @callback(
101
+ [Output(cid, prop) for p in other_plugins for cid, prop in p.properties],
102
+ Input("model_details-dropdown", "value"),
103
+ State("models_table", "selectedRows"),
104
+ )
105
+ def update_other_plugins(inference_run, selected_rows):
106
+ """Update other plugins when inference run changes."""
107
+ if not selected_rows or selected_rows[0] is None or inference_run is None:
108
+ raise PreventUpdate
109
+
110
+ model_name = selected_rows[0]["name"]
111
+ model = CachedModel(model_name)
112
+
113
+ all_props = []
114
+ for plugin in other_plugins:
115
+ all_props.extend(plugin.update_properties(model, inference_run=inference_run))
116
+
117
+ return all_props
118
+
119
+
120
+ def setup_theme_callback(plugins):
121
+ """Set up a callback to update all plugins when the theme changes.
122
+
123
+ Args:
124
+ plugins: List of all plugin instances on this page.
125
+ """
126
+
127
+ @callback(
128
+ [Output(cid, prop, allow_duplicate=True) for p in plugins for cid, prop in p.properties],
129
+ Input(THEME_STORE_ID, "data"),
130
+ prevent_initial_call=True,
131
+ )
132
+ def on_theme_change(theme):
133
+ """Update all plugins when the theme changes."""
134
+ all_props = []
135
+ for plugin in plugins:
136
+ all_props.extend(plugin.set_theme(theme))
137
+ return all_props
@@ -1,19 +1,13 @@
1
1
  """Models: A Workbench Web Interface to view, and interact with Models"""
2
2
 
3
- from dash import register_page, html
3
+ from dash import register_page
4
4
 
5
5
  # Local Imports
6
6
  from .layout import models_layout
7
7
  from . import callbacks
8
8
 
9
9
  # Workbench Imports
10
- from workbench.web_interface.components.plugins import (
11
- model_details,
12
- ag_table,
13
- shap_summary_plot,
14
- scatter_plot,
15
- confusion_matrix,
16
- )
10
+ from workbench.web_interface.components.plugins import model_details, ag_table, shap_summary_plot, model_plot
17
11
  from workbench.web_interface.page_views.models_page_view import ModelsPageView
18
12
 
19
13
  # Register this page with Dash
@@ -31,35 +25,19 @@ models_table_component = models_table.create_component("models_table", max_heigh
31
25
  my_model_details = model_details.ModelDetails()
32
26
  model_details_component = my_model_details.create_component("model_details")
33
27
 
34
- # Create ScatterPlot plugin for regression models
35
- my_scatter_plot = scatter_plot.ScatterPlot()
36
- scatter_plot_component = my_scatter_plot.create_component("model_scatter_plot")
37
-
38
- # Create ConfusionMatrix plugin for classification models
39
- my_confusion_matrix = confusion_matrix.ConfusionMatrix()
40
- confusion_matrix_component = my_confusion_matrix.create_component("model_confusion_matrix")
41
-
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
45
- model_plot_container = html.Div(
46
- [
47
- html.Div(scatter_plot_component, id="scatter-plot-container", style={"display": "block"}),
48
- html.Div(confusion_matrix_component, id="confusion-matrix-container", style={"display": "none"}),
49
- ],
50
- id="model-plot-container",
51
- )
28
+ # Create ModelPlot plugin (handles both regression scatter plot and classification confusion matrix)
29
+ my_model_plot = model_plot.ModelPlot()
30
+ model_plot_component = my_model_plot.create_component("model_plot")
52
31
 
53
32
  # Shap summary plot component
54
33
  my_shap_plot = shap_summary_plot.ShapSummaryPlot()
55
34
  shap_plot_component = my_shap_plot.create_component("shap_plot")
56
35
 
57
-
58
36
  # Capture our components in a dictionary to send off to the layout
59
37
  components = {
60
38
  "models_table": models_table_component,
61
39
  "model_details": model_details_component,
62
- "model_plot": model_plot_container,
40
+ "model_plot": model_plot_component,
63
41
  "shap_plot": shap_plot_component,
64
42
  }
65
43
 
@@ -76,7 +54,10 @@ callbacks.on_page_load()
76
54
  callbacks.model_table_refresh(model_view, models_table)
77
55
 
78
56
  # All model visualization plugins
79
- plugins = [my_model_details, my_shap_plot, my_scatter_plot, my_confusion_matrix]
57
+ plugins = [my_model_details, my_shap_plot, my_model_plot]
58
+
59
+ # Set up callbacks for all the plugins
60
+ callbacks.setup_plugin_callbacks(plugins, my_model_details)
80
61
 
81
- # Set up callbacks for all the plugins (includes scatter plot and confusion matrix)
82
- callbacks.setup_plugin_callbacks(plugins, my_scatter_plot, my_confusion_matrix)
62
+ # Set up theme change callback for all plugins
63
+ callbacks.setup_theme_callback(plugins)
@@ -42,7 +42,7 @@ def get_log_events(log_stream_name: str, limit: int = 50) -> list[str]:
42
42
  return [f"(Error fetching logs: {e})"]
43
43
 
44
44
 
45
- def format_log_messages(messages: list[str], max_chars: int = 3000) -> str:
45
+ def format_log_messages(messages: list[str], max_chars: int = 10000) -> str:
46
46
  """
47
47
  Format log messages for SNS, truncating if necessary.
48
48
 
@@ -13,6 +13,8 @@ from aws_cdk import (
13
13
  aws_events as events,
14
14
  aws_events_targets as targets,
15
15
  aws_logs as logs,
16
+ aws_cloudwatch as cloudwatch,
17
+ aws_cloudwatch_actions as cw_actions,
16
18
  Duration,
17
19
  Size,
18
20
  )
@@ -67,7 +69,7 @@ class WorkbenchComputeStack(Stack):
67
69
  self.batch_job_definitions = self.create_batch_job_definitions()
68
70
 
69
71
  # Create ML Pipeline SQS Queue and Lambda (after Batch resources)
70
- self.ml_pipeline_queue = self.create_ml_pipeline_queue()
72
+ self.ml_pipeline_dlq, self.ml_pipeline_queue = self.create_ml_pipeline_queue()
71
73
  self.batch_trigger_lambda = self.create_batch_trigger_lambda()
72
74
 
73
75
  # Create Batch failure notification resources
@@ -75,6 +77,9 @@ class WorkbenchComputeStack(Stack):
75
77
  self.batch_failure_lambda = self.create_batch_failure_lambda()
76
78
  self.create_batch_failure_rule()
77
79
 
80
+ # Create DLQ alarm (uses the batch failure topic for notifications)
81
+ self.create_dlq_alarm()
82
+
78
83
  #####################
79
84
  # Batch Compute #
80
85
  #####################
@@ -166,8 +171,12 @@ class WorkbenchComputeStack(Stack):
166
171
  ###########################
167
172
  # ML Pipeline SQS Queue #
168
173
  ###########################
169
- def create_ml_pipeline_queue(self) -> sqs.Queue:
170
- """Create SQS FIFO queue for ML pipeline orchestration with deduplication."""
174
+ def create_ml_pipeline_queue(self) -> tuple[sqs.Queue, sqs.Queue]:
175
+ """Create SQS FIFO queue for ML pipeline orchestration with deduplication.
176
+
177
+ Returns:
178
+ Tuple of (dlq, main_queue)
179
+ """
171
180
 
172
181
  # Dead letter queue for failed messages (also FIFO)
173
182
  dlq = sqs.Queue(
@@ -179,7 +188,7 @@ class WorkbenchComputeStack(Stack):
179
188
  )
180
189
 
181
190
  # Main FIFO queue with deduplication
182
- return sqs.Queue(
191
+ main_queue = sqs.Queue(
183
192
  self,
184
193
  "MLPipelineQueue",
185
194
  queue_name="workbench-ml-pipeline-queue.fifo", # Must end with .fifo
@@ -190,6 +199,8 @@ class WorkbenchComputeStack(Stack):
190
199
  dead_letter_queue=sqs.DeadLetterQueue(max_receive_count=1, queue=dlq),
191
200
  )
192
201
 
202
+ return dlq, main_queue
203
+
193
204
  def create_batch_trigger_lambda(self) -> lambda_.Function:
194
205
  """Create Lambda function to process SQS messages and trigger Batch jobs.
195
206
 
@@ -237,13 +248,27 @@ class WorkbenchComputeStack(Stack):
237
248
  ################################
238
249
  def create_batch_failure_topic(self) -> sns.Topic:
239
250
  """Create SNS topic for batch job failure notifications."""
240
- return sns.Topic(
251
+ topic = sns.Topic(
241
252
  self,
242
253
  "BatchJobFailureTopic",
243
254
  topic_name="workbench-batch-job-failure",
244
255
  display_name="Workbench Batch Job Failure",
245
256
  )
246
257
 
258
+ # Allow CloudWatch Alarms to publish to this topic
259
+ topic.add_to_resource_policy(
260
+ iam.PolicyStatement(
261
+ sid="AllowCloudWatchAlarms",
262
+ effect=iam.Effect.ALLOW,
263
+ principals=[iam.ServicePrincipal("cloudwatch.amazonaws.com")],
264
+ actions=["sns:Publish"],
265
+ resources=[topic.topic_arn],
266
+ conditions={"ArnLike": {"aws:SourceArn": f"arn:aws:cloudwatch:{self.region}:{self.account}:alarm:*"}},
267
+ )
268
+ )
269
+
270
+ return topic
271
+
247
272
  def create_batch_failure_lambda(self) -> lambda_.Function:
248
273
  """Create Lambda function to handle batch job failures and send notifications."""
249
274
 
@@ -300,3 +325,26 @@ class WorkbenchComputeStack(Stack):
300
325
  batch_failure_rule.add_target(targets.LambdaFunction(self.batch_failure_lambda))
301
326
 
302
327
  return batch_failure_rule
328
+
329
+ def create_dlq_alarm(self) -> cloudwatch.Alarm:
330
+ """Create CloudWatch alarm for DLQ messages to alert on pipeline failures."""
331
+
332
+ alarm = cloudwatch.Alarm(
333
+ self,
334
+ "MLPipelineDLQAlarm",
335
+ alarm_name="workbench-ml-pipeline-dlq-alarm",
336
+ alarm_description="Alert when messages appear in the ML Pipeline dead letter queue",
337
+ metric=self.ml_pipeline_dlq.metric_approximate_number_of_messages_visible(
338
+ period=Duration.minutes(15),
339
+ statistic="Maximum",
340
+ ),
341
+ threshold=1,
342
+ evaluation_periods=1,
343
+ comparison_operator=cloudwatch.ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD,
344
+ treat_missing_data=cloudwatch.TreatMissingData.NOT_BREACHING,
345
+ )
346
+
347
+ # Send alarm notifications to the batch failure topic
348
+ alarm.add_alarm_action(cw_actions.SnsAction(self.batch_failure_topic))
349
+
350
+ return alarm
@@ -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_232_amd64"
15
+ dashboard_image = "public.ecr.aws/m6i5k1r2/workbench_dashboard:v0_8_237_amd64"
16
16
 
17
17
  # Workbench Configuration
18
18
  try:
@@ -1,5 +1,6 @@
1
1
  from typing import Optional, List
2
2
  from aws_cdk import (
3
+ Duration,
3
4
  Stack,
4
5
  StackProps,
5
6
  aws_ecs as ecs,
@@ -175,3 +176,6 @@ class WorkbenchDashboardStack(Stack):
175
176
 
176
177
  # Add our custom security group
177
178
  fargate_service.load_balancer.add_security_group(lb_security_group)
179
+
180
+ # Enable sticky sessions so users stay on the same container (preserves in-memory state)
181
+ fargate_service.target_group.enable_cookie_stickiness(Duration.hours(1))
@@ -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_232_amd64"
15
+ dashboard_image = "public.ecr.aws/m6i5k1r2/workbench_dashboard:v0_8_237_amd64"
16
16
 
17
17
  # Workbench Configuration
18
18
  try:
@@ -1,5 +1,6 @@
1
1
  from typing import Optional, List
2
2
  from aws_cdk import (
3
+ Duration,
3
4
  Stack,
4
5
  StackProps,
5
6
  aws_ecs as ecs,
@@ -183,3 +184,6 @@ class WorkbenchDashboardStack(Stack):
183
184
 
184
185
  # Add our custom security group
185
186
  fargate_service.load_balancer.add_security_group(lb_security_group)
187
+
188
+ # Enable sticky sessions so users stay on the same container (preserves in-memory state)
189
+ fargate_service.target_group.enable_cookie_stickiness(Duration.hours(1))
@@ -100,15 +100,8 @@ model = feature_set.to_model(
100
100
  )
101
101
  ```
102
102
 
103
- ## Getting Started
104
-
105
- 1. Install Workbench: `pip install workbench`
106
- 2. Connect to AWS®: [Setup Guide](../getting_started/index.md)
107
- 3. Create your model using the examples above
108
- 4. Deploy to an endpoint for inference
109
-
110
103
  !!! note "Examples"
111
- All Workbench examples are in the repository under the `examples/` directory. For full code listings, visit [Workbench Examples](https://github.com/SuperCowPowers/workbench/blob/main/examples).
104
+ All Workbench model examples are in the repository under the `examples/models` directory. For full code listings, visit [Workbench Model Examples](https://github.com/SuperCowPowers/workbench/blob/main/examples/models).
112
105
 
113
106
  ---
114
107
 
@@ -0,0 +1,111 @@
1
+ # Confidence Scores in Workbench
2
+ !!!tip inline end "Need Help?"
3
+ The SuperCowPowers team is happy to give any assistance needed when setting up AWS and Workbench. So please contact us at [workbench@supercowpowers.com](mailto:workbench@supercowpowers.com) or on chat us up on [Discord](https://discord.gg/WHAJuz8sw8)
4
+
5
+ Workbench provides **confidence scores** for model predictions, giving users a measure of how certain the model is about each prediction. Higher confidence indicates the model is more certain, while lower confidence suggests greater uncertainty.
6
+
7
+ ## Overview
8
+
9
+ | **Framework** | **UQ Method** | **Confidence Source** |
10
+ |----------------|----------------------------------------|---------------------------------|
11
+ | XGBoost | MAPIE Conformalized Quantile Regression | 80% prediction interval width |
12
+ | PyTorch | MAPIE Conformalized Quantile Regression | 80% prediction interval width |
13
+ | ChemProp | Ensemble disagreement (5 models) | Ensemble standard deviation |
14
+
15
+ All frameworks use the same confidence formula, but the uncertainty source differs.
16
+
17
+ ## Confidence Formula
18
+
19
+ Confidence is computed using a simple exponential decay function:
20
+
21
+ ```
22
+ confidence = exp(-uncertainty / median_uncertainty)
23
+ ```
24
+
25
+ Where:
26
+
27
+ - **uncertainty**: The model's uncertainty estimate for each prediction
28
+ - **median_uncertainty**: The median uncertainty from the training/validation data
29
+
30
+
31
+ ## XGBoost and PyTorch: MAPIE CQR
32
+
33
+ For XGBoost and PyTorch models, Workbench uses **MAPIE Conformalized Quantile Regression (CQR)** to generate prediction intervals with coverage guarantees.
34
+
35
+ ### How It Works
36
+
37
+ 1. **Train quantile models**: LightGBM models are trained to predict the 10th and 90th percentiles (80% confidence interval)
38
+ 2. **Conformalize**: MAPIE adjusts the intervals using a held-out calibration set to guarantee coverage
39
+ 3. **Compute interval width**: The uncertainty is the width of the 80% prediction interval (q_90 - q_10)
40
+ 4. **Calculate confidence**: Apply the exponential decay formula
41
+
42
+ ### Why 80% Confidence Interval?
43
+
44
+ We use the 80% CI (q_10 to q_90) rather than other intervals because:
45
+
46
+ - **68% CI** is too narrow and sensitive to noise
47
+ - **95% CI** is too wide and less discriminating between samples
48
+ - **80% CI** provides a good balance for ranking prediction reliability
49
+
50
+ ### Coverage Guarantees
51
+
52
+ MAPIE's conformalization ensures that prediction intervals achieve their target coverage. For example, an 80% CI will contain approximately 80% of true values on the calibration set. This is a key advantage over simple quantile regression.
53
+
54
+ ## ChemProp: Ensemble Disagreement
55
+
56
+ For ChemProp models, Workbench trains an **ensemble of 5 models** and uses their disagreement as the uncertainty measure.
57
+
58
+ ### How It Works
59
+
60
+ 1. **Train ensemble**: 5 ChemProp models are trained with different random seeds
61
+ 2. **Predict**: Each model makes a prediction for each sample
62
+ 3. **Compute disagreement**: The standard deviation across the 5 predictions is the uncertainty
63
+ 4. **Calibrate**: The standard deviation is empirically calibrated against actual errors
64
+ 5. **Calculate confidence**: Apply the exponential decay formula using calibrated std
65
+
66
+ ### Ensemble vs MAPIE
67
+
68
+ | Aspect | MAPIE (XGBoost/PyTorch) | Ensemble (ChemProp) |
69
+ |--------|---------------------------|----------------------------|
70
+ | Coverage guarantee | Yes (conformal) | No (empirical) |
71
+ | Computational cost | + 5 MAPIE models | Just the 5 chemprop models |
72
+ | Uncertainty type | Prediction interval width | Model disagreement |
73
+
74
+ Both approaches are valid and widely used in the ML community. MAPIE provides theoretical guarantees, while ensembles capture model uncertainty more directly.
75
+
76
+ ## Interpreting Confidence Scores
77
+
78
+ ### High Confidence (> 0.5)
79
+ - Model is relatively certain about the prediction
80
+ - Prediction interval is narrower than typical
81
+ - Good candidates for prioritization
82
+
83
+ ### Medium Confidence (0.3 - 0.5)
84
+ - Model has typical uncertainty
85
+ - Prediction is likely reasonable but verify important decisions
86
+
87
+ ### Low Confidence (< 0.3)
88
+ - Model is uncertain about the prediction
89
+ - Prediction interval is wider than typical
90
+ - May indicate out-of-distribution samples or difficult predictions
91
+
92
+ ## Metrics for Evaluating Confidence
93
+
94
+ Workbench computes several metrics to evaluate how well confidence correlates with actual prediction quality:
95
+
96
+ ### confidence_to_error_corr
97
+ Spearman correlation between confidence and absolute error. **Should be negative** (high confidence = low error). Target: < -0.5
98
+
99
+ ### interval_to_error_corr
100
+ Spearman correlation between interval width and absolute error. **Should be positive** (wide intervals = high error). Target: > 0.5
101
+
102
+ ### Coverage Metrics
103
+ For each confidence level (50%, 68%, 80%, 90%, 95%), the percentage of true values that fall within the prediction interval. Should match the target coverage.
104
+
105
+ ## Additional Resources
106
+
107
+ <img align="right" src="../images/scp.png" width="180">
108
+
109
+ Need help with confidence scores or uncertainty quantification? Want to develop a customized application tailored to your business needs?
110
+
111
+ - Consulting Available: [SuperCowPowers LLC](https://www.supercowpowers.com)