workbench 0.8.485__tar.gz → 0.8.486__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 (1233) hide show
  1. {workbench-0.8.485 → workbench-0.8.486}/PKG-INFO +1 -1
  2. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/Dockerfile +1 -1
  3. {workbench-0.8.485 → workbench-0.8.486}/lambda_layers/build_deploy.sh +1 -1
  4. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/base/inference/Dockerfile +1 -1
  5. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/base/training/Dockerfile +1 -1
  6. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/ml_pipelines/Dockerfile +1 -1
  7. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/pytorch_chem/inference/Dockerfile +1 -1
  8. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/pytorch_chem/training/Dockerfile +1 -1
  9. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/inference_capture_check.py +1 -1
  10. {workbench-0.8.485 → workbench-0.8.486}/scripts/benchmark_fp_proximity.py +1 -1
  11. {workbench-0.8.485 → workbench-0.8.486}/scripts/compare_dataframes.py +1 -1
  12. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/models/multi_task.md +10 -7
  13. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/multi_task.py +23 -11
  14. {workbench-0.8.485 → workbench-0.8.486}/src/workbench.egg-info/PKG-INFO +1 -1
  15. {workbench-0.8.485 → workbench-0.8.486}/src/workbench.egg-info/scm_version.json +2 -2
  16. {workbench-0.8.485 → workbench-0.8.486}/tests/specific/multi_task_tests.py +61 -67
  17. {workbench-0.8.485 → workbench-0.8.486}/.flake8 +0 -0
  18. {workbench-0.8.485 → workbench-0.8.486}/.gitattributes +0 -0
  19. {workbench-0.8.485 → workbench-0.8.486}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  20. {workbench-0.8.485 → workbench-0.8.486}/.github/dependabot.yml +0 -0
  21. {workbench-0.8.485 → workbench-0.8.486}/.github/workflows/aws-tests.yml +0 -0
  22. {workbench-0.8.485 → workbench-0.8.486}/.github/workflows/deploy-docs.yml +0 -0
  23. {workbench-0.8.485 → workbench-0.8.486}/.github/workflows/endpoint-import-smoke.yml +0 -0
  24. {workbench-0.8.485 → workbench-0.8.486}/.github/workflows/gitleaks.yml +0 -0
  25. {workbench-0.8.485 → workbench-0.8.486}/.github/workflows/lockfile-drift.yml +0 -0
  26. {workbench-0.8.485 → workbench-0.8.486}/.github/workflows/publish.yml +0 -0
  27. {workbench-0.8.485 → workbench-0.8.486}/.github/workflows/python-lint.yml +0 -0
  28. {workbench-0.8.485 → workbench-0.8.486}/.gitignore +0 -0
  29. {workbench-0.8.485 → workbench-0.8.486}/.gitleaks.toml +0 -0
  30. {workbench-0.8.485 → workbench-0.8.486}/.pre-commit-config.yaml +0 -0
  31. {workbench-0.8.485 → workbench-0.8.486}/CONTRIBUTING.md +0 -0
  32. {workbench-0.8.485 → workbench-0.8.486}/Dockerfile +0 -0
  33. {workbench-0.8.485 → workbench-0.8.486}/LICENSE +0 -0
  34. {workbench-0.8.485 → workbench-0.8.486}/Makefile +0 -0
  35. {workbench-0.8.485 → workbench-0.8.486}/README.md +0 -0
  36. {workbench-0.8.485 → workbench-0.8.486}/SECURITY.md +0 -0
  37. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/.gitignore +0 -0
  38. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/README.md +0 -0
  39. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/app.py +0 -0
  40. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/assets/contests/render.js +0 -0
  41. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/assets/contests/styles.css +0 -0
  42. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/assets/favicon.ico +0 -0
  43. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/assets/ml_pipelines/render.js +0 -0
  44. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/assets/ml_pipelines/styles.css +0 -0
  45. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/dashboard +0 -0
  46. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/deploy.sh +0 -0
  47. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/open_source_config.json +0 -0
  48. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/contests/callbacks.py +0 -0
  49. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/contests/layout.py +0 -0
  50. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/contests/page.py +0 -0
  51. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/data_sources/callbacks.py +0 -0
  52. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/data_sources/layout.py +0 -0
  53. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/data_sources/page.py +0 -0
  54. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/endpoints/callbacks.py +0 -0
  55. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/endpoints/layout.py +0 -0
  56. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/endpoints/page.py +0 -0
  57. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/feature_sets/callbacks.py +0 -0
  58. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/feature_sets/layout.py +0 -0
  59. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/feature_sets/page.py +0 -0
  60. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/main/callbacks.py +0 -0
  61. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/main/layout.py +0 -0
  62. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/main/page.py +0 -0
  63. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/ml_pipelines/callbacks.py +0 -0
  64. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/ml_pipelines/layout.py +0 -0
  65. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/ml_pipelines/page.py +0 -0
  66. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/models/callbacks.py +0 -0
  67. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/models/layout.py +0 -0
  68. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/models/page.py +0 -0
  69. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/pages/status/page.py +0 -0
  70. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/requirements.in +0 -0
  71. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/requirements.lock +0 -0
  72. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/static/dark.css +0 -0
  73. {workbench-0.8.485 → workbench-0.8.486}/applications/aws_dashboard/static/light.css +0 -0
  74. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/aws_account_setup.py +0 -0
  75. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/aws_identity_check.py +0 -0
  76. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/build_ml_pipeline.py +0 -0
  77. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_compute/README.md +0 -0
  78. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_compute/app.py +0 -0
  79. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_compute/cdk.json +0 -0
  80. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_compute/requirements.txt +0 -0
  81. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_compute/workbench_compute/__init__.py +0 -0
  82. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_compute/workbench_compute/lambdas/batch_failure/handler.py +0 -0
  83. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_compute/workbench_compute/lambdas/batch_trigger/handler.py +0 -0
  84. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_compute/workbench_compute/workbench_compute_stack.py +0 -0
  85. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_core/.gitignore +0 -0
  86. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_core/README.md +0 -0
  87. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_core/app.py +0 -0
  88. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_core/cdk.json +0 -0
  89. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_core/requirements-dev.txt +0 -0
  90. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_core/requirements.txt +0 -0
  91. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_core/source.bat +0 -0
  92. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_core/workbench_core/__init__.py +0 -0
  93. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_core/workbench_core/workbench_core_stack.py +0 -0
  94. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_dashboard/.gitignore +0 -0
  95. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_dashboard/README.md +0 -0
  96. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_dashboard/app.py +0 -0
  97. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_dashboard/cdk.json +0 -0
  98. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_dashboard/requirements-dev.txt +0 -0
  99. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_dashboard/requirements.txt +0 -0
  100. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_dashboard/source.bat +0 -0
  101. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_dashboard/workbench_dashboard/__init__.py +0 -0
  102. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_dashboard/workbench_dashboard/workbench_dashboard_stack.py +0 -0
  103. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_vpc/README.md +0 -0
  104. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_vpc/app.py +0 -0
  105. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_vpc/cdk.json +0 -0
  106. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_vpc/requirements.txt +0 -0
  107. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_vpc/workbench_vpc/__init__.py +0 -0
  108. {workbench-0.8.485 → workbench-0.8.486}/aws_setup/workbench_vpc/workbench_vpc/workbench_vpc_stack.py +0 -0
  109. {workbench-0.8.485 → workbench-0.8.486}/ci/README.md +0 -0
  110. {workbench-0.8.485 → workbench-0.8.486}/ci/endpoint_import_smoke.py +0 -0
  111. {workbench-0.8.485 → workbench-0.8.486}/ci/endpoint_smoke_requirements.txt +0 -0
  112. {workbench-0.8.485 → workbench-0.8.486}/ci/lock.sh +0 -0
  113. {workbench-0.8.485 → workbench-0.8.486}/ci/template_import_check.py +0 -0
  114. {workbench-0.8.485 → workbench-0.8.486}/ci/workbench_ci_config.json +0 -0
  115. {workbench-0.8.485 → workbench-0.8.486}/data/abalone.csv +0 -0
  116. {workbench-0.8.485 → workbench-0.8.486}/data/karate_graph.json +0 -0
  117. {workbench-0.8.485 → workbench-0.8.486}/data/public_data/README.md +0 -0
  118. {workbench-0.8.485 → workbench-0.8.486}/data/public_data/alignment_utils.py +0 -0
  119. {workbench-0.8.485 → workbench-0.8.486}/data/public_data/build_logp_logd_overlap.py +0 -0
  120. {workbench-0.8.485 → workbench-0.8.486}/data/public_data/build_synthetic_multi_task.py +0 -0
  121. {workbench-0.8.485 → workbench-0.8.486}/data/public_data/build_tagging_reference.py +0 -0
  122. {workbench-0.8.485 → workbench-0.8.486}/data/public_data/descriptions.json +0 -0
  123. {workbench-0.8.485 → workbench-0.8.486}/data/public_data/logp_to_feature_set.py +0 -0
  124. {workbench-0.8.485 → workbench-0.8.486}/data/public_data/overlap_summary.py +0 -0
  125. {workbench-0.8.485 → workbench-0.8.486}/data/public_data/pull_chembl_cyp_data.py +0 -0
  126. {workbench-0.8.485 → workbench-0.8.486}/data/public_data/pull_common.py +0 -0
  127. {workbench-0.8.485 → workbench-0.8.486}/data/public_data/pull_logd_data.py +0 -0
  128. {workbench-0.8.485 → workbench-0.8.486}/data/public_data/pull_logp_data.py +0 -0
  129. {workbench-0.8.485 → workbench-0.8.486}/data/public_data/pull_openadmet_data.py +0 -0
  130. {workbench-0.8.485 → workbench-0.8.486}/data/public_data/pull_pubchem_cyp_data.py +0 -0
  131. {workbench-0.8.485 → workbench-0.8.486}/data/public_data/pull_tox21_cyp_data.py +0 -0
  132. {workbench-0.8.485 → workbench-0.8.486}/data/public_data/requirements.txt +0 -0
  133. {workbench-0.8.485 → workbench-0.8.486}/data/public_data/upload_data.py +0 -0
  134. {workbench-0.8.485 → workbench-0.8.486}/data/test_data.csv +0 -0
  135. {workbench-0.8.485 → workbench-0.8.486}/data/test_data.json +0 -0
  136. {workbench-0.8.485 → workbench-0.8.486}/data/wine_dataset.csv +0 -0
  137. {workbench-0.8.485 → workbench-0.8.486}/deploy_docker.sh +0 -0
  138. {workbench-0.8.485 → workbench-0.8.486}/docs/admin/aws_service_limits.md +0 -0
  139. {workbench-0.8.485 → workbench-0.8.486}/docs/admin/base_docker_push.md +0 -0
  140. {workbench-0.8.485 → workbench-0.8.486}/docs/admin/dashboard_docker_push.md +0 -0
  141. {workbench-0.8.485 → workbench-0.8.486}/docs/admin/dashboard_s3_plugins.md +0 -0
  142. {workbench-0.8.485 → workbench-0.8.486}/docs/admin/images/dashboard_secret_click.png +0 -0
  143. {workbench-0.8.485 → workbench-0.8.486}/docs/admin/images/serverless_quotas.png +0 -0
  144. {workbench-0.8.485 → workbench-0.8.486}/docs/admin/images/status_showing_S3_path.png +0 -0
  145. {workbench-0.8.485 → workbench-0.8.486}/docs/admin/pypi_release.md +0 -0
  146. {workbench-0.8.485 → workbench-0.8.486}/docs/admin/workbench_docker_for_lambdas.md +0 -0
  147. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/async_endpoint.md +0 -0
  148. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/compound.md +0 -0
  149. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/data_source.md +0 -0
  150. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/df_store.md +0 -0
  151. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/endpoint.md +0 -0
  152. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/feature_set.md +0 -0
  153. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/graph_store.md +0 -0
  154. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/inference_cache.md +0 -0
  155. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/inference_store.md +0 -0
  156. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/meta.md +0 -0
  157. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/meta_endpoint.md +0 -0
  158. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/model.md +0 -0
  159. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/monitor.md +0 -0
  160. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/overview.md +0 -0
  161. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/parameter_store.md +0 -0
  162. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/public_data.md +0 -0
  163. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/reports.md +0 -0
  164. {workbench-0.8.485 → workbench-0.8.486}/docs/api_classes/views.md +0 -0
  165. {workbench-0.8.485 → workbench-0.8.486}/docs/aws_setup/aws_setup.md +0 -0
  166. {workbench-0.8.485 → workbench-0.8.486}/docs/aws_setup/aws_tips_and_tricks.md +0 -0
  167. {workbench-0.8.485 → workbench-0.8.486}/docs/aws_setup/compute_stack.md +0 -0
  168. {workbench-0.8.485 → workbench-0.8.486}/docs/aws_setup/core_stack.md +0 -0
  169. {workbench-0.8.485 → workbench-0.8.486}/docs/aws_setup/dashboard_stack.md +0 -0
  170. {workbench-0.8.485 → workbench-0.8.486}/docs/aws_setup/domain_cert_setup.md +0 -0
  171. {workbench-0.8.485 → workbench-0.8.486}/docs/aws_setup/full_pipeline.md +0 -0
  172. {workbench-0.8.485 → workbench-0.8.486}/docs/aws_setup/iam_assume_role.md +0 -0
  173. {workbench-0.8.485 → workbench-0.8.486}/docs/aws_setup/index.md +0 -0
  174. {workbench-0.8.485 → workbench-0.8.486}/docs/aws_setup/redis_tunnel.md +0 -0
  175. {workbench-0.8.485 → workbench-0.8.486}/docs/aws_setup/sso_assume_role.md +0 -0
  176. {workbench-0.8.485 → workbench-0.8.486}/docs/aws_setup/stacks.md +0 -0
  177. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/3d_descriptors.md +0 -0
  178. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/aws_endpoint_architecture.md +0 -0
  179. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/chemprop_multi_task.md +0 -0
  180. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/chemprop_shap.md +0 -0
  181. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/confusion_explorer.md +0 -0
  182. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/cyp_challenge.md +0 -0
  183. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/feature_endpoints.md +0 -0
  184. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/index.md +0 -0
  185. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/ml_agent.md +0 -0
  186. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/molecular_standardization.md +0 -0
  187. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/pxr_weekend_experiments.md +0 -0
  188. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/storage/compound_etl.md +0 -0
  189. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/storage/compound_explorer.md +0 -0
  190. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/storage/eda.md +0 -0
  191. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/storage/feature_importances.md +0 -0
  192. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/storage/fun_with_endpoints.md +0 -0
  193. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/storage/htg.md +0 -0
  194. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/storage/model_monitoring.md +0 -0
  195. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/storage/residual_analysis.md +0 -0
  196. {workbench-0.8.485 → workbench-0.8.486}/docs/blogs/uncertainty_quantification.md +0 -0
  197. {workbench-0.8.485 → workbench-0.8.486}/docs/bosco/index.md +0 -0
  198. {workbench-0.8.485 → workbench-0.8.486}/docs/bosco/security.md +0 -0
  199. {workbench-0.8.485 → workbench-0.8.486}/docs/cached/cached_data_source.md +0 -0
  200. {workbench-0.8.485 → workbench-0.8.486}/docs/cached/cached_endpoint.md +0 -0
  201. {workbench-0.8.485 → workbench-0.8.486}/docs/cached/cached_feature_set.md +0 -0
  202. {workbench-0.8.485 → workbench-0.8.486}/docs/cached/cached_meta.md +0 -0
  203. {workbench-0.8.485 → workbench-0.8.486}/docs/cached/cached_model.md +0 -0
  204. {workbench-0.8.485 → workbench-0.8.486}/docs/cached/overview.md +0 -0
  205. {workbench-0.8.485 → workbench-0.8.486}/docs/chem_utils/index.md +0 -0
  206. {workbench-0.8.485 → workbench-0.8.486}/docs/ci/github_oidc_setup.md +0 -0
  207. {workbench-0.8.485 → workbench-0.8.486}/docs/ci/index.md +0 -0
  208. {workbench-0.8.485 → workbench-0.8.486}/docs/cloudwatch/index.md +0 -0
  209. {workbench-0.8.485 → workbench-0.8.486}/docs/comparisons/workbench_vs_databricks.md +0 -0
  210. {workbench-0.8.485 → workbench-0.8.486}/docs/compound_explorer/tox21.md +0 -0
  211. {workbench-0.8.485 → workbench-0.8.486}/docs/compound_explorer/toxicity_modeling.md +0 -0
  212. {workbench-0.8.485 → workbench-0.8.486}/docs/confidence/index.md +0 -0
  213. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/artifacts/artifact.md +0 -0
  214. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/artifacts/async_endpoint_core.md +0 -0
  215. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/artifacts/athena_source.md +0 -0
  216. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/artifacts/data_source_abstract.md +0 -0
  217. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/artifacts/endpoint_core.md +0 -0
  218. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/artifacts/feature_set_core.md +0 -0
  219. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/artifacts/model_core.md +0 -0
  220. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/artifacts/monitor_core.md +0 -0
  221. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/artifacts/overview.md +0 -0
  222. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/overview.md +0 -0
  223. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/pipelines/pipeline_meta.md +0 -0
  224. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/transforms/data_loaders_heavy.md +0 -0
  225. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/transforms/data_loaders_light.md +0 -0
  226. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/transforms/data_to_features.md +0 -0
  227. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/transforms/features_to_model.md +0 -0
  228. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/transforms/model_to_endpoint.md +0 -0
  229. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/transforms/overview.md +0 -0
  230. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/transforms/pandas_transforms.md +0 -0
  231. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/transforms/transform.md +0 -0
  232. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/views/column_subset_view.md +0 -0
  233. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/views/computation_view.md +0 -0
  234. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/views/create_view.md +0 -0
  235. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/views/display_view.md +0 -0
  236. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/views/inference_view.md +0 -0
  237. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/views/overview.md +0 -0
  238. {workbench-0.8.485 → workbench-0.8.486}/docs/core_classes/views/pandas_to_view.md +0 -0
  239. {workbench-0.8.485 → workbench-0.8.486}/docs/data_algorithms/dataframes/overview.md +0 -0
  240. {workbench-0.8.485 → workbench-0.8.486}/docs/data_algorithms/graphs/overview.md +0 -0
  241. {workbench-0.8.485 → workbench-0.8.486}/docs/data_algorithms/overview.md +0 -0
  242. {workbench-0.8.485 → workbench-0.8.486}/docs/data_algorithms/spark/overview.md +0 -0
  243. {workbench-0.8.485 → workbench-0.8.486}/docs/data_algorithms/sql/overview.md +0 -0
  244. {workbench-0.8.485 → workbench-0.8.486}/docs/enterprise/index.md +0 -0
  245. {workbench-0.8.485 → workbench-0.8.486}/docs/enterprise/private_saas.md +0 -0
  246. {workbench-0.8.485 → workbench-0.8.486}/docs/enterprise/project_branding.md +0 -0
  247. {workbench-0.8.485 → workbench-0.8.486}/docs/enterprise/themes.md +0 -0
  248. {workbench-0.8.485 → workbench-0.8.486}/docs/getting_started/index.md +0 -0
  249. {workbench-0.8.485 → workbench-0.8.486}/docs/glue/index.md +0 -0
  250. {workbench-0.8.485 → workbench-0.8.486}/docs/images/3d_descriptor_pipeline.svg +0 -0
  251. {workbench-0.8.485 → workbench-0.8.486}/docs/images/3d_descriptor_pipeline_detail.svg +0 -0
  252. {workbench-0.8.485 → workbench-0.8.486}/docs/images/3d_descriptor_v2_pipeline.svg +0 -0
  253. {workbench-0.8.485 → workbench-0.8.486}/docs/images/agent_repl_chat.svg +0 -0
  254. {workbench-0.8.485 → workbench-0.8.486}/docs/images/bedrock_prompt_path.svg +0 -0
  255. {workbench-0.8.485 → workbench-0.8.486}/docs/images/big_spider.png +0 -0
  256. {workbench-0.8.485 → workbench-0.8.486}/docs/images/bosco_dashboard_model.png +0 -0
  257. {workbench-0.8.485 → workbench-0.8.486}/docs/images/bosco_egress_guarded.svg +0 -0
  258. {workbench-0.8.485 → workbench-0.8.486}/docs/images/bosco_isoform_parity.png +0 -0
  259. {workbench-0.8.485 → workbench-0.8.486}/docs/images/bosco_neighborhood.png +0 -0
  260. {workbench-0.8.485 → workbench-0.8.486}/docs/images/bosco_top_residuals.png +0 -0
  261. {workbench-0.8.485 → workbench-0.8.486}/docs/images/chemprop_logd.png +0 -0
  262. {workbench-0.8.485 → workbench-0.8.486}/docs/images/chemprop_mt_expansion.svg +0 -0
  263. {workbench-0.8.485 → workbench-0.8.486}/docs/images/chemprop_mt_transfer.svg +0 -0
  264. {workbench-0.8.485 → workbench-0.8.486}/docs/images/chemprop_overview.svg +0 -0
  265. {workbench-0.8.485 → workbench-0.8.486}/docs/images/chemprop_shap_logd.png +0 -0
  266. {workbench-0.8.485 → workbench-0.8.486}/docs/images/chemprop_shap_pipeline.svg +0 -0
  267. {workbench-0.8.485 → workbench-0.8.486}/docs/images/confidence_percentile.svg +0 -0
  268. {workbench-0.8.485 → workbench-0.8.486}/docs/images/conformal_calibration.svg +0 -0
  269. {workbench-0.8.485 → workbench-0.8.486}/docs/images/confusion_explorer/drilldown_on_errors.png +0 -0
  270. {workbench-0.8.485 → workbench-0.8.486}/docs/images/confusion_explorer/high_confidence.png +0 -0
  271. {workbench-0.8.485 → workbench-0.8.486}/docs/images/confusion_explorer/overview.png +0 -0
  272. {workbench-0.8.485 → workbench-0.8.486}/docs/images/cyp_calibration_applied.svg +0 -0
  273. {workbench-0.8.485 → workbench-0.8.486}/docs/images/default_stack_flow.svg +0 -0
  274. {workbench-0.8.485 → workbench-0.8.486}/docs/images/endpoint_architecture.png +0 -0
  275. {workbench-0.8.485 → workbench-0.8.486}/docs/images/graph_representation.png +0 -0
  276. {workbench-0.8.485 → workbench-0.8.486}/docs/images/meta_endpoint_ensemble.svg +0 -0
  277. {workbench-0.8.485 → workbench-0.8.486}/docs/images/meta_endpoint_feature.svg +0 -0
  278. {workbench-0.8.485 → workbench-0.8.486}/docs/images/powered_aws_dark_blue.png +0 -0
  279. {workbench-0.8.485 → workbench-0.8.486}/docs/images/powered_aws_transparent.png +0 -0
  280. {workbench-0.8.485 → workbench-0.8.486}/docs/images/powered_aws_white.png +0 -0
  281. {workbench-0.8.485 → workbench-0.8.486}/docs/images/powered_aws_with_tm_grey.png +0 -0
  282. {workbench-0.8.485 → workbench-0.8.486}/docs/images/scp.png +0 -0
  283. {workbench-0.8.485 → workbench-0.8.486}/docs/images/scp_labs.png +0 -0
  284. {workbench-0.8.485 → workbench-0.8.486}/docs/images/small_spider.png +0 -0
  285. {workbench-0.8.485 → workbench-0.8.486}/docs/images/uq_conf_residual.png +0 -0
  286. {workbench-0.8.485 → workbench-0.8.486}/docs/images/uq_conformal.svg +0 -0
  287. {workbench-0.8.485 → workbench-0.8.486}/docs/images/uq_endpoint_flow.svg +0 -0
  288. {workbench-0.8.485 → workbench-0.8.486}/docs/images/uq_pred_scatter.png +0 -0
  289. {workbench-0.8.485 → workbench-0.8.486}/docs/images/uq_v1_signals.svg +0 -0
  290. {workbench-0.8.485 → workbench-0.8.486}/docs/images/uq_v1_training.svg +0 -0
  291. {workbench-0.8.485 → workbench-0.8.486}/docs/images/workbench_async_stack_flow.svg +0 -0
  292. {workbench-0.8.485 → workbench-0.8.486}/docs/images/workbench_concepts.png +0 -0
  293. {workbench-0.8.485 → workbench-0.8.486}/docs/images/workbench_stack_flow.svg +0 -0
  294. {workbench-0.8.485 → workbench-0.8.486}/docs/index.md +0 -0
  295. {workbench-0.8.485 → workbench-0.8.486}/docs/javascripts/mathjax.js +0 -0
  296. {workbench-0.8.485 → workbench-0.8.486}/docs/lambda_layer/index.md +0 -0
  297. {workbench-0.8.485 → workbench-0.8.486}/docs/local/index.md +0 -0
  298. {workbench-0.8.485 → workbench-0.8.486}/docs/misc/faq.md +0 -0
  299. {workbench-0.8.485 → workbench-0.8.486}/docs/misc/general_info.md +0 -0
  300. {workbench-0.8.485 → workbench-0.8.486}/docs/misc/scp_consulting.md +0 -0
  301. {workbench-0.8.485 → workbench-0.8.486}/docs/misc/workbench_classes_concepts.md +0 -0
  302. {workbench-0.8.485 → workbench-0.8.486}/docs/ml_pipelines/index.md +0 -0
  303. {workbench-0.8.485 → workbench-0.8.486}/docs/model_utils/index.md +0 -0
  304. {workbench-0.8.485 → workbench-0.8.486}/docs/models/chemprop_models.md +0 -0
  305. {workbench-0.8.485 → workbench-0.8.486}/docs/models/cleanlab_models.md +0 -0
  306. {workbench-0.8.485 → workbench-0.8.486}/docs/models/fingerprint_models.md +0 -0
  307. {workbench-0.8.485 → workbench-0.8.486}/docs/models/hpo.md +0 -0
  308. {workbench-0.8.485 → workbench-0.8.486}/docs/models/images/chemprop_decision_tree.svg +0 -0
  309. {workbench-0.8.485 → workbench-0.8.486}/docs/models/images/chemprop_desc_architecture.svg +0 -0
  310. {workbench-0.8.485 → workbench-0.8.486}/docs/models/images/confidence.jpg +0 -0
  311. {workbench-0.8.485 → workbench-0.8.486}/docs/models/images/hpo_details.svg +0 -0
  312. {workbench-0.8.485 → workbench-0.8.486}/docs/models/images/hpo_overview.svg +0 -0
  313. {workbench-0.8.485 → workbench-0.8.486}/docs/models/index.md +0 -0
  314. {workbench-0.8.485 → workbench-0.8.486}/docs/models/meta_endpoints.md +0 -0
  315. {workbench-0.8.485 → workbench-0.8.486}/docs/models/pytorch_models.md +0 -0
  316. {workbench-0.8.485 → workbench-0.8.486}/docs/models/sklearn_models.md +0 -0
  317. {workbench-0.8.485 → workbench-0.8.486}/docs/models/xgboost_models.md +0 -0
  318. {workbench-0.8.485 → workbench-0.8.486}/docs/plugins/index.md +0 -0
  319. {workbench-0.8.485 → workbench-0.8.486}/docs/presentations/index.md +0 -0
  320. {workbench-0.8.485 → workbench-0.8.486}/docs/presentations/pxr_repl_demo.md +0 -0
  321. {workbench-0.8.485 → workbench-0.8.486}/docs/release_notes/0_8_158.md +0 -0
  322. {workbench-0.8.485 → workbench-0.8.486}/docs/release_notes/0_8_339.md +0 -0
  323. {workbench-0.8.485 → workbench-0.8.486}/docs/release_notes/0_8_358.md +0 -0
  324. {workbench-0.8.485 → workbench-0.8.486}/docs/release_notes/0_8_384.md +0 -0
  325. {workbench-0.8.485 → workbench-0.8.486}/docs/release_notes/0_8_396.md +0 -0
  326. {workbench-0.8.485 → workbench-0.8.486}/docs/release_notes/0_8_398.md +0 -0
  327. {workbench-0.8.485 → workbench-0.8.486}/docs/release_notes/0_8_441.md +0 -0
  328. {workbench-0.8.485 → workbench-0.8.486}/docs/release_notes/0_8_450.md +0 -0
  329. {workbench-0.8.485 → workbench-0.8.486}/docs/repl/index.md +0 -0
  330. {workbench-0.8.485 → workbench-0.8.486}/docs/road_maps/0_9_0.md +0 -0
  331. {workbench-0.8.485 → workbench-0.8.486}/docs/road_maps/0_9_5.md +0 -0
  332. {workbench-0.8.485 → workbench-0.8.486}/docs/stylesheets/extra.css +0 -0
  333. {workbench-0.8.485 → workbench-0.8.486}/docs/themes/details.md +0 -0
  334. {workbench-0.8.485 → workbench-0.8.486}/docs/themes/index.md +0 -0
  335. {workbench-0.8.485 → workbench-0.8.486}/examples/ag-grid/hello_world.py +0 -0
  336. {workbench-0.8.485 → workbench-0.8.486}/examples/chem_utils/curate_admet_dataset.py +0 -0
  337. {workbench-0.8.485 → workbench-0.8.486}/examples/chem_utils/tag_molecules.py +0 -0
  338. {workbench-0.8.485 → workbench-0.8.486}/examples/chem_utils/tautomerize_smiles.py +0 -0
  339. {workbench-0.8.485 → workbench-0.8.486}/examples/datasource/datasource_from_df.py +0 -0
  340. {workbench-0.8.485 → workbench-0.8.486}/examples/datasource/datasource_from_s3.py +0 -0
  341. {workbench-0.8.485 → workbench-0.8.486}/examples/datasource/datasource_query.py +0 -0
  342. {workbench-0.8.485 → workbench-0.8.486}/examples/datasource/datasource_stats.py +0 -0
  343. {workbench-0.8.485 → workbench-0.8.486}/examples/datasource/datasource_to_featureset.py +0 -0
  344. {workbench-0.8.485 → workbench-0.8.486}/examples/endpoint/endpoint_details.py +0 -0
  345. {workbench-0.8.485 → workbench-0.8.486}/examples/endpoint/endpoint_inference.py +0 -0
  346. {workbench-0.8.485 → workbench-0.8.486}/examples/endpoint/endpoint_metrics.py +0 -0
  347. {workbench-0.8.485 → workbench-0.8.486}/examples/featureset/featureset_eda.py +0 -0
  348. {workbench-0.8.485 → workbench-0.8.486}/examples/featureset/featureset_query.py +0 -0
  349. {workbench-0.8.485 → workbench-0.8.486}/examples/full_ml_pipeline.py +0 -0
  350. {workbench-0.8.485 → workbench-0.8.486}/examples/glue_jobs/glue_example_1.py +0 -0
  351. {workbench-0.8.485 → workbench-0.8.486}/examples/glue_jobs/glue_example_2.py +0 -0
  352. {workbench-0.8.485 → workbench-0.8.486}/examples/glue_jobs/glue_example_3.py +0 -0
  353. {workbench-0.8.485 → workbench-0.8.486}/examples/glue_jobs/glue_launcher_examples/example_1.py +0 -0
  354. {workbench-0.8.485 → workbench-0.8.486}/examples/glue_jobs/glue_launcher_examples/example_2.py +0 -0
  355. {workbench-0.8.485 → workbench-0.8.486}/examples/graph/aqsol_proximity_path.py +0 -0
  356. {workbench-0.8.485 → workbench-0.8.486}/examples/meta/meta_list_endpoints.py +0 -0
  357. {workbench-0.8.485 → workbench-0.8.486}/examples/meta/meta_list_models.py +0 -0
  358. {workbench-0.8.485 → workbench-0.8.486}/examples/meta/meta_model_summary.py +0 -0
  359. {workbench-0.8.485 → workbench-0.8.486}/examples/ml_flow/.gitignore +0 -0
  360. {workbench-0.8.485 → workbench-0.8.486}/examples/ml_flow/README.md +0 -0
  361. {workbench-0.8.485 → workbench-0.8.486}/examples/ml_flow/aqsol_mlflow.py +0 -0
  362. {workbench-0.8.485 → workbench-0.8.486}/examples/ml_flow/aqsol_workbench_holdout.py +0 -0
  363. {workbench-0.8.485 → workbench-0.8.486}/examples/model_utils/model_metrics.py +0 -0
  364. {workbench-0.8.485 → workbench-0.8.486}/examples/model_utils/model_to_endpoint.py +0 -0
  365. {workbench-0.8.485 → workbench-0.8.486}/examples/model_utils/onboard_model.py +0 -0
  366. {workbench-0.8.485 → workbench-0.8.486}/examples/models/aqsol_example.py +0 -0
  367. {workbench-0.8.485 → workbench-0.8.486}/examples/models/chemprop.py +0 -0
  368. {workbench-0.8.485 → workbench-0.8.486}/examples/models/chemprop_bounded_loss_test.py +0 -0
  369. {workbench-0.8.485 → workbench-0.8.486}/examples/models/chemprop_foundation.py +0 -0
  370. {workbench-0.8.485 → workbench-0.8.486}/examples/models/chemprop_hpo.py +0 -0
  371. {workbench-0.8.485 → workbench-0.8.486}/examples/models/chemprop_logp_logd_synthetic.py +0 -0
  372. {workbench-0.8.485 → workbench-0.8.486}/examples/models/chemprop_logp_logd_tiered.py +0 -0
  373. {workbench-0.8.485 → workbench-0.8.486}/examples/models/chemprop_open_admet.py +0 -0
  374. {workbench-0.8.485 → workbench-0.8.486}/examples/models/dbscan.py +0 -0
  375. {workbench-0.8.485 → workbench-0.8.486}/examples/models/knn.py +0 -0
  376. {workbench-0.8.485 → workbench-0.8.486}/examples/models/meta_endpoint.py +0 -0
  377. {workbench-0.8.485 → workbench-0.8.486}/examples/models/pytorch.py +0 -0
  378. {workbench-0.8.485 → workbench-0.8.486}/examples/models/random_forest.py +0 -0
  379. {workbench-0.8.485 → workbench-0.8.486}/examples/models/split_comparison_chemprop.py +0 -0
  380. {workbench-0.8.485 → workbench-0.8.486}/examples/models/split_comparison_pytorch.py +0 -0
  381. {workbench-0.8.485 → workbench-0.8.486}/examples/models/split_comparison_xgb.py +0 -0
  382. {workbench-0.8.485 → workbench-0.8.486}/examples/models/uq_storage/bayesian_ridge.py +0 -0
  383. {workbench-0.8.485 → workbench-0.8.486}/examples/models/uq_storage/ensemble_xgb.py +0 -0
  384. {workbench-0.8.485 → workbench-0.8.486}/examples/models/uq_storage/gaussian_process.py +0 -0
  385. {workbench-0.8.485 → workbench-0.8.486}/examples/models/uq_storage/meta_uq.py +0 -0
  386. {workbench-0.8.485 → workbench-0.8.486}/examples/models/uq_storage/ngboost.py +0 -0
  387. {workbench-0.8.485 → workbench-0.8.486}/examples/models/uq_storage/quant_xgb.py +0 -0
  388. {workbench-0.8.485 → workbench-0.8.486}/examples/models/xgb_model.py +0 -0
  389. {workbench-0.8.485 → workbench-0.8.486}/examples/monitor/monitor_setup.py +0 -0
  390. {workbench-0.8.485 → workbench-0.8.486}/examples/monitor/monitor_usage.py +0 -0
  391. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/README.md +0 -0
  392. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/assets/hello/render.js +0 -0
  393. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/assets/hello/styles.css +0 -0
  394. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/branding/Readme.md +0 -0
  395. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/branding/scp.json +0 -0
  396. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/components/custom_plugin.py +0 -0
  397. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/components/endpoint_plugin.py +0 -0
  398. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/components/endpoint_turbo.py +0 -0
  399. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/components/model_markdown.py +0 -0
  400. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/components/model_plugin.py +0 -0
  401. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/packages/my_plugin_utils/__init__.py +0 -0
  402. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/packages/my_plugin_utils/assets/foo.json +0 -0
  403. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/packages/my_plugin_utils/cool_stuff.py +0 -0
  404. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/pages/plugin_page_1.py +0 -0
  405. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/pages/plugin_page_2.py +0 -0
  406. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/pages/plugin_page_3.py +0 -0
  407. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/pages/plugin_page_assets.py +0 -0
  408. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/templates/Readme.md +0 -0
  409. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/views/model_plugin_view.py +0 -0
  410. {workbench-0.8.485 → workbench-0.8.486}/examples/plugins/views/my_view_plugin.py +0 -0
  411. {workbench-0.8.485 → workbench-0.8.486}/experiments/chem_info/bulk_sims.py +0 -0
  412. {workbench-0.8.485 → workbench-0.8.486}/experiments/chem_info/knn_sims.py +0 -0
  413. {workbench-0.8.485 → workbench-0.8.486}/experiments/confidence_roc_curve.py +0 -0
  414. {workbench-0.8.485 → workbench-0.8.486}/experiments/coverage_probability.py +0 -0
  415. {workbench-0.8.485 → workbench-0.8.486}/experiments/db_scan_test.py +0 -0
  416. {workbench-0.8.485 → workbench-0.8.486}/experiments/log_testing.py +0 -0
  417. {workbench-0.8.485 → workbench-0.8.486}/experiments/networkx_id.py +0 -0
  418. {workbench-0.8.485 → workbench-0.8.486}/experiments/prediction_intervals.py +0 -0
  419. {workbench-0.8.485 → workbench-0.8.486}/experiments/residual_analysis.py +0 -0
  420. {workbench-0.8.485 → workbench-0.8.486}/experiments/rocauc_testing.py +0 -0
  421. {workbench-0.8.485 → workbench-0.8.486}/experiments/scatter_zoom_issue.py +0 -0
  422. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/README.md +0 -0
  423. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/_common.py +0 -0
  424. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/model_scripts/molecular_utils/fingerprints.py +0 -0
  425. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/model_scripts/molecular_utils/mol_descriptors.py +0 -0
  426. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/model_scripts/molecular_utils/mol_descriptors_3d.py +0 -0
  427. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/model_scripts/molecular_utils/mol_descriptors_3d_v2.py +0 -0
  428. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/model_scripts/molecular_utils/mol_standardize.py +0 -0
  429. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/model_scripts/requirements.txt +0 -0
  430. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/model_scripts/smiles_to_2d_model_script.py +0 -0
  431. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/model_scripts/smiles_to_2d_salt_model_script.py +0 -0
  432. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/model_scripts/smiles_to_3d_v1_model_script.py +0 -0
  433. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/model_scripts/smiles_to_3d_v2_model_script.py +0 -0
  434. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/model_scripts/smiles_to_fingerprints_model_script.template +0 -0
  435. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/smiles_to_2d_3d_salt_v2.py +0 -0
  436. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/smiles_to_2d_3d_v1.py +0 -0
  437. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/smiles_to_2d_3d_v2.py +0 -0
  438. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/smiles_to_2d_salt_v1.py +0 -0
  439. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/smiles_to_2d_v1.py +0 -0
  440. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/smiles_to_3d_v1.py +0 -0
  441. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/smiles_to_3d_v2.py +0 -0
  442. {workbench-0.8.485 → workbench-0.8.486}/feature_endpoints/smiles_to_fingerprints_v1.py +0 -0
  443. {workbench-0.8.485 → workbench-0.8.486}/glue_jobs/create_glue_workflow_with_trigger.py +0 -0
  444. {workbench-0.8.485 → workbench-0.8.486}/glue_jobs/example_glue_job.py +0 -0
  445. {workbench-0.8.485 → workbench-0.8.486}/lambda_layers/.gitignore +0 -0
  446. {workbench-0.8.485 → workbench-0.8.486}/lambda_layers/README.md +0 -0
  447. {workbench-0.8.485 → workbench-0.8.486}/lambda_layers/example_lambda/README.md +0 -0
  448. {workbench-0.8.485 → workbench-0.8.486}/lambda_layers/example_lambda/handler.py +0 -0
  449. {workbench-0.8.485 → workbench-0.8.486}/lambda_layers/example_lambda/local_test.py +0 -0
  450. {workbench-0.8.485 → workbench-0.8.486}/lambda_layers/example_lambda/sample_pipelines/demo/pipelines.json +0 -0
  451. {workbench-0.8.485 → workbench-0.8.486}/lambda_layers/requirements.txt +0 -0
  452. {workbench-0.8.485 → workbench-0.8.486}/mkdocs.yml +0 -0
  453. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/.gitignore +0 -0
  454. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/README_rx.md +0 -0
  455. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/caco2_efflux/caco2_efflux.py +0 -0
  456. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/caco2_efflux/pipelines.json +0 -0
  457. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/caco2_papp_a_b/caco2_papp_a_b.py +0 -0
  458. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/caco2_papp_a_b/pipelines.json +0 -0
  459. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/cyp_aux_features.py +0 -0
  460. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/cyp_chemprop_2d6.py +0 -0
  461. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/cyp_chemprop_mt_aux_100.py +0 -0
  462. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/cyp_chemprop_union.py +0 -0
  463. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/cyp_feature_sets.py +0 -0
  464. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/cyp_union_features.py +0 -0
  465. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/cyp_xgb_3dv2.py +0 -0
  466. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/pipelines.json +0 -0
  467. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/README.md +0 -0
  468. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/cyp_2d6_pharmacophore.py +0 -0
  469. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/cyp_aux_alignment.py +0 -0
  470. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/cyp_calibration_figures.py +0 -0
  471. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/cyp_compare.py +0 -0
  472. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/cyp_ensemble_submit.py +0 -0
  473. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/cyp_error_decomposition.py +0 -0
  474. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/cyp_leaderboard.py +0 -0
  475. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/cyp_member_diversity.py +0 -0
  476. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/cyp_mix_submission.py +0 -0
  477. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/cyp_pooling_precheck.py +0 -0
  478. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/cyp_recalibrate.py +0 -0
  479. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/cyp_ruler_power.py +0 -0
  480. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/cyp_seed_noise.py +0 -0
  481. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/cyp_submit.py +0 -0
  482. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/cyp_tox21_anchors.py +0 -0
  483. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/cyp_verify_claims.py +0 -0
  484. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/openadmet_validation/LICENSE +0 -0
  485. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/openadmet_validation/__init__.py +0 -0
  486. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/openadmet_validation/activity_validation.py +0 -0
  487. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/scripts/openadmet_validation/tdi_validation.py +0 -0
  488. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/storage/README.md +0 -0
  489. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/storage/cyp_censored_features.py +0 -0
  490. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/storage/cyp_chemprop_mt.py +0 -0
  491. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/storage/cyp_chemprop_mt_100.py +0 -0
  492. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/storage/cyp_chemprop_mt_all.py +0 -0
  493. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/storage/cyp_chemprop_mt_aux.py +0 -0
  494. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/storage/cyp_chemprop_mt_censored.py +0 -0
  495. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/storage/cyp_pytorch_3dv2.py +0 -0
  496. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/cyp/storage/cyp_xgb_fp.py +0 -0
  497. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/hlm_clint/hlm_clint.py +0 -0
  498. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/hlm_clint/pipelines.json +0 -0
  499. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/images/confidence.jpg +0 -0
  500. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/images/open_admet_model.jpg +0 -0
  501. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/inference/open_admet/rx_test_champions.py +0 -0
  502. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/ksol/ksol.py +0 -0
  503. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/ksol/pipelines.json +0 -0
  504. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/load_data/load_data.py +0 -0
  505. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/load_data/pipelines.json +0 -0
  506. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/logd/logd.py +0 -0
  507. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/logd/logd_chemprop_hpo.py +0 -0
  508. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/logd/pipelines.json +0 -0
  509. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/mbpb/mbpb.py +0 -0
  510. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/mbpb/pipelines.json +0 -0
  511. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/mgmb/mgmb.py +0 -0
  512. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/mgmb/pipelines.json +0 -0
  513. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/mlm_clint/mlm_clint.py +0 -0
  514. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/mlm_clint/pipelines.json +0 -0
  515. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/mppb/mppb.py +0 -0
  516. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/mppb/mppb_chemprop_hpo.py +0 -0
  517. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/mppb/pipelines.json +0 -0
  518. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/README.md +0 -0
  519. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_chemeleon_phase1.py +0 -0
  520. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_hpo_phase1.py +0 -0
  521. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_mt_hpo_phase1.py +0 -0
  522. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_mt_phase1.py +0 -0
  523. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_phase1.py +0 -0
  524. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_readout_phase1.py +0 -0
  525. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/phase1/pxr_chemprop_tuned_phase1.py +0 -0
  526. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/phase1/pxr_pytorch_hpo_phase1.py +0 -0
  527. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/phase1/pxr_tabicl_spike_phase1.py +0 -0
  528. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/phase1/pxr_xgb_hpo_phase1.py +0 -0
  529. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/phase2/activity_leaderboard_phase2.csv +0 -0
  530. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/phase2/pxr_chemprop_mt_phase2.py +0 -0
  531. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/phase2/pxr_chemprop_phase2.py +0 -0
  532. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/pipelines.json +0 -0
  533. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/pxr_chemprop_lfc.py +0 -0
  534. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/pxr_chemprop_mt_feature_sets.py +0 -0
  535. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/pxr_feature_sets.py +0 -0
  536. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/pxr_lfc_feature_sets.py +0 -0
  537. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/pxr_pytorch_3dv2.py +0 -0
  538. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/pxr/pxr_readout_feature_sets.py +0 -0
  539. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/support/hello_world.py +0 -0
  540. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/support/model_metrics.md +0 -0
  541. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/support/run_inference.py +0 -0
  542. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/OpenADMET/support/utils/compute_model_metrics.py +0 -0
  543. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/Testing/AqSol/aqsol_chemprop_hpo.py +0 -0
  544. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/Testing/AqSol/aqsol_class_1.py +0 -0
  545. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/Testing/AqSol/aqsol_class_2.py +0 -0
  546. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/Testing/AqSol/aqsol_feature_set.py +0 -0
  547. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/Testing/AqSol/aqsol_reg_1.py +0 -0
  548. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/Testing/AqSol/aqsol_reg_2.py +0 -0
  549. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/Testing/AqSol/aqsol_xgb_custom_space.py +0 -0
  550. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/Testing/AqSol/aqsol_xgb_hpo.py +0 -0
  551. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/Testing/AqSol/pipelines.json +0 -0
  552. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/Testing/abalone/abalone.py +0 -0
  553. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/Testing/abalone/pipelines.json +0 -0
  554. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/Testing/pipeline_utils_check/pipeline_utils_check.py +0 -0
  555. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/Testing/test_data/pipelines.json +0 -0
  556. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/Testing/test_data/test_data.py +0 -0
  557. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/Testing/wine_data/pipelines.json +0 -0
  558. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/Testing/wine_data/wine_classifier.py +0 -0
  559. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/pipeline_utils/__init__.py +0 -0
  560. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/pipeline_utils/smoke.py +0 -0
  561. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/plugins/models/__init__.py +0 -0
  562. {workbench-0.8.485 → workbench-0.8.486}/ml_pipelines/plugins/models/model_promotion.py +0 -0
  563. {workbench-0.8.485 → workbench-0.8.486}/presentations/README.md +0 -0
  564. {workbench-0.8.485 → workbench-0.8.486}/pyproject.toml +0 -0
  565. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/Readme.md +0 -0
  566. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/base/inference/requirements.in +0 -0
  567. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/base/inference/requirements.lock +0 -0
  568. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/base/training/requirements.in +0 -0
  569. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/base/training/requirements.lock +0 -0
  570. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/build_deploy.sh +0 -0
  571. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/deploy_all +0 -0
  572. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/ml_pipelines/ml_pipeline_runner.py +0 -0
  573. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/ml_pipelines/requirements.lock +0 -0
  574. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/pytorch_chem/inference/requirements.in +0 -0
  575. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/pytorch_chem/inference/requirements.lock +0 -0
  576. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/pytorch_chem/training/requirements.in +0 -0
  577. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/pytorch_chem/training/requirements.lock +0 -0
  578. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/shared/main.py +0 -0
  579. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/shared/serve +0 -0
  580. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/tests/data/abalone_sm.csv +0 -0
  581. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/tests/example_model_script.py +0 -0
  582. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/tests/run_tests.sh +0 -0
  583. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/tests/test_inference.py +0 -0
  584. {workbench-0.8.485 → workbench-0.8.486}/sagemaker_images/tests/test_training.py +0 -0
  585. {workbench-0.8.485 → workbench-0.8.486}/scripts/active_logs.sh +0 -0
  586. {workbench-0.8.485 → workbench-0.8.486}/scripts/admet/partition_aqsol_alignment.py +0 -0
  587. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/async_typical_usage.py +0 -0
  588. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/athena_ddl_mixed_case.py +0 -0
  589. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/backfill_autoscaling_alarm_metadata.py +0 -0
  590. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/backfill_prm_endpoint_tags.py +0 -0
  591. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/backup_data_captures.sh +0 -0
  592. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/check_all_glue_tables.py +0 -0
  593. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/chemprop_timing_report.py +0 -0
  594. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/compact_inference_cache.py +0 -0
  595. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/contest_audit.py +0 -0
  596. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/data_capture_report.py +0 -0
  597. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/delete_data_captures.py +0 -0
  598. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/delete_old_lambda_layers.sh +0 -0
  599. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/delete_redis_keys.py +0 -0
  600. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/deploy_plugins.py +0 -0
  601. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/feature_endpoint_update_check.py +0 -0
  602. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/find_models_with_bridges.py +0 -0
  603. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/find_orphan_artifacts.py +0 -0
  604. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/find_orphan_models.py +0 -0
  605. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/find_orphan_parameters.py +0 -0
  606. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/find_orphan_tables.py +0 -0
  607. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/inference_cache_concurrency_check.py +0 -0
  608. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/ladder_quotas.py +0 -0
  609. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/ladder_steps.py +0 -0
  610. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/list_datacatalog.py +0 -0
  611. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/migration/TAG_MIGRATION.md +0 -0
  612. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/migration/migrate_legacy_tags.py +0 -0
  613. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/populate_activity_cliffs_reference_compounds.py +0 -0
  614. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/populate_reference_compounds.py +0 -0
  615. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/pull_image_digest.py +0 -0
  616. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/push_chemeleon_models.py +0 -0
  617. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/redis_reaper.py +0 -0
  618. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/reference_compounds/3d.json +0 -0
  619. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/reference_compounds/3d_perf.json +0 -0
  620. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/reference_compounds/complexity_skips.json +0 -0
  621. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/reference_compounds/corner_cases.json +0 -0
  622. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/reference_compounds/standardization.json +0 -0
  623. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/reference_compounds_common.py +0 -0
  624. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/smiles_nan_investigation.py +0 -0
  625. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/spam_list_tags.py +0 -0
  626. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/storage/convert_training_views.py +0 -0
  627. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/storage/copy_data_sources_across_envs.py +0 -0
  628. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/storage/migrate_data_source_via_df.py +0 -0
  629. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/storage/migrate_ds_meta.py +0 -0
  630. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/test_3d_descriptors.py +0 -0
  631. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/test_3d_endpoint.py +0 -0
  632. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/test_batch_job_failure.py +0 -0
  633. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/test_no_workbench_config.py +0 -0
  634. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/training_job_status.py +0 -0
  635. {workbench-0.8.485 → workbench-0.8.486}/scripts/admin/verify_async_autoscaling.py +0 -0
  636. {workbench-0.8.485 → workbench-0.8.486}/scripts/compare_model_packages.py +0 -0
  637. {workbench-0.8.485 → workbench-0.8.486}/scripts/endpoint_timing.py +0 -0
  638. {workbench-0.8.485 → workbench-0.8.486}/scripts/get_tags.py +0 -0
  639. {workbench-0.8.485 → workbench-0.8.486}/scripts/llm_deploys/deepseek_deploy.py +0 -0
  640. {workbench-0.8.485 → workbench-0.8.486}/scripts/model_cache_refresh.py +0 -0
  641. {workbench-0.8.485 → workbench-0.8.486}/scripts/model_endpoint_sanity_check.py +0 -0
  642. {workbench-0.8.485 → workbench-0.8.486}/scripts/monitor_event_bridge.py +0 -0
  643. {workbench-0.8.485 → workbench-0.8.486}/scripts/onboard_endpoints.py +0 -0
  644. {workbench-0.8.485 → workbench-0.8.486}/scripts/onboard_models.py +0 -0
  645. {workbench-0.8.485 → workbench-0.8.486}/scripts/pubchem/pubchem_example.py +0 -0
  646. {workbench-0.8.485 → workbench-0.8.486}/scripts/pubchem/pubchem_query.py +0 -0
  647. {workbench-0.8.485 → workbench-0.8.486}/scripts/pubchem/pubchem_query_with_cid.py +0 -0
  648. {workbench-0.8.485 → workbench-0.8.486}/scripts/sagemaker_pipeline_model_endpoint.py +0 -0
  649. {workbench-0.8.485 → workbench-0.8.486}/scripts/seaborn_to_plotly.py +0 -0
  650. {workbench-0.8.485 → workbench-0.8.486}/scripts/test_feature_set_creation.py +0 -0
  651. {workbench-0.8.485 → workbench-0.8.486}/scripts/tox21/test_tox_heuristic.py +0 -0
  652. {workbench-0.8.485 → workbench-0.8.486}/scripts/tox21/tox21_to_df_store.py +0 -0
  653. {workbench-0.8.485 → workbench-0.8.486}/scripts/uq_v1_baseline_metrics.py +0 -0
  654. {workbench-0.8.485 → workbench-0.8.486}/setup.cfg +0 -0
  655. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/__init__.py +0 -0
  656. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/__init__.py +0 -0
  657. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/bosco.py +0 -0
  658. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/bosco/sessions.md +0 -0
  659. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/bosco/tokens.md +0 -0
  660. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/bosco/tutorial.md +0 -0
  661. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/bosco/using_bosco.md +0 -0
  662. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/challenges/cyp_challenge.md +0 -0
  663. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/compounds/cheminformatics.md +0 -0
  664. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/compounds/compounds.md +0 -0
  665. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/compounds/proximity.md +0 -0
  666. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/core/api_classes.md +0 -0
  667. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/core/code_search.md +0 -0
  668. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/core/exploring.md +0 -0
  669. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/core/introspection.md +0 -0
  670. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/core/publishing.md +0 -0
  671. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/data/data_and_features.md +0 -0
  672. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/data/data_cleanup.md +0 -0
  673. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/data/pk_data.md +0 -0
  674. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/data/public_data.md +0 -0
  675. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/general.md +0 -0
  676. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/models/contests.md +0 -0
  677. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/models/feature_endpoints.md +0 -0
  678. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/models/hpo.md +0 -0
  679. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/models/local_models.md +0 -0
  680. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/models/making_models.md +0 -0
  681. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/models/promotion.md +0 -0
  682. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/models/uq.md +0 -0
  683. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/ops/batch.md +0 -0
  684. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/ops/endpoints.md +0 -0
  685. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/ops/monitoring.md +0 -0
  686. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/ops/pipelines.md +0 -0
  687. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/ui/dashboard.md +0 -0
  688. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/ui/interactive_apps.md +0 -0
  689. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/ui/plotting.md +0 -0
  690. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/guides/ui/plugin_pages.md +0 -0
  691. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/prompts/egress.md +0 -0
  692. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/prompts/personalities.md +0 -0
  693. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/agent/tools.py +0 -0
  694. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/__init__.py +0 -0
  695. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/Readme.md +0 -0
  696. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/__init__.py +0 -0
  697. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/data_source_eda.py +0 -0
  698. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/feature_space_proximity.py +0 -0
  699. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/fingerprint_proximity.py +0 -0
  700. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/multi_task_alignment.py +0 -0
  701. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/projection_2d.py +0 -0
  702. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/proximity.py +0 -0
  703. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/residual_features.py +0 -0
  704. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/smart_aggregator.py +0 -0
  705. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/storage/aggregation.py +0 -0
  706. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/storage/feature_spider.py +0 -0
  707. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/storage/row_tagger.py +0 -0
  708. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/storage/target_gradients.py +0 -0
  709. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/target_landscape.py +0 -0
  710. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/uq_model_v0.py +0 -0
  711. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/uq_model_v1.py +0 -0
  712. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/dataframe/uq_model_v2.py +0 -0
  713. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/graph/__init__.py +0 -0
  714. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/graph/heavy/Readme.md +0 -0
  715. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/graph/light/Readme.md +0 -0
  716. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/graph/light/__init__.py +0 -0
  717. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/graph/light/laplacian_smoothness.py +0 -0
  718. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/graph/light/path_search.py +0 -0
  719. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/graph/light/proximity_graph.py +0 -0
  720. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/models/cleanlab_model.py +0 -0
  721. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/models/noise_model.py +0 -0
  722. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/spark/Readme.md +0 -0
  723. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/sql/Readme.md +0 -0
  724. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/sql/__init__.py +0 -0
  725. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/sql/column_stats.py +0 -0
  726. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/sql/correlations.py +0 -0
  727. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/sql/descriptive_stats.py +0 -0
  728. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/sql/outliers.py +0 -0
  729. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/sql/sample_rows.py +0 -0
  730. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/algorithms/sql/value_counts.py +0 -0
  731. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/api/__init__.py +0 -0
  732. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/api/compound.py +0 -0
  733. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/api/data_source.py +0 -0
  734. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/api/df_store.py +0 -0
  735. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/api/endpoint.py +0 -0
  736. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/api/feature_set.py +0 -0
  737. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/api/graph_store.py +0 -0
  738. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/api/inference_cache.py +0 -0
  739. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/api/inference_store.py +0 -0
  740. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/api/meta.py +0 -0
  741. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/api/meta_endpoint.py +0 -0
  742. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/api/model.py +0 -0
  743. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/api/monitor.py +0 -0
  744. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/api/parameter_store.py +0 -0
  745. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/api/reports.py +0 -0
  746. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/batch/__init__.py +0 -0
  747. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/batch/models/__init__.py +0 -0
  748. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/batch/models/model_promotion.py +0 -0
  749. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/cached/__init__.py +0 -0
  750. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/cached/cached_artifact_mixin.py +0 -0
  751. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/cached/cached_data_source.py +0 -0
  752. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/cached/cached_endpoint.py +0 -0
  753. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/cached/cached_feature_set.py +0 -0
  754. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/cached/cached_meta.py +0 -0
  755. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/cached/cached_model.py +0 -0
  756. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/__init__.py +0 -0
  757. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/artifact.py +0 -0
  758. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/artifacts/__init__.py +0 -0
  759. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/artifacts/async_endpoint_core.py +0 -0
  760. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/artifacts/athena_source.py +0 -0
  761. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/artifacts/aws_artifact.py +0 -0
  762. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/artifacts/data_capture_core.py +0 -0
  763. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/artifacts/data_source_abstract.py +0 -0
  764. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/artifacts/data_source_factory.py +0 -0
  765. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/artifacts/endpoint_core.py +0 -0
  766. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/artifacts/feature_set_core.py +0 -0
  767. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/artifacts/model_core.py +0 -0
  768. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/artifacts/monitor_core.py +0 -0
  769. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/cloud_platform/aws/README.md +0 -0
  770. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/cloud_platform/aws/aws_account_clamp.py +0 -0
  771. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/cloud_platform/aws/aws_graph_store.py +0 -0
  772. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/cloud_platform/aws/aws_meta.py +0 -0
  773. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/cloud_platform/aws/aws_secrets_manager.py +0 -0
  774. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/cloud_platform/aws/aws_session.py +0 -0
  775. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/cloud_platform/aws/boto_session.py +0 -0
  776. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/cloud_platform/aws/cache_dataframe.py +0 -0
  777. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/cloud_platform/azure/README.md +0 -0
  778. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/cloud_platform/cloud_meta.py +0 -0
  779. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/cloud_platform/gcp/README.md +0 -0
  780. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/df_store_core.py +0 -0
  781. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/model_types.py +0 -0
  782. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/parameter_store_core.py +0 -0
  783. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/pipelines/__init__.py +0 -0
  784. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/pipelines/pipeline_meta.py +0 -0
  785. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/Readme.md +0 -0
  786. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/__init__.py +0 -0
  787. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_loaders/__init__.py +0 -0
  788. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_loaders/heavy/__init__.py +0 -0
  789. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_loaders/heavy/s3_heavy_to_data_source.py +0 -0
  790. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_loaders/light/__init__.py +0 -0
  791. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_loaders/light/csv_to_data_source.py +0 -0
  792. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_loaders/light/json_to_data_source.py +0 -0
  793. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_loaders/light/s3_to_data_source_light.py +0 -0
  794. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_to_data/__init__.py +0 -0
  795. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_to_data/heavy/__init__.py +0 -0
  796. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_to_data/heavy/emr/Readme.md +0 -0
  797. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_to_data/heavy/glue/Readme.md +0 -0
  798. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_to_data/light/__init__.py +0 -0
  799. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_to_data/light/clean_data.py +0 -0
  800. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_to_data/light/data_to_data_light.py +0 -0
  801. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_to_features/__init__.py +0 -0
  802. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_to_features/heavy/__init__.py +0 -0
  803. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_to_features/heavy/chunk/__init__.py +0 -0
  804. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_to_features/heavy/emr/Readme.md +0 -0
  805. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_to_features/heavy/glue/Readme.md +0 -0
  806. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_to_features/light/__init__.py +0 -0
  807. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_to_features/light/data_to_features_light.py +0 -0
  808. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/data_to_features/light/molecular_descriptors.py +0 -0
  809. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/features_to_features/__init__.py +0 -0
  810. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/features_to_features/heavy/emr/Readme.md +0 -0
  811. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/features_to_features/heavy/glue/Readme.md +0 -0
  812. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/features_to_model/__init__.py +0 -0
  813. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/features_to_model/features_to_model.py +0 -0
  814. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/model_to_endpoint/__init__.py +0 -0
  815. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/model_to_endpoint/model_to_endpoint.py +0 -0
  816. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/pandas_transforms/__init__.py +0 -0
  817. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/pandas_transforms/data_to_pandas.py +0 -0
  818. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/pandas_transforms/features_to_pandas.py +0 -0
  819. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/pandas_transforms/pandas_to_data.py +0 -0
  820. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/pandas_transforms/pandas_to_features.py +0 -0
  821. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/pandas_transforms/pandas_to_features_chunked.py +0 -0
  822. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/transforms/transform.py +0 -0
  823. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/views/__init__.py +0 -0
  824. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/views/column_subset_view.py +0 -0
  825. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/views/computation_view.py +0 -0
  826. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/views/create_view.py +0 -0
  827. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/views/display_view.py +0 -0
  828. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/views/inference_view.py +0 -0
  829. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/views/pandas_to_view.py +0 -0
  830. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/views/view.py +0 -0
  831. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/core/views/view_utils.py +0 -0
  832. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/__init__.py +0 -0
  833. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/async_inference.py +0 -0
  834. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/chemprop_shap_utils.py +0 -0
  835. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/chemprop_utils.py +0 -0
  836. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/df_store.py +0 -0
  837. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/fast_inference.py +0 -0
  838. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/feature_space_proximity.py +0 -0
  839. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/fingerprint_proximity.py +0 -0
  840. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/fingerprints.py +0 -0
  841. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/inference.py +0 -0
  842. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/meta_endpoint_dag.py +0 -0
  843. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/parameter_store.py +0 -0
  844. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/proximity.py +0 -0
  845. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/pytorch_utils.py +0 -0
  846. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/residual_features.py +0 -0
  847. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/uq_harness.py +0 -0
  848. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/uq_model_v0.py +0 -0
  849. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/uq_model_v1.py +0 -0
  850. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/uq_model_v2.py +0 -0
  851. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/endpoints/uq_regression.py +0 -0
  852. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/lambda_layer/__init__.py +0 -0
  853. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/lambda_layer/artifact_times.py +0 -0
  854. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/lambda_layer/pipeline_manager.py +0 -0
  855. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/local/__init__.py +0 -0
  856. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/local/data_source.py +0 -0
  857. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/local/endpoint.py +0 -0
  858. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/local/feature_set.py +0 -0
  859. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/local/local_artifact.py +0 -0
  860. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/local/meta.py +0 -0
  861. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/local/model.py +0 -0
  862. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/local/parameter_store.py +0 -0
  863. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/local/storage.py +0 -0
  864. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/chemprop/chemprop.template +0 -0
  865. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/chemprop/requirements.txt +0 -0
  866. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/custom_models/network_security/Readme.md +0 -0
  867. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/custom_models/uq_models/Readme.md +0 -0
  868. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/custom_models/uq_models/bayesian_ridge.template +0 -0
  869. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/custom_models/uq_models/ensemble_xgb.template +0 -0
  870. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/custom_models/uq_models/feature_space_proximity.py +0 -0
  871. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/custom_models/uq_models/gaussian_process.template +0 -0
  872. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/custom_models/uq_models/ngboost.template +0 -0
  873. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/custom_models/uq_models/requirements.txt +0 -0
  874. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/custom_script_example/custom_model_script.py +0 -0
  875. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/custom_script_example/requirements.txt +0 -0
  876. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/meta_endpoint/meta_endpoint.template +0 -0
  877. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/pytorch_model/pytorch.template +0 -0
  878. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/pytorch_model/requirements.txt +0 -0
  879. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/scikit_learn/requirements.txt +0 -0
  880. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/scikit_learn/scikit_learn.template +0 -0
  881. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/script_generation.py +0 -0
  882. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/xgb_model/requirements.txt +0 -0
  883. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/model_scripts/xgb_model/xgb_model.template +0 -0
  884. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/plugin_pages/README.md +0 -0
  885. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/plugin_pages/assets/mc/render.js +0 -0
  886. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/plugin_pages/assets/mc/styles.css +0 -0
  887. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/plugin_pages/components/prediction_plot.py +0 -0
  888. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/plugin_pages/pages/model_comparison_page.py +0 -0
  889. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/plugin_pages/views/model_comparison_view.py +0 -0
  890. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/public_data.py +0 -0
  891. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/repl/__init__.py +0 -0
  892. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/repl/workbench_shell.py +0 -0
  893. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/scripts/bedrock_verify.py +0 -0
  894. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/scripts/check_double_bond_stereo.py +0 -0
  895. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/scripts/df_store.py +0 -0
  896. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/scripts/endpoint_test.py +0 -0
  897. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/scripts/ensemble_sim.py +0 -0
  898. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/scripts/glue_launcher.py +0 -0
  899. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/scripts/lambda_test.py +0 -0
  900. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/scripts/ml_pipeline_batch.py +0 -0
  901. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/scripts/ml_pipeline_launcher.py +0 -0
  902. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/scripts/ml_pipeline_sqs.py +0 -0
  903. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/scripts/monitor_cloud_watch.py +0 -0
  904. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/scripts/redis_expire.py +0 -0
  905. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/scripts/redis_report.py +0 -0
  906. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/scripts/redis_tunnel.py +0 -0
  907. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/scripts/show_config.py +0 -0
  908. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/scripts/training_test.py +0 -0
  909. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/themes/dark/base_css.url +0 -0
  910. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/themes/dark/custom.css +0 -0
  911. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/themes/dark/plotly.json +0 -0
  912. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/themes/light/base_css.url +0 -0
  913. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/themes/light/branding.json +0 -0
  914. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/themes/light/custom.css +0 -0
  915. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/themes/light/plotly.json +0 -0
  916. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/themes/midnight_blue/base_css.url +0 -0
  917. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/themes/midnight_blue/branding.json +0 -0
  918. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/themes/midnight_blue/custom.css +0 -0
  919. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/themes/midnight_blue/plotly.json +0 -0
  920. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/training/__init__.py +0 -0
  921. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/training/chemprop_core.py +0 -0
  922. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/training/chemprop_hpo.py +0 -0
  923. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/training/foundation_models.py +0 -0
  924. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/training/hpo_harness.py +0 -0
  925. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/training/hpo_runner.py +0 -0
  926. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/training/pytorch_core.py +0 -0
  927. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/training/pytorch_hpo.py +0 -0
  928. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/training/splits.py +0 -0
  929. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/training/training_harness.py +0 -0
  930. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/training/validation.py +0 -0
  931. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/training/xgb_core.py +0 -0
  932. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/training/xgb_hpo.py +0 -0
  933. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/__init__.py +0 -0
  934. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/aggregation_nodes.py +0 -0
  935. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/apps/__init__.py +0 -0
  936. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/apps/_serve.py +0 -0
  937. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/apps/pk_explorer.py +0 -0
  938. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/async_endpoint_utils.py +0 -0
  939. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/athena_utils.py +0 -0
  940. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/aws_utils.py +0 -0
  941. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/batch_utils.py +0 -0
  942. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/bosco_utils.py +0 -0
  943. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/bulk_utils.py +0 -0
  944. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/cache.py +0 -0
  945. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/chem_utils/__init__.py +0 -0
  946. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/chem_utils/fingerprints.py +0 -0
  947. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/chem_utils/misc.py +0 -0
  948. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/chem_utils/mol_descriptors.py +0 -0
  949. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/chem_utils/mol_descriptors_3d.py +0 -0
  950. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/chem_utils/mol_descriptors_3d_v2.py +0 -0
  951. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/chem_utils/mol_standardize.py +0 -0
  952. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/chem_utils/mol_tagging.py +0 -0
  953. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/chem_utils/salts.py +0 -0
  954. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/chem_utils/sdf.py +0 -0
  955. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/chem_utils/toxicity.py +0 -0
  956. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/chem_utils/vis.py +0 -0
  957. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/chemprop_utils.py +0 -0
  958. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/cloudwatch_handler.py +0 -0
  959. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/cloudwatch_utils.py +0 -0
  960. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/color_utils.py +0 -0
  961. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/config_manager.py +0 -0
  962. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/contest_utils.py +0 -0
  963. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/cow_puns.py +0 -0
  964. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/dashboard_metrics.py +0 -0
  965. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/dashboard_utils.py +0 -0
  966. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/datetime_utils.py +0 -0
  967. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/deprecated_utils.py +0 -0
  968. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/df_to_endpoint.py +0 -0
  969. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/distribution_stats.py +0 -0
  970. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/ecs_info.py +0 -0
  971. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/endpoint_autoscaling.py +0 -0
  972. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/endpoint_metrics.py +0 -0
  973. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/endpoint_utils.py +0 -0
  974. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/ensemble_simulator.py +0 -0
  975. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/ensemble_utils.py +0 -0
  976. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/execution_environment.py +0 -0
  977. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/extract_model_artifact.py +0 -0
  978. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/feature_endpoint_job.py +0 -0
  979. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/feature_prep.py +0 -0
  980. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/glue_utils.py +0 -0
  981. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/graph_utils.py +0 -0
  982. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/inference_cache_utils.py +0 -0
  983. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/ipython_utils.py +0 -0
  984. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/job_tracker.py +0 -0
  985. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/json_utils.py +0 -0
  986. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/llm_utils.py +0 -0
  987. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/log_utils.py +0 -0
  988. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/markdown_utils.py +0 -0
  989. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/meta_endpoint_dag.py +0 -0
  990. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/metrics_utils.py +0 -0
  991. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/model_comparison.py +0 -0
  992. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/model_utils.py +0 -0
  993. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/monitor_utils.py +0 -0
  994. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/pandas_utils.py +0 -0
  995. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/performance_utils.py +0 -0
  996. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/pipeline_serializer.py +0 -0
  997. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/pipeline_utils.py +0 -0
  998. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/plot_utils.py +0 -0
  999. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/plots/__init__.py +0 -0
  1000. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/plots/hpo.py +0 -0
  1001. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/plots/neighborhood.py +0 -0
  1002. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/plots/pk.py +0 -0
  1003. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/plugin_manager.py +0 -0
  1004. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/prox_utils.py +0 -0
  1005. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/pytorch_utils.py +0 -0
  1006. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/redis_cache.py +0 -0
  1007. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/repl_color_utils.py +0 -0
  1008. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/repl_themes.py +0 -0
  1009. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/repl_utils.py +0 -0
  1010. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/s3_utils.py +0 -0
  1011. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/shap_utils.py +0 -0
  1012. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/shapley_values.py +0 -0
  1013. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/symbols.py +0 -0
  1014. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/synthetic_data_generator.py +0 -0
  1015. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/theme_manager.py +0 -0
  1016. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/training_job_utils.py +0 -0
  1017. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/tree_render.py +0 -0
  1018. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/type_abbrev.py +0 -0
  1019. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/version_drift.py +0 -0
  1020. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/web_utils.py +0 -0
  1021. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/workbench_cache.py +0 -0
  1022. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/workbench_event_bridge.py +0 -0
  1023. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/workbench_logging.py +0 -0
  1024. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/workbench_sqs.py +0 -0
  1025. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/xgboost_local_crossfold.py +0 -0
  1026. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/utils/xgboost_model_utils.py +0 -0
  1027. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/component_interface.py +0 -0
  1028. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/correlation_matrix.py +0 -0
  1029. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/data_details_markdown.py +0 -0
  1030. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/endpoint_metric_plots.py +0 -0
  1031. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/molecule_tooltip.py +0 -0
  1032. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugin_interface.py +0 -0
  1033. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugin_unit_test.py +0 -0
  1034. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugins/ag_table.py +0 -0
  1035. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugins/confusion_explorer.py +0 -0
  1036. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugins/confusion_matrix.py +0 -0
  1037. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugins/confusion_triangle.py +0 -0
  1038. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugins/dashboard_status.py +0 -0
  1039. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugins/data_details.py +0 -0
  1040. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugins/endpoint_details.py +0 -0
  1041. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugins/example_plot.py +0 -0
  1042. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugins/graph_plot.py +0 -0
  1043. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugins/model_details.py +0 -0
  1044. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugins/model_plot.py +0 -0
  1045. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugins/molecule_panel.py +0 -0
  1046. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugins/molecule_viewer.py +0 -0
  1047. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugins/multi_task_alignment_map.py +0 -0
  1048. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugins/scatter_plot.py +0 -0
  1049. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/plugins/shap_summary_plot.py +0 -0
  1050. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/settings_menu.py +0 -0
  1051. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/components/violin_plots.py +0 -0
  1052. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/page_views/contests_page_view.py +0 -0
  1053. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/page_views/data_sources_page_view.py +0 -0
  1054. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/page_views/endpoints_page_view.py +0 -0
  1055. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/page_views/feature_sets_page_view.py +0 -0
  1056. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/page_views/main_page.py +0 -0
  1057. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/page_views/ml_pipelines_page_view.py +0 -0
  1058. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/page_views/models_page_view.py +0 -0
  1059. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/page_views/page_view.py +0 -0
  1060. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/themed_dash.py +0 -0
  1061. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/utils/__init__.py +0 -0
  1062. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/utils/clientside_callbacks.py +0 -0
  1063. {workbench-0.8.485 → workbench-0.8.486}/src/workbench/web_interface/utils/page_callbacks.py +0 -0
  1064. {workbench-0.8.485 → workbench-0.8.486}/src/workbench.egg-info/SOURCES.txt +0 -0
  1065. {workbench-0.8.485 → workbench-0.8.486}/src/workbench.egg-info/dependency_links.txt +0 -0
  1066. {workbench-0.8.485 → workbench-0.8.486}/src/workbench.egg-info/entry_points.txt +0 -0
  1067. {workbench-0.8.485 → workbench-0.8.486}/src/workbench.egg-info/requires.txt +0 -0
  1068. {workbench-0.8.485 → workbench-0.8.486}/src/workbench.egg-info/scm_file_list.json +0 -0
  1069. {workbench-0.8.485 → workbench-0.8.486}/src/workbench.egg-info/top_level.txt +0 -0
  1070. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/create_aqsol_artifacts.py +0 -0
  1071. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/create_aqsol_artifacts_all.py +0 -0
  1072. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/create_aqsol_rt_artifacts.py +0 -0
  1073. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/create_basic_test_artifacts.py +0 -0
  1074. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/create_copy_artifacts.py +0 -0
  1075. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/create_empty_model_group.py +0 -0
  1076. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/create_endpoints_for_timing.py +0 -0
  1077. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/create_graph_artifacts.py +0 -0
  1078. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/create_knn_artifacts.py +0 -0
  1079. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/create_meta_endpoints.py +0 -0
  1080. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/create_proximity_models.py +0 -0
  1081. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/create_quant_regression_artifacts.py +0 -0
  1082. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/create_realtime_endpoint.py +0 -0
  1083. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/create_sagemaker_pipeline_model.py +0 -0
  1084. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/create_training_adjusted_artifacts.py +0 -0
  1085. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/create_uq_compare_models.py +0 -0
  1086. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/create_wine_artifacts.py +0 -0
  1087. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/delete_stress_test_artifacts.py +0 -0
  1088. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/delete_test_artifacts.py +0 -0
  1089. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/hyper_testing.py +0 -0
  1090. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/local_artifacts/create_local_artifacts.py +0 -0
  1091. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/local_artifacts/delete_local_artifacts.py +0 -0
  1092. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/local_artifacts/publish_local_artifacts.py +0 -0
  1093. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/regression_ensemble.py +0 -0
  1094. {workbench-0.8.485 → workbench-0.8.486}/test_artifacts/stress_test_aws.py +0 -0
  1095. {workbench-0.8.485 → workbench-0.8.486}/tests/README.md +0 -0
  1096. {workbench-0.8.485 → workbench-0.8.486}/tests/agent/test_bosco_dispatch.py +0 -0
  1097. {workbench-0.8.485 → workbench-0.8.486}/tests/agent/test_guide_api_references.py +0 -0
  1098. {workbench-0.8.485 → workbench-0.8.486}/tests/agent/test_guide_structure.py +0 -0
  1099. {workbench-0.8.485 → workbench-0.8.486}/tests/agent/test_run_python_log_capture.py +0 -0
  1100. {workbench-0.8.485 → workbench-0.8.486}/tests/agent/test_web_guard.py +0 -0
  1101. {workbench-0.8.485 → workbench-0.8.486}/tests/algorithms/dataframe/test_multi_task_alignment.py +0 -0
  1102. {workbench-0.8.485 → workbench-0.8.486}/tests/algorithms/dataframe/test_proximity_neighbors.py +0 -0
  1103. {workbench-0.8.485 → workbench-0.8.486}/tests/algorithms/dataframe/test_target_landscape.py +0 -0
  1104. {workbench-0.8.485 → workbench-0.8.486}/tests/artifacts/data_source_tests.py +0 -0
  1105. {workbench-0.8.485 → workbench-0.8.486}/tests/artifacts/empty_model_group.py +0 -0
  1106. {workbench-0.8.485 → workbench-0.8.486}/tests/artifacts/featureset_ingest_boundaries.py +0 -0
  1107. {workbench-0.8.485 → workbench-0.8.486}/tests/artifacts/featureset_tests.py +0 -0
  1108. {workbench-0.8.485 → workbench-0.8.486}/tests/artifacts/graph_tests.py +0 -0
  1109. {workbench-0.8.485 → workbench-0.8.486}/tests/artifacts/meta_tests.py +0 -0
  1110. {workbench-0.8.485 → workbench-0.8.486}/tests/artifacts/model_metrics_tests.py +0 -0
  1111. {workbench-0.8.485 → workbench-0.8.486}/tests/artifacts/model_tests.py +0 -0
  1112. {workbench-0.8.485 → workbench-0.8.486}/tests/aws_account/aws_account_clamp_tests.py +0 -0
  1113. {workbench-0.8.485 → workbench-0.8.486}/tests/cached/cached_artifact_tests.py +0 -0
  1114. {workbench-0.8.485 → workbench-0.8.486}/tests/cached/cached_meta_api_tests.py +0 -0
  1115. {workbench-0.8.485 → workbench-0.8.486}/tests/cached/cached_meta_tests.py +0 -0
  1116. {workbench-0.8.485 → workbench-0.8.486}/tests/chem_info/test_complexity_cost_guard.py +0 -0
  1117. {workbench-0.8.485 → workbench-0.8.486}/tests/chem_info/test_conformer_energies.py +0 -0
  1118. {workbench-0.8.485 → workbench-0.8.486}/tests/chem_info/test_descriptors_3d_v2.py +0 -0
  1119. {workbench-0.8.485 → workbench-0.8.486}/tests/chem_info/test_standardization_reference.py +0 -0
  1120. {workbench-0.8.485 → workbench-0.8.486}/tests/chem_info/test_tagging_reference.py +0 -0
  1121. {workbench-0.8.485 → workbench-0.8.486}/tests/chem_info/test_tautomerization.py +0 -0
  1122. {workbench-0.8.485 → workbench-0.8.486}/tests/chem_info/test_vis_diff.py +0 -0
  1123. {workbench-0.8.485 → workbench-0.8.486}/tests/confidence/test_uq_harness.py +0 -0
  1124. {workbench-0.8.485 → workbench-0.8.486}/tests/corner_cases/end_to_end.py +0 -0
  1125. {workbench-0.8.485 → workbench-0.8.486}/tests/df_store/df_store_tests.py +0 -0
  1126. {workbench-0.8.485 → workbench-0.8.486}/tests/df_store/reports_tests.py +0 -0
  1127. {workbench-0.8.485 → workbench-0.8.486}/tests/endpoints/endpoint_tests.py +0 -0
  1128. {workbench-0.8.485 → workbench-0.8.486}/tests/endpoints/inference_cache_tests.py +0 -0
  1129. {workbench-0.8.485 → workbench-0.8.486}/tests/endpoints/meta_endpoint_dag_tests.py +0 -0
  1130. {workbench-0.8.485 → workbench-0.8.486}/tests/endpoints/pytorch_utils_test.py +0 -0
  1131. {workbench-0.8.485 → workbench-0.8.486}/tests/endpoints/test_async_idempotent.py +0 -0
  1132. {workbench-0.8.485 → workbench-0.8.486}/tests/endpoints/test_async_passthrough.py +0 -0
  1133. {workbench-0.8.485 → workbench-0.8.486}/tests/endpoints/test_async_warmup.py +0 -0
  1134. {workbench-0.8.485 → workbench-0.8.486}/tests/endpoints/test_capture_inference_metrics.py +0 -0
  1135. {workbench-0.8.485 → workbench-0.8.486}/tests/endpoints/test_cold_start_retry.py +0 -0
  1136. {workbench-0.8.485 → workbench-0.8.486}/tests/endpoints/test_multi_target_remap.py +0 -0
  1137. {workbench-0.8.485 → workbench-0.8.486}/tests/feature_endpoints/test_3d_complexity_skips.py +0 -0
  1138. {workbench-0.8.485 → workbench-0.8.486}/tests/feature_endpoints/test_3d_corner_cases.py +0 -0
  1139. {workbench-0.8.485 → workbench-0.8.486}/tests/feature_endpoints/test_3d_timing.py +0 -0
  1140. {workbench-0.8.485 → workbench-0.8.486}/tests/feature_endpoints/test_smiles_to_3d_v1.py +0 -0
  1141. {workbench-0.8.485 → workbench-0.8.486}/tests/lambda_layer/test_layer_dependencies.py +0 -0
  1142. {workbench-0.8.485 → workbench-0.8.486}/tests/local/test_aws_parity.py +0 -0
  1143. {workbench-0.8.485 → workbench-0.8.486}/tests/local/test_feature_endpoint_job.py +0 -0
  1144. {workbench-0.8.485 → workbench-0.8.486}/tests/local/test_job_tracker.py +0 -0
  1145. {workbench-0.8.485 → workbench-0.8.486}/tests/local/test_local_artifacts.py +0 -0
  1146. {workbench-0.8.485 → workbench-0.8.486}/tests/local/test_local_endpoint.py +0 -0
  1147. {workbench-0.8.485 → workbench-0.8.486}/tests/local/test_local_model.py +0 -0
  1148. {workbench-0.8.485 → workbench-0.8.486}/tests/local/test_local_parameter_store.py +0 -0
  1149. {workbench-0.8.485 → workbench-0.8.486}/tests/local/test_local_prox.py +0 -0
  1150. {workbench-0.8.485 → workbench-0.8.486}/tests/local/test_publish.py +0 -0
  1151. {workbench-0.8.485 → workbench-0.8.486}/tests/pandas_tests/test_convert_column_types.py +0 -0
  1152. {workbench-0.8.485 → workbench-0.8.486}/tests/pandas_tests/test_drift.py +0 -0
  1153. {workbench-0.8.485 → workbench-0.8.486}/tests/pandas_tests/test_multi_task.py +0 -0
  1154. {workbench-0.8.485 → workbench-0.8.486}/tests/pandas_tests/test_target_health.py +0 -0
  1155. {workbench-0.8.485 → workbench-0.8.486}/tests/pandas_tests/test_temporal_split.py +0 -0
  1156. {workbench-0.8.485 → workbench-0.8.486}/tests/parameter_store/param_store_tests.py +0 -0
  1157. {workbench-0.8.485 → workbench-0.8.486}/tests/pipelines/test_pipeline_launcher.py +0 -0
  1158. {workbench-0.8.485 → workbench-0.8.486}/tests/pipelines/test_pipeline_manager.py +0 -0
  1159. {workbench-0.8.485 → workbench-0.8.486}/tests/pipelines/test_pipeline_meta.py +0 -0
  1160. {workbench-0.8.485 → workbench-0.8.486}/tests/pipelines/test_pipeline_serializer.py +0 -0
  1161. {workbench-0.8.485 → workbench-0.8.486}/tests/plugin_tests/crashing_plugin.py +0 -0
  1162. {workbench-0.8.485 → workbench-0.8.486}/tests/pytorch/pytorch_hello.py +0 -0
  1163. {workbench-0.8.485 → workbench-0.8.486}/tests/requirements-dev.txt +0 -0
  1164. {workbench-0.8.485 → workbench-0.8.486}/tests/specific/capital_tests.py +0 -0
  1165. {workbench-0.8.485 → workbench-0.8.486}/tests/specific/column_changes.py +0 -0
  1166. {workbench-0.8.485 → workbench-0.8.486}/tests/specific/config_manager.py +0 -0
  1167. {workbench-0.8.485 → workbench-0.8.486}/tests/specific/deletion_tests.py +0 -0
  1168. {workbench-0.8.485 → workbench-0.8.486}/tests/specific/feature_ingest_multiprocessing_test.py +0 -0
  1169. {workbench-0.8.485 → workbench-0.8.486}/tests/specific/public_data_test.py +0 -0
  1170. {workbench-0.8.485 → workbench-0.8.486}/tests/specific/shap_tests.py +0 -0
  1171. {workbench-0.8.485 → workbench-0.8.486}/tests/specific/tag_tests.py +0 -0
  1172. {workbench-0.8.485 → workbench-0.8.486}/tests/training/chemprop_hpo_test.py +0 -0
  1173. {workbench-0.8.485 → workbench-0.8.486}/tests/training/conftest.py +0 -0
  1174. {workbench-0.8.485 → workbench-0.8.486}/tests/training/hpo_harness_test.py +0 -0
  1175. {workbench-0.8.485 → workbench-0.8.486}/tests/training/hpo_ray_trials.py +0 -0
  1176. {workbench-0.8.485 → workbench-0.8.486}/tests/training/hpo_runner_test.py +0 -0
  1177. {workbench-0.8.485 → workbench-0.8.486}/tests/training/instance_ladder_test.py +0 -0
  1178. {workbench-0.8.485 → workbench-0.8.486}/tests/training/pytorch_core_test.py +0 -0
  1179. {workbench-0.8.485 → workbench-0.8.486}/tests/training/pytorch_hpo_test.py +0 -0
  1180. {workbench-0.8.485 → workbench-0.8.486}/tests/training/script_generation_test.py +0 -0
  1181. {workbench-0.8.485 → workbench-0.8.486}/tests/training/search_space_test.py +0 -0
  1182. {workbench-0.8.485 → workbench-0.8.486}/tests/training/splits_test.py +0 -0
  1183. {workbench-0.8.485 → workbench-0.8.486}/tests/training/test_analog_holdout_split.py +0 -0
  1184. {workbench-0.8.485 → workbench-0.8.486}/tests/training/xgb_hpo_test.py +0 -0
  1185. {workbench-0.8.485 → workbench-0.8.486}/tests/transforms/data_to_data_tests.py +0 -0
  1186. {workbench-0.8.485 → workbench-0.8.486}/tests/transforms/data_to_features_tests.py +0 -0
  1187. {workbench-0.8.485 → workbench-0.8.486}/tests/transforms/features_to_model_tests.py +0 -0
  1188. {workbench-0.8.485 → workbench-0.8.486}/tests/transforms/model_to_endpoint_tests.py +0 -0
  1189. {workbench-0.8.485 → workbench-0.8.486}/tests/transforms/pandas_to_data_tests.py +0 -0
  1190. {workbench-0.8.485 → workbench-0.8.486}/tests/transforms/pandas_to_features_test.py +0 -0
  1191. {workbench-0.8.485 → workbench-0.8.486}/tests/uq/__init__.py +0 -0
  1192. {workbench-0.8.485 → workbench-0.8.486}/tests/uq/conftest.py +0 -0
  1193. {workbench-0.8.485 → workbench-0.8.486}/tests/uq/fixtures.py +0 -0
  1194. {workbench-0.8.485 → workbench-0.8.486}/tests/uq/test_backend_selection.py +0 -0
  1195. {workbench-0.8.485 → workbench-0.8.486}/tests/uq/test_conformal_calibration.py +0 -0
  1196. {workbench-0.8.485 → workbench-0.8.486}/tests/uq/test_multi_target_uq.py +0 -0
  1197. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_apps_pk_explorer.py +0 -0
  1198. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_bootstrap_metrics.py +0 -0
  1199. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_capture_content_types.py +0 -0
  1200. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_ensemble_simulator.py +0 -0
  1201. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_ensemble_utils.py +0 -0
  1202. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_execution_environment.py +0 -0
  1203. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_hpo_importance.py +0 -0
  1204. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_hpo_search_space.py +0 -0
  1205. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_llm_provider.py +0 -0
  1206. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_markdown_display.py +0 -0
  1207. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_model_artifacts.py +0 -0
  1208. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_model_comparison.py +0 -0
  1209. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_placement_metrics.py +0 -0
  1210. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_plots_hpo.py +0 -0
  1211. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_plots_pk.py +0 -0
  1212. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_sample_weights.py +0 -0
  1213. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_soft_threshold_rae.py +0 -0
  1214. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_training_utilization.py +0 -0
  1215. {workbench-0.8.485 → workbench-0.8.486}/tests/utils/test_tree_render.py +0 -0
  1216. {workbench-0.8.485 → workbench-0.8.486}/tests/validation/chemprop_validation_test.py +0 -0
  1217. {workbench-0.8.485 → workbench-0.8.486}/tests/validation/pytorch_validation_test.py +0 -0
  1218. {workbench-0.8.485 → workbench-0.8.486}/tests/validation/row_roles_test.py +0 -0
  1219. {workbench-0.8.485 → workbench-0.8.486}/tests/validation/validation_split_test.py +0 -0
  1220. {workbench-0.8.485 → workbench-0.8.486}/tests/validation/xgb_validation_test.py +0 -0
  1221. {workbench-0.8.485 → workbench-0.8.486}/tests/views/view_tests.py +0 -0
  1222. {workbench-0.8.485 → workbench-0.8.486}/tests/views/view_tests_complex.py +0 -0
  1223. {workbench-0.8.485 → workbench-0.8.486}/tests/web_components/confusion_matrix_test.py +0 -0
  1224. {workbench-0.8.485 → workbench-0.8.486}/tests/web_components/correlation_matrix_test.py +0 -0
  1225. {workbench-0.8.485 → workbench-0.8.486}/tests/web_components/graph_plot_test.py +0 -0
  1226. {workbench-0.8.485 → workbench-0.8.486}/tests/web_components/plugin_interface_test.py +0 -0
  1227. {workbench-0.8.485 → workbench-0.8.486}/tests/web_components/scatter_plot_test.py +0 -0
  1228. {workbench-0.8.485 → workbench-0.8.486}/tox.ini +0 -0
  1229. {workbench-0.8.485 → workbench-0.8.486}/ui_testing/assets/custom.css +0 -0
  1230. {workbench-0.8.485 → workbench-0.8.486}/ui_testing/table_comparison.py +0 -0
  1231. {workbench-0.8.485 → workbench-0.8.486}/ui_testing/theme_switching.py +0 -0
  1232. {workbench-0.8.485 → workbench-0.8.486}/ui_testing/theme_switching_2.py +0 -0
  1233. {workbench-0.8.485 → workbench-0.8.486}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: workbench
