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