3
- Version: 0.8.485
3
+ Version: 0.8.486
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
@@ -29,7 +29,7 @@ RUN --mount=type=cache,target=/root/.cache/uv \
29
29
  -r /tmp/requirements.lock
30
30
 
31
31
  # Layer 2: Workbench only (changes often, ~20 MB)
32
- ARG WORKBENCH_VERSION=0.8.484
32
+ ARG WORKBENCH_VERSION=0.8.485
33
33
  RUN pip install --no-deps "workbench==${WORKBENCH_VERSION}"
34
34
 
35
35
  # Copy app code and configuration (after pip installs to avoid cache invalidation)
@@ -26,7 +26,7 @@ WORKBENCH_ROOT="$(cd "$SCRIPT_DIR/.." &> /dev/null && pwd)"
26
26
  AWS_ACCOUNT_ID="507740646243"
27
27
  REGION_LIST=("us-east-1" "us-west-2")
28
28
  PYTHON_VERSION="3.12"
29
- WORKBENCH_VERSION=0.8.484 # keep in lockstep with the image's ARG WORKBENCH_VERSION
29
+ WORKBENCH_VERSION=0.8.485 # keep in lockstep with the image's ARG WORKBENCH_VERSION
30
30
  LAMBDA_ARCH="manylinux2014_x86_64"
31
31
 
32
32
  GREEN='\033[0;32m'
@@ -33,7 +33,7 @@ COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/pytho
33
33
  COPY --from=builder /usr/local/bin /usr/local/bin
34
34
 
35
35
  # Layer 2: Workbench — rebuilds per version bump, ~20 MB delta.
36
- ARG WORKBENCH_VERSION=0.8.484
36
+ ARG WORKBENCH_VERSION=0.8.485
37
37
  RUN pip install --no-deps "workbench==${WORKBENCH_VERSION}"
38
38
 
39
39
  # Add the shared serve script
@@ -32,5 +32,5 @@ COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/pytho
32
32
  COPY --from=builder /usr/local/bin /usr/local/bin
33
33
 
34
34
  # Layer 2: Workbench — rebuilds per version bump, ~20 MB delta.
35
- ARG WORKBENCH_VERSION=0.8.484
35
+ ARG WORKBENCH_VERSION=0.8.485
36
36
  RUN pip install --no-deps "workbench==${WORKBENCH_VERSION}"
@@ -46,7 +46,7 @@ COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/pytho
46
46
  COPY --from=builder /usr/local/bin /usr/local/bin
47
47
 
48
48
  # Layer 2: Workbench (changes often, small layer)
49
- ARG WORKBENCH_VERSION=0.8.484
49
+ ARG WORKBENCH_VERSION=0.8.485
50
50
  RUN pip install --no-deps "workbench==${WORKBENCH_VERSION}"
51
51
 
52
52
  # Layer 3: App code (tiny, changes rarely)
@@ -43,7 +43,7 @@ COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/pytho
43
43
  COPY --from=builder /usr/local/bin /usr/local/bin
44
44
 
45
45
  # Layer 2: Workbench — rebuilds per version bump, ~20 MB delta.
46
- ARG WORKBENCH_VERSION=0.8.484
46
+ ARG WORKBENCH_VERSION=0.8.485
47
47
  RUN pip install --no-deps "workbench==${WORKBENCH_VERSION}"
48
48
 
49
49
  # Add the shared serve script
@@ -39,5 +39,5 @@ RUN --mount=type=cache,target=/root/.cache/uv \
39
39
  -r /tmp/requirements.lock
40
40
 
41
41
  # Layer 2: Workbench — rebuilds per version bump, ~20 MB delta.
42
- ARG WORKBENCH_VERSION=0.8.484
42
+ ARG WORKBENCH_VERSION=0.8.485
43
43
  RUN pip install --no-deps "workbench==${WORKBENCH_VERSION}"
@@ -19,7 +19,7 @@ CAPTURE_NAME = "ts_20200211"
19
19
 
20
20
  # Columns to compare
21
21
  COMPARE_COLS = ["prediction", "prediction_std", "confidence"]
22
- ID_COL = "udm_mol_bat_id"
22
+ ID_COL = "compound_id"
23
23
 
24
24
 
25
25
  def main():
@@ -57,7 +57,7 @@ def main():
57
57
 
58
58
  # Auto-detect id / target / fingerprint columns
59
59
  cols = list(df.columns)
60
- id_candidates = [c for c in cols if c.lower() in ("id", "udm_mol_bat_id", "molregno", "compound_id")]
60
+ id_candidates = [c for c in cols if c.lower() in ("id", "molregno", "compound_id")]
61
61
  id_column = id_candidates[0] if id_candidates else cols[0]
62
62
  target_col = "logp" if "logp" in cols else next((c for c in cols if "logp" in c.lower()), None)
63
63
  if target_col is None:
@@ -24,4 +24,4 @@ old_df = old_df[~old_df["smiles"].isin([old_error_smiles_1, old_error_smiles_2])
24
24
  new_df = new_df[~new_df["smiles"].isin([old_error_smiles_1, old_error_smiles_2])]
25
25
 
26
26
  # Compare the dataframes
27
- comparison = compare_dataframes(old_df, new_df, ["udm_mol_bat_id", "smiles"])
27
+ comparison = compare_dataframes(old_df, new_df, ["compound_id", "smiles"])
@@ -23,18 +23,21 @@ validate_multi_task_data(df, target_columns=["logs", "logd"], id_column="id")
23
23
  several sources gets all its targets on one row. `merge_on_smiles=True` joins external
24
24
  data with no shared id namespace.
25
25
  - **`pull_multi_task_data`** — the same, sourced from FeatureSets rather than frames.
26
- Each source takes a `target_info` (a list of columns or a `{src_col: output_col}`
27
- rename map) and an optional `metadata` list. Metadata columns pass through as-named,
28
- per source (NaN where that source has no row), but are not tasks. A column listed by
29
- several sources collapses to one, holding the first non-NaN value per row.
26
+ Each source takes a `target_info`: a list of columns or a `{src_col: output_col}`
27
+ rename map. Only columns every source has survive as shared features, so a public
28
+ source without `project_code` drops it for every row. List such columns in
29
+ `metadata`: each is taken from whichever sources have it (NaN elsewhere), collapses
30
+ to the first non-NaN value per row, and logs conflicting values.
30
31
 
31
32
  ```python
32
33
  df = pull_multi_task_data(
33
34
  {
34
- "logd_f1": {"target_info": {"udm_asy_res_value": "logd"}, "metadata": ["udm_asy_res_qualifier"]},
35
- "pka_a1_f1": {"target_info": {"udm_asy_res_value": "pka_a1"}},
35
+ "logd_f1": {"target_info": {"assay_value": "logd"}},
36
+ "pka_a1_f1": {"target_info": {"assay_value": "pka_a1"}},
36
37
  },
37
- id_column="udm_mol_bat_id",
38
+ {"logp_public": {"target_info": ["logp"], "src_id_col": "id"}},
39
+ id_column="compound_id",
40
+ metadata=["project_code"],
38
41
  )
39
42
  ```
40
43
  - **`validate_multi_task_data`** — null/duplicate ids, missing smiles, empty targets,
@@ -195,7 +195,9 @@ def combine_multi_task_data(
195
195
  for df in dataframes:
196
196
  for col in df.columns:
197
197
  if col not in col_dtypes and not df[col].isna().all():
198
- col_dtypes[col] = df[col].dtype
198
+ # These dtypes fill all-NA columns, so int/bool map to their nullable forms
199
+ dtype = df[col].dtype
200
+ col_dtypes[col] = {"i": "Int64", "u": "UInt64", "b": "boolean"}.get(dtype.kind, dtype)
199
201
 
200
202
  aligned_dfs = []
201
203
  for df, targets, passthrough in zip(dataframes, target_columns, passthrough_columns):
@@ -229,7 +231,12 @@ def combine_multi_task_data(
229
231
  agg_dict = {c: "mean" for c in numeric_cols}
230
232
  agg_dict.update({c: "max" for c in date_cols})
231
233
  agg_dict.update({c: "first" for c in other_cols})
232
- result = result.groupby(merge_key, as_index=False).agg(agg_dict)
234
+ grouped = result.groupby(merge_key)
235
+ for c in [p for p in all_passthrough if p in other_cols]:
236
+ n_conflict = (grouped[c].nunique() > 1).sum()
237
+ if n_conflict:
238
+ log.warning(f"'{c}': {n_conflict} molecules have conflicting values; keeping the first")
239
+ result = grouped.agg(agg_dict).reset_index()
233
240
  log.info(f"Collapsing {n_before} rows -> {len(result)} ({len(dup_ids)} molecules appear in multiple sources)")
234
241
 
235
242
  # --- Step 3b: Drop rows with no supervision ---
@@ -280,6 +287,7 @@ def pull_multi_task_data(
280
287
  smiles_based_sources: dict = None,
281
288
  id_column: str = "id",
282
289
  date_col: str | None = None,
290
+ metadata: list[str] | None = None,
283
291
  ) -> pd.DataFrame:
284
292
  """Pull and combine multiple FeatureSets into a multi-task DataFrame.
285
293
 
@@ -291,7 +299,6 @@ def pull_multi_task_data(
291
299
  Each source config is a dict shaped like:
292
300
  {
293
301
  "target_info": {<src_col>: <output_col>, ...} | [<col>, ...] # required; rename map or as-named list
294
- "metadata": [<col>, ...] # optional; non-target columns to keep
295
302
  "src_id_col": "<non_default_id_column>" # optional; FS id column, if not id_column
296
303
  "df": <DataFrame> # optional; use this frame, not the FS
297
304
  }
@@ -300,12 +307,6 @@ def pull_multi_task_data(
300
307
  per-source date column and the log line), so any source already in hand —
301
308
  a DataSource pull, a local file — can join the merge.
302
309
 
303
- Metadata columns pass through as-named and merge like targets (NaN for rows
304
- the source doesn't cover) but are not tasks: no target diagnostics, and they
305
- don't keep an otherwise target-less row alive. A column listed by several
306
- sources collapses to one, holding the first non-NaN value per row (in source
307
- order).
308
-
309
310
  Args:
310
311
  id_based_sources: Mapping from FeatureSet name to source config.
311
312
  Primary task convention: the first entry is treated as primary by
@@ -314,7 +315,7 @@ def pull_multi_task_data(
314
315
  on canonical SMILES rather than id_column. Defaults to None / empty.
315
316
  id_column: Canonical id column name across the id-based sources.
316
317
  Defaults to "id".
317
- date_col: Optional name of a per-source date column (e.g. "udm_asy_date")
318
+ date_col: Optional name of a per-source date column (e.g. "assay_date")
318
319
  shared across all sources. When set, each source's date is carried
319
320
  through the merge as a private per-source column and then collapsed
320
321
  post-merge as the row-wise max into the canonical `date_col`. This
@@ -330,6 +331,12 @@ def pull_multi_task_data(
330
331
  (no special date handling — `date_col` would flow through as a
331
332
  shared feature and collapse to an arbitrary "first" value across
332
333
  sources, which is unsafe for temporal splits).
334
+ metadata: Optional non-target columns to keep in the output, taken from
335
+ every source that has them. Unlike shared features, they survive a
336
+ source that lacks them (e.g. public data), which contributes NaN.
337
+ Each collapses to the first non-NaN value per row, in source order,
338
+ and conflicting values are logged. Raises if a column is in no
339
+ source. Defaults to None.
333
340
 
334
341
  Returns:
335
342
  Combined multi-task DataFrame from `combine_multi_task_data`, with all
@@ -340,6 +347,7 @@ def pull_multi_task_data(
340
347
  from workbench.api import FeatureSet
341
348
 
342
349
  smiles_based_sources = smiles_based_sources or {}
350
+ metadata = metadata or []
343
351
 
344
352
  def _pull_and_normalize(
345
353
  fs_name: str, fs_config: dict, date_required: bool = True
@@ -367,7 +375,7 @@ def pull_multi_task_data(
367
375
  target_cols = list(target_info)
368
376
 
369
377
  # Metadata rides the merge as passthrough columns
370
- passthrough_cols: list[str] = list(fs_config.get("metadata", []))
378
+ passthrough_cols = [c for c in metadata if c in df.columns]
371
379
 
372
380
  # Carry per-source date through the merge as a private, source-specific
373
381
  # column. If left as a shared feature, the outer-join collapse would
@@ -426,6 +434,10 @@ def pull_multi_task_data(
426
434
  merged_targets.extend(target_cols)
427
435
  merged_passthrough.extend(p for p in passthrough_cols if p not in merged_passthrough)
428
436
 
437
+ missing_metadata = [c for c in metadata if c not in merged.columns]
438
+ if missing_metadata:
439
+ raise ValueError(f"Metadata columns not found in any source: {missing_metadata}")
440
+
429
441
  # Synthesize the canonical date as the row-wise max of all per-source
430
442
  # dates. Holding out on the latest date across any task ensures no future
431
443
  # information leaks into training through any auxiliary task.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: workbench
3
- Version: 0.8.485
3
+ Version: 0.8.486
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
@@ -1,7 +1,7 @@
1
1
  {
2
- "tag": "0.8.485",
2
+ "tag": "0.8.486",
3
3
  "distance": 0,
4
- "node": "g5329bcb756374720428a97d10a048fee6e63b65f",
4
+ "node": "g4b8704c0466eee669a576a30ca92ba9837bab1dc",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-09-28"
@@ -8,6 +8,7 @@ temporal-date handling — in particular the id-strict / smiles-lenient rule for
8
8
  source that lacks the date column.
9
9
  """
10
10
 
11
+ import logging
11
12
  import sys
12
13
  import types
13
14
 
@@ -180,21 +181,21 @@ def test_combine_smiles_merge():
180
181
  # validate_multi_task_data
181
182
  # ----------------------------------------------------------------------------
182
183
  def test_validate_clean_passes():
183
- df = pd.DataFrame({"udm_mol_bat_id": ["1", "2", "3"], "smiles": ["CC", "CCC", "CCCC"], "t": [1.0, np.nan, 3.0]})
184
+ df = pd.DataFrame({"compound_id": ["1", "2", "3"], "smiles": ["CC", "CCC", "CCCC"], "t": [1.0, np.nan, 3.0]})
184
185
  # Should not raise
185
- validate_multi_task_data(df, ["t"], id_column="udm_mol_bat_id")
186
+ validate_multi_task_data(df, ["t"], id_column="compound_id")
186
187
 
187
188
 
188
189
  def test_validate_duplicate_ids_raise():
189
- df = pd.DataFrame({"udm_mol_bat_id": ["1", "1"], "smiles": ["CC", "CCC"], "t": [1.0, 2.0]})
190
+ df = pd.DataFrame({"compound_id": ["1", "1"], "smiles": ["CC", "CCC"], "t": [1.0, 2.0]})
190
191
  with pytest.raises(ValueError, match="duplicate"):
191
- validate_multi_task_data(df, ["t"], id_column="udm_mol_bat_id")
192
+ validate_multi_task_data(df, ["t"], id_column="compound_id")
192
193
 
193
194
 
194
195
  def test_validate_missing_target_raises():
195
- df = pd.DataFrame({"udm_mol_bat_id": ["1", "2"], "smiles": ["CC", "CCC"], "t": [1.0, 2.0]})
196
+ df = pd.DataFrame({"compound_id": ["1", "2"], "smiles": ["CC", "CCC"], "t": [1.0, 2.0]})
196
197
  with pytest.raises(ValueError, match="missing"):
197
- validate_multi_task_data(df, ["t", "does_not_exist"], id_column="udm_mol_bat_id")
198
+ validate_multi_task_data(df, ["t", "does_not_exist"], id_column="compound_id")
198
199
 
199
200
 
200
201
  # ----------------------------------------------------------------------------
@@ -205,18 +206,18 @@ def test_pull_date_synthesis_row_wise_max(monkeypatch):
205
206
  frames = {
206
207
  "src_a": pd.DataFrame(
207
208
  {
208
- "udm_mol_bat_id": ["1", "2"],
209
+ "compound_id": ["1", "2"],
209
210
  "smiles": ["CC", "CCC"],
210
211
  "ta": [10.0, 20.0],
211
- "udm_asy_date": ["2024-01-01", "2025-12-01"],
212
+ "assay_date": ["2024-01-01", "2025-12-01"],
212
213
  }
213
214
  ),
214
215
  "src_b": pd.DataFrame(
215
216
  {
216
- "udm_mol_bat_id": ["2", "3"],
217
+ "compound_id": ["2", "3"],
217
218
  "smiles": ["CCC", "CCCC"],
218
219
  "tb": [30.0, 40.0],
219
- "udm_asy_date": ["2025-12-31", "2023-01-01"],
220
+ "assay_date": ["2025-12-31", "2023-01-01"],
220
221
  }
221
222
  ),
222
223
  }
@@ -224,14 +225,14 @@ def test_pull_date_synthesis_row_wise_max(monkeypatch):
224
225
 
225
226
  out = pull_multi_task_data(
226
227
  {"src_a": {"target_info": ["ta"]}, "src_b": {"target_info": ["tb"]}},
227
- id_column="udm_mol_bat_id",
228
- date_col="udm_asy_date",
228
+ id_column="compound_id",
229
+ date_col="assay_date",
229
230
  )
230
231
 
231
232
  # Synthesized date is a plain YYYY-MM-DD string (not datetime64) so it stores
232
233
  # verbatim via PandasToFeatures and round-trips through a tz-naive temporal split.
233
- assert out["udm_asy_date"].dtype == object
234
- dates = dict(zip(out["udm_mol_bat_id"], out["udm_asy_date"]))
234
+ assert out["assay_date"].dtype == object
235
+ dates = dict(zip(out["compound_id"], out["assay_date"]))
235
236
  # id 2 is in both sources -> max(2025-12-01, 2025-12-31) = 2025-12-31
236
237
  assert dates["2"] == "2025-12-31"
237
238
  assert dates["1"] == "2024-01-01"
@@ -243,16 +244,16 @@ def test_pull_date_synthesis_row_wise_max(monkeypatch):
243
244
  def test_pull_id_source_missing_date_raises(monkeypatch):
244
245
  """An ID-based (internal) source missing date_col fails loudly — likely a typo."""
245
246
  frames = {
246
- "src_a": pd.DataFrame({"udm_mol_bat_id": ["1"], "smiles": ["CC"], "ta": [1.0], "udm_asy_date": ["2024-01-01"]}),
247
- "src_no_date": pd.DataFrame({"udm_mol_bat_id": ["1"], "smiles": ["CC"], "tb": [2.0]}),
247
+ "src_a": pd.DataFrame({"compound_id": ["1"], "smiles": ["CC"], "ta": [1.0], "assay_date": ["2024-01-01"]}),
248
+ "src_no_date": pd.DataFrame({"compound_id": ["1"], "smiles": ["CC"], "tb": [2.0]}),
248
249
  }
249
250
  _install_fake_feature_set(monkeypatch, frames)
250
251
 
251
252
  with pytest.raises(ValueError, match="missing required date_col"):
252
253
  pull_multi_task_data(
253
254
  {"src_a": {"target_info": ["ta"]}, "src_no_date": {"target_info": ["tb"]}},
254
- id_column="udm_mol_bat_id",
255
- date_col="udm_asy_date",
255
+ id_column="compound_id",
256
+ date_col="assay_date",
256
257
  )
257
258
 
258
259
 
@@ -264,13 +265,13 @@ def test_pull_smiles_source_missing_date_is_training(monkeypatch):
264
265
  frames = {
265
266
  "ppb": pd.DataFrame(
266
267
  {
267
- "udm_mol_bat_id": ["1", "2"],
268
+ "compound_id": ["1", "2"],
268
269
  "smiles": ["CCO", "CCC"],
269
270
  "ppb_human": [10.0, 20.0],
270
- "udm_asy_date": ["2024-01-01", "2026-01-01"], # id 2 is post-cutoff
271
+ "assay_date": ["2024-01-01", "2026-01-01"], # id 2 is post-cutoff
271
272
  }
272
273
  ),
273
- # public LogP: 'id' identifier, no udm_asy_date
274
+ # public LogP: 'id' identifier, no assay_date
274
275
  "logp_public": pd.DataFrame(
275
276
  {"id": ["a", "b", "c"], "smiles": ["CCO", "CCCC", "CCCCC"], "logp": [1.0, 2.0, 3.0]}
276
277
  ),
@@ -280,91 +281,84 @@ def test_pull_smiles_source_missing_date_is_training(monkeypatch):
280
281
  out = pull_multi_task_data(
281
282
  {"ppb": {"target_info": ["ppb_human"]}},
282
283
  {"logp_public": {"target_info": ["logp"], "src_id_col": "id"}},
283
- id_column="udm_mol_bat_id",
284
- date_col="udm_asy_date",
284
+ id_column="compound_id",
285
+ date_col="assay_date",
285
286
  )
286
287
 
287
288
  # Public-only molecules (CCCC, CCCCC) have no date -> NaT
288
289
  public_only = out[out["logp"].notna() & out["ppb_human"].isna()]
289
290
  assert len(public_only) == 2
290
- assert public_only["udm_asy_date"].isna().all()
291
+ assert public_only["assay_date"].isna().all()
291
292
 
292
293
  # The CCO molecule overlaps the internal compound -> carries the internal date
293
294
  cco = out[out["smiles"].str.contains("O", na=False)].iloc[0]
294
295
  assert cco["ppb_human"] == 10.0 and cco["logp"] == 1.0
295
- assert pd.to_datetime(cco["udm_asy_date"]) == pd.Timestamp("2024-01-01")
296
+ assert pd.to_datetime(cco["assay_date"]) == pd.Timestamp("2024-01-01")
296
297
 
297
298
  # Temporal split: only the post-cutoff internal compound is held out; the
298
299
  # date-less public rows fall to the training side (NaT is neither <= nor > cutoff).
299
- _train, holdout = temporal_split(out, "udm_asy_date", end_date="2025-10-17")
300
- assert set(holdout["udm_mol_bat_id"]) == {"2"}
300
+ _train, holdout = temporal_split(out, "assay_date", end_date="2025-10-17")
301
+ assert set(holdout["compound_id"]) == {"2"}
301
302
 
302
303
 
303
304
  # ----------------------------------------------------------------------------
304
305
  # pull_multi_task_data — metadata columns
305
306
  # ----------------------------------------------------------------------------
306
- def test_pull_metadata_columns(monkeypatch):
307
- """Per-source metadata survives the merge without becoming a task."""
307
+ def test_pull_metadata_coalesces_across_sources(monkeypatch, caplog):
308
+ """Metadata from every source collapses to one column: first non-NaN, in source order, conflicts logged."""
308
309
  frames = {
309
310
  "src_a": pd.DataFrame(
310
- {"udm_mol_bat_id": ["1", "2"], "smiles": ["CC", "CCC"], "ta": [1.0, 2.0], "qual_a": ["=", ">"]}
311
+ {"compound_id": ["1", "2"], "smiles": ["CC", "CCC"], "ta": [1.0, 2.0], "qual": ["=", ">"], "n": [5, 6]}
311
312
  ),
312
313
  "src_b": pd.DataFrame(
313
- {"udm_mol_bat_id": ["2", "3"], "smiles": ["CCC", "CCCC"], "tb": [3.0, 4.0], "qual_b": ["<", "="]}
314
+ {"compound_id": ["2", "3"], "smiles": ["CCC", "CCCC"], "tb": [3.0, 4.0], "qual": ["<", "="]}
314
315
  ),
315
316
  }
316
317
  _install_fake_feature_set(monkeypatch, frames)
318
+ # workbench logger has propagate=False, so attach caplog's handler directly.
319
+ monkeypatch.setattr(logging.getLogger("workbench"), "handlers", [caplog.handler])
317
320
 
318
321
  out = pull_multi_task_data(
319
- {
320
- "src_a": {"target_info": ["ta"], "metadata": ["qual_a"]},
321
- "src_b": {"target_info": ["tb"], "metadata": ["qual_b"]},
322
- },
323
- id_column="udm_mol_bat_id",
322
+ {"src_a": {"target_info": ["ta"]}, "src_b": {"target_info": ["tb"]}},
323
+ id_column="compound_id",
324
+ metadata=["qual", "n"],
324
325
  )
325
326
 
326
- rows = out.set_index("udm_mol_bat_id")
327
- assert rows.loc["1", "qual_a"] == "=" and pd.isna(rows.loc["1", "qual_b"])
328
- assert rows.loc["2", "qual_a"] == ">" and rows.loc["2", "qual_b"] == "<"
329
- assert pd.isna(rows.loc["3", "qual_a"]) and rows.loc["3", "qual_b"] == "="
327
+ rows = out.set_index("compound_id")
328
+ assert list(rows["qual"]) == ["=", ">", "="]
329
+ # 'n' is only in src_a: it survives the merge (a shared feature would be dropped), NaN for id 3
330
+ assert rows.loc["1", "n"] == 5 and rows.loc["2", "n"] == 6 and pd.isna(rows.loc["3", "n"])
331
+ # id 2's sources disagree on 'qual', so the conflict is logged
332
+ assert "'qual': 1 molecules have conflicting values" in caplog.text
330
333
 
331
334
 
332
- def test_pull_metadata_shared_name_coalesces(monkeypatch):
333
- """Metadata listed by several sources collapses to one column: first non-NaN, in source order."""
335
+ def test_pull_metadata_survives_public_source(monkeypatch):
336
+ """A SMILES-based source lacking a metadata column keeps the internal values, NaN for public-only rows."""
337
+ pytest.importorskip("rdkit") # the smiles pass standardizes SMILES
334
338
  frames = {
335
- "src_a": pd.DataFrame(
336
- {"udm_mol_bat_id": ["1", "2"], "smiles": ["CC", "CCC"], "ta": [1.0, 2.0], "qual": ["=", ">"], "n": [5, 6]}
337
- ),
338
- "src_b": pd.DataFrame(
339
- {"udm_mol_bat_id": ["2", "3"], "smiles": ["CCC", "CCCC"], "tb": [3.0, 4.0], "qual": ["<", "="], "n": [9, 7]}
339
+ "internal": pd.DataFrame(
340
+ {"compound_id": ["1", "2"], "smiles": ["CCO", "CCC"], "ta": [1.0, 2.0], "project_code": ["P1", "P2"]}
340
341
  ),
342
+ "public": pd.DataFrame({"id": ["a", "b"], "smiles": ["CCO", "CCCC"], "logp": [0.5, 2.0]}),
341
343
  }
342
344
  _install_fake_feature_set(monkeypatch, frames)
343
345
 
344
346
  out = pull_multi_task_data(
345
- {
346
- "src_a": {"target_info": ["ta"], "metadata": ["qual", "n"]},
347
- "src_b": {"target_info": ["tb"], "metadata": ["qual", "n"]},
348
- },
349
- id_column="udm_mol_bat_id",
347
+ {"internal": {"target_info": ["ta"]}},
348
+ {"public": {"target_info": ["logp"], "src_id_col": "id"}},
349
+ id_column="compound_id",
350
+ metadata=["project_code"],
350
351
  )
351
352
 
352
- rows = out.set_index("udm_mol_bat_id")
353
- assert list(rows["qual"]) == ["=", ">", "="]
354
- # Numeric metadata is carried, not averaged: id 2 keeps src_a's 6, not mean(6, 9)
355
- assert list(rows["n"]) == [5, 6, 7]
353
+ prj = dict(zip(out["smiles"], out["project_code"]))
354
+ assert prj["CCO"] == "P1" and prj["CCC"] == "P2"
355
+ assert pd.isna(prj["CCCC"])
356
356
 
357
357
 
358
- def test_pull_metadata_target_name_collision_raises(monkeypatch):
359
- """A metadata column can't share a name with a target."""
360
- frames = {
361
- "src_a": pd.DataFrame({"udm_mol_bat_id": ["1"], "smiles": ["CC"], "ta": [1.0]}),
362
- "src_b": pd.DataFrame({"udm_mol_bat_id": ["1"], "smiles": ["CC"], "tb": [2.0], "ta": [3.0]}),
363
- }
358
+ def test_pull_metadata_missing_everywhere_raises(monkeypatch):
359
+ """A metadata column found in no source is almost always a typo."""
360
+ frames = {"src_a": pd.DataFrame({"compound_id": ["1"], "smiles": ["CC"], "ta": [1.0]})}
364
361
  _install_fake_feature_set(monkeypatch, frames)
365
362
 
366
- with pytest.raises(ValueError, match="Duplicate target/passthrough"):
367
- pull_multi_task_data(
368
- {"src_a": {"target_info": ["ta"]}, "src_b": {"target_info": ["tb"], "metadata": ["ta"]}},
369
- id_column="udm_mol_bat_id",
370
- )
363
+ with pytest.raises(ValueError, match="not found in any source"):
364
+ pull_multi_task_data({"src_a": {"target_info": ["ta"]}}, id_column="compound_id", metadata=["typo"])
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes