workbench 0.8.169__tar.gz → 0.8.170__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.

Potentially problematic release.


This version of workbench might be problematic. Click here for more details.

Files changed (772) hide show
  1. {workbench-0.8.169 → workbench-0.8.170}/PKG-INFO +1 -1
  2. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_core/workbench_core/workbench_core_stack.py +102 -26
  3. workbench-0.8.170/examples/ml_pipelines/list_models.py +14 -0
  4. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/api/model.py +3 -0
  5. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/artifacts/endpoint_core.py +16 -5
  6. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/artifacts/monitor_core.py +2 -2
  7. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/model_to_endpoint/model_to_endpoint.py +36 -6
  8. {workbench-0.8.169 → workbench-0.8.170}/src/workbench.egg-info/PKG-INFO +1 -1
  9. {workbench-0.8.169 → workbench-0.8.170}/src/workbench.egg-info/SOURCES.txt +1 -0
  10. {workbench-0.8.169 → workbench-0.8.170}/.flake8 +0 -0
  11. {workbench-0.8.169 → workbench-0.8.170}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  12. {workbench-0.8.169 → workbench-0.8.170}/.github/dependabot.yml +0 -0
  13. {workbench-0.8.169 → workbench-0.8.170}/.github/workflows/deploy-docs.yml +0 -0
  14. {workbench-0.8.169 → workbench-0.8.170}/.github/workflows/python-lint.yml +0 -0
  15. {workbench-0.8.169 → workbench-0.8.170}/.gitignore +0 -0
  16. {workbench-0.8.169 → workbench-0.8.170}/CONTRIBUTING.md +0 -0
  17. {workbench-0.8.169 → workbench-0.8.170}/Dockerfile +0 -0
  18. {workbench-0.8.169 → workbench-0.8.170}/LICENSE +0 -0
  19. {workbench-0.8.169 → workbench-0.8.170}/Makefile +0 -0
  20. {workbench-0.8.169 → workbench-0.8.170}/README.md +0 -0
  21. {workbench-0.8.169 → workbench-0.8.170}/SECURITY.md +0 -0
  22. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/Dockerfile +0 -0
  23. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/README.md +0 -0
  24. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/app.py +0 -0
  25. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/assets/favicon.ico +0 -0
  26. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/dashboard +0 -0
  27. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/deploy.sh +0 -0
  28. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/nginx.conf +0 -0
  29. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/open_source_config.json +0 -0
  30. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/data_sources/callbacks.py +0 -0
  31. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/data_sources/layout.py +0 -0
  32. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/data_sources/page.py +0 -0
  33. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/endpoints/callbacks.py +0 -0
  34. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/endpoints/layout.py +0 -0
  35. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/endpoints/page.py +0 -0
  36. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/feature_sets/callbacks.py +0 -0
  37. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/feature_sets/layout.py +0 -0
  38. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/feature_sets/page.py +0 -0
  39. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/license/page.py +0 -0
  40. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/main/callbacks.py +0 -0
  41. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/main/layout.py +0 -0
  42. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/main/page.py +0 -0
  43. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/models/callbacks.py +0 -0
  44. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/models/layout.py +0 -0
  45. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/models/page.py +0 -0
  46. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/pipelines/callbacks.py +0 -0
  47. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/pipelines/layout.py +0 -0
  48. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/pipelines/page.py +0 -0
  49. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/pages/status/page.py +0 -0
  50. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/static/dark.css +0 -0
  51. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/static/light.css +0 -0
  52. {workbench-0.8.169 → workbench-0.8.170}/applications/aws_dashboard/supervisord.conf +0 -0
  53. {workbench-0.8.169 → workbench-0.8.170}/applications/compound_explorer/Dockerfile +0 -0
  54. {workbench-0.8.169 → workbench-0.8.170}/applications/compound_explorer/README.md +0 -0
  55. {workbench-0.8.169 → workbench-0.8.170}/applications/compound_explorer/app.py +0 -0
  56. {workbench-0.8.169 → workbench-0.8.170}/applications/compound_explorer/assets/favicon.ico +0 -0
  57. {workbench-0.8.169 → workbench-0.8.170}/applications/compound_explorer/callbacks.py +0 -0
  58. {workbench-0.8.169 → workbench-0.8.170}/applications/compound_explorer/explorer +0 -0
  59. {workbench-0.8.169 → workbench-0.8.170}/applications/compound_explorer/layout.py +0 -0
  60. {workbench-0.8.169 → workbench-0.8.170}/applications/compound_explorer/nginx.conf +0 -0
  61. {workbench-0.8.169 → workbench-0.8.170}/applications/compound_explorer/open_source_config.json +0 -0
  62. {workbench-0.8.169 → workbench-0.8.170}/applications/compound_explorer/requirements.txt +0 -0
  63. {workbench-0.8.169 → workbench-0.8.170}/applications/compound_explorer/storage/callbacks.py +0 -0
  64. {workbench-0.8.169 → workbench-0.8.170}/applications/compound_explorer/storage/callbacks_new.py +0 -0
  65. {workbench-0.8.169 → workbench-0.8.170}/applications/compound_explorer/storage/layout_new.py +0 -0
  66. {workbench-0.8.169 → workbench-0.8.170}/applications/compound_explorer/supervisord.conf +0 -0
  67. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/aws_account_check.py +0 -0
  68. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/aws_identity_check.py +0 -0
  69. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/build_ml_pipeline.py +0 -0
  70. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/compound_explorer/.gitignore +0 -0
  71. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/compound_explorer/README.md +0 -0
  72. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/compound_explorer/app.py +0 -0
  73. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/compound_explorer/cdk.json +0 -0
  74. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/compound_explorer/compound_explorer/__init__.py +0 -0
  75. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/compound_explorer/compound_explorer/compound_explorer_stack.py +0 -0
  76. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/compound_explorer/requirements.txt +0 -0
  77. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/event_bridge/Readme.md +0 -0
  78. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/event_bridge/dynamic_docker/Readme.md +0 -0
  79. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/event_bridge/dynamic_docker/app.py +0 -0
  80. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/event_bridge/dynamic_docker/cdk.json +0 -0
  81. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/event_bridge/dynamic_docker/lambda/lambda_replace_task.py +0 -0
  82. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/event_bridge/dynamic_docker/workbench_image_update_stack.py +0 -0
  83. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_core/.gitignore +0 -0
  84. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_core/README.md +0 -0
  85. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_core/app.py +0 -0
  86. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_core/cdk.json +0 -0
  87. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_core/requirements-dev.txt +0 -0
  88. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_core/requirements.txt +0 -0
  89. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_core/source.bat +0 -0
  90. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_core/workbench_core/__init__.py +0 -0
  91. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_dashboard_full/.gitignore +0 -0
  92. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_dashboard_full/README.md +0 -0
  93. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_dashboard_full/app.py +0 -0
  94. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_dashboard_full/cdk.json +0 -0
  95. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_dashboard_full/requirements-dev.txt +0 -0
  96. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_dashboard_full/requirements.txt +0 -0
  97. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_dashboard_full/source.bat +0 -0
  98. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_dashboard_full/workbench_dashboard_full/__init__.py +0 -0
  99. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_dashboard_full/workbench_dashboard_full/workbench_dashboard_stack.py +0 -0
  100. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_dashboard_lite/.gitignore +0 -0
  101. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_dashboard_lite/README.md +0 -0
  102. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_dashboard_lite/app.py +0 -0
  103. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_dashboard_lite/cdk.json +0 -0
  104. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_dashboard_lite/requirements.txt +0 -0
  105. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_dashboard_lite/workbench_dashboard_lite/__init__.py +0 -0
  106. {workbench-0.8.169 → workbench-0.8.170}/aws_setup/workbench_dashboard_lite/workbench_dashboard_lite/workbench_dashboard_stack.py +0 -0
  107. {workbench-0.8.169 → workbench-0.8.170}/data/abalone.csv +0 -0
  108. {workbench-0.8.169 → workbench-0.8.170}/data/karate_graph.json +0 -0
  109. {workbench-0.8.169 → workbench-0.8.170}/data/test_data.csv +0 -0
  110. {workbench-0.8.169 → workbench-0.8.170}/data/test_data.json +0 -0
  111. {workbench-0.8.169 → workbench-0.8.170}/data/wine_dataset.csv +0 -0
  112. {workbench-0.8.169 → workbench-0.8.170}/deploy_docker.sh +0 -0
  113. {workbench-0.8.169 → workbench-0.8.170}/docs/admin/aws_service_limits.md +0 -0
  114. {workbench-0.8.169 → workbench-0.8.170}/docs/admin/base_docker_push.md +0 -0
  115. {workbench-0.8.169 → workbench-0.8.170}/docs/admin/dashboard_docker_push.md +0 -0
  116. {workbench-0.8.169 → workbench-0.8.170}/docs/admin/dashboard_s3_plugins.md +0 -0
  117. {workbench-0.8.169 → workbench-0.8.170}/docs/admin/explorer_docker_push.md +0 -0
  118. {workbench-0.8.169 → workbench-0.8.170}/docs/admin/images/dashboard_secret_click.png +0 -0
  119. {workbench-0.8.169 → workbench-0.8.170}/docs/admin/images/serverless_quotas.png +0 -0
  120. {workbench-0.8.169 → workbench-0.8.170}/docs/admin/images/status_showing_S3_path.png +0 -0
  121. {workbench-0.8.169 → workbench-0.8.170}/docs/admin/pypi_release.md +0 -0
  122. {workbench-0.8.169 → workbench-0.8.170}/docs/admin/workbench_docker_for_lambdas.md +0 -0
  123. {workbench-0.8.169 → workbench-0.8.170}/docs/api_classes/data_source.md +0 -0
  124. {workbench-0.8.169 → workbench-0.8.170}/docs/api_classes/df_store.md +0 -0
  125. {workbench-0.8.169 → workbench-0.8.170}/docs/api_classes/endpoint.md +0 -0
  126. {workbench-0.8.169 → workbench-0.8.170}/docs/api_classes/feature_set.md +0 -0
  127. {workbench-0.8.169 → workbench-0.8.170}/docs/api_classes/meta.md +0 -0
  128. {workbench-0.8.169 → workbench-0.8.170}/docs/api_classes/model.md +0 -0
  129. {workbench-0.8.169 → workbench-0.8.170}/docs/api_classes/monitor.md +0 -0
  130. {workbench-0.8.169 → workbench-0.8.170}/docs/api_classes/overview.md +0 -0
  131. {workbench-0.8.169 → workbench-0.8.170}/docs/api_classes/parameter_store.md +0 -0
  132. {workbench-0.8.169 → workbench-0.8.170}/docs/api_classes/pipelines.md +0 -0
  133. {workbench-0.8.169 → workbench-0.8.170}/docs/api_classes/views.md +0 -0
  134. {workbench-0.8.169 → workbench-0.8.170}/docs/aws_setup/aws_access_management.md +0 -0
  135. {workbench-0.8.169 → workbench-0.8.170}/docs/aws_setup/aws_client_vpn.md +0 -0
  136. {workbench-0.8.169 → workbench-0.8.170}/docs/aws_setup/aws_setup.md +0 -0
  137. {workbench-0.8.169 → workbench-0.8.170}/docs/aws_setup/aws_tips_and_tricks.md +0 -0
  138. {workbench-0.8.169 → workbench-0.8.170}/docs/aws_setup/core_stack.md +0 -0
  139. {workbench-0.8.169 → workbench-0.8.170}/docs/aws_setup/dashboard_stack.md +0 -0
  140. {workbench-0.8.169 → workbench-0.8.170}/docs/aws_setup/domain_cert_setup.md +0 -0
  141. {workbench-0.8.169 → workbench-0.8.170}/docs/aws_setup/full_pipeline.md +0 -0
  142. {workbench-0.8.169 → workbench-0.8.170}/docs/aws_setup/iam_assume_role.md +0 -0
  143. {workbench-0.8.169 → workbench-0.8.170}/docs/aws_setup/sso_assume_role.md +0 -0
  144. {workbench-0.8.169 → workbench-0.8.170}/docs/blogs/aws_credentials_lock.md +0 -0
  145. {workbench-0.8.169 → workbench-0.8.170}/docs/blogs/canonicalization_and_tautomerization.md +0 -0
  146. {workbench-0.8.169 → workbench-0.8.170}/docs/blogs/compound_etl.md +0 -0
  147. {workbench-0.8.169 → workbench-0.8.170}/docs/blogs/compound_explorer.md +0 -0
  148. {workbench-0.8.169 → workbench-0.8.170}/docs/blogs/descriptor_drilldown.md +0 -0
  149. {workbench-0.8.169 → workbench-0.8.170}/docs/blogs/eda.md +0 -0
  150. {workbench-0.8.169 → workbench-0.8.170}/docs/blogs/feature_importances.md +0 -0
  151. {workbench-0.8.169 → workbench-0.8.170}/docs/blogs/fun_with_workbench/fun_with_endpoints.md +0 -0
  152. {workbench-0.8.169 → workbench-0.8.170}/docs/blogs/htg.md +0 -0
  153. {workbench-0.8.169 → workbench-0.8.170}/docs/blogs/index.md +0 -0
  154. {workbench-0.8.169 → workbench-0.8.170}/docs/blogs/model_monitoring.md +0 -0
  155. {workbench-0.8.169 → workbench-0.8.170}/docs/blogs/residual_analysis.md +0 -0
  156. {workbench-0.8.169 → workbench-0.8.170}/docs/cached/cached_data_source.md +0 -0
  157. {workbench-0.8.169 → workbench-0.8.170}/docs/cached/cached_endpoint.md +0 -0
  158. {workbench-0.8.169 → workbench-0.8.170}/docs/cached/cached_feature_set.md +0 -0
  159. {workbench-0.8.169 → workbench-0.8.170}/docs/cached/cached_meta.md +0 -0
  160. {workbench-0.8.169 → workbench-0.8.170}/docs/cached/cached_model.md +0 -0
  161. {workbench-0.8.169 → workbench-0.8.170}/docs/cached/overview.md +0 -0
  162. {workbench-0.8.169 → workbench-0.8.170}/docs/chem_utils/index.md +0 -0
  163. {workbench-0.8.169 → workbench-0.8.170}/docs/cloudwatch/index.md +0 -0
  164. {workbench-0.8.169 → workbench-0.8.170}/docs/comparisons/workbench_vs_databricks.md +0 -0
  165. {workbench-0.8.169 → workbench-0.8.170}/docs/compound_explorer/tox21.md +0 -0
  166. {workbench-0.8.169 → workbench-0.8.170}/docs/compound_explorer/toxicity_modeling.md +0 -0
  167. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/artifacts/artifact.md +0 -0
  168. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/artifacts/athena_source.md +0 -0
  169. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/artifacts/data_source_abstract.md +0 -0
  170. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/artifacts/endpoint_core.md +0 -0
  171. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/artifacts/feature_set_core.md +0 -0
  172. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/artifacts/model_core.md +0 -0
  173. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/artifacts/monitor_core.md +0 -0
  174. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/artifacts/overview.md +0 -0
  175. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/overview.md +0 -0
  176. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/transforms/data_loaders_heavy.md +0 -0
  177. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/transforms/data_loaders_light.md +0 -0
  178. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/transforms/data_to_features.md +0 -0
  179. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/transforms/features_to_model.md +0 -0
  180. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/transforms/model_to_endpoint.md +0 -0
  181. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/transforms/overview.md +0 -0
  182. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/transforms/pandas_transforms.md +0 -0
  183. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/transforms/transform.md +0 -0
  184. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/views/computation_view.md +0 -0
  185. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/views/display_view.md +0 -0
  186. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/views/inference_view.md +0 -0
  187. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/views/overview.md +0 -0
  188. {workbench-0.8.169 → workbench-0.8.170}/docs/core_classes/views/training_view.md +0 -0
  189. {workbench-0.8.169 → workbench-0.8.170}/docs/data_algorithms/dataframes/overview.md +0 -0
  190. {workbench-0.8.169 → workbench-0.8.170}/docs/data_algorithms/graphs/overview.md +0 -0
  191. {workbench-0.8.169 → workbench-0.8.170}/docs/data_algorithms/overview.md +0 -0
  192. {workbench-0.8.169 → workbench-0.8.170}/docs/data_algorithms/spark/overview.md +0 -0
  193. {workbench-0.8.169 → workbench-0.8.170}/docs/data_algorithms/sql/overview.md +0 -0
  194. {workbench-0.8.169 → workbench-0.8.170}/docs/enterprise/index.md +0 -0
  195. {workbench-0.8.169 → workbench-0.8.170}/docs/enterprise/private_saas.md +0 -0
  196. {workbench-0.8.169 → workbench-0.8.170}/docs/enterprise/project_branding.md +0 -0
  197. {workbench-0.8.169 → workbench-0.8.170}/docs/enterprise/themes.md +0 -0
  198. {workbench-0.8.169 → workbench-0.8.170}/docs/getting_started/index.md +0 -0
  199. {workbench-0.8.169 → workbench-0.8.170}/docs/glue/index.md +0 -0
  200. {workbench-0.8.169 → workbench-0.8.170}/docs/images/big_spider.png +0 -0
  201. {workbench-0.8.169 → workbench-0.8.170}/docs/images/graph_representation.png +0 -0
  202. {workbench-0.8.169 → workbench-0.8.170}/docs/images/powered_aws_dark_blue.png +0 -0
  203. {workbench-0.8.169 → workbench-0.8.170}/docs/images/powered_aws_transparent.png +0 -0
  204. {workbench-0.8.169 → workbench-0.8.170}/docs/images/powered_aws_white.png +0 -0
  205. {workbench-0.8.169 → workbench-0.8.170}/docs/images/powered_aws_with_tm_grey.png +0 -0
  206. {workbench-0.8.169 → workbench-0.8.170}/docs/images/scp.png +0 -0
  207. {workbench-0.8.169 → workbench-0.8.170}/docs/images/scp_labs.png +0 -0
  208. {workbench-0.8.169 → workbench-0.8.170}/docs/images/small_spider.png +0 -0
  209. {workbench-0.8.169 → workbench-0.8.170}/docs/images/workbench_concepts.png +0 -0
  210. {workbench-0.8.169 → workbench-0.8.170}/docs/index.md +0 -0
  211. {workbench-0.8.169 → workbench-0.8.170}/docs/lambda_layer/index.md +0 -0
  212. {workbench-0.8.169 → workbench-0.8.170}/docs/misc/faq.md +0 -0
  213. {workbench-0.8.169 → workbench-0.8.170}/docs/misc/general_info.md +0 -0
  214. {workbench-0.8.169 → workbench-0.8.170}/docs/misc/scp_consulting.md +0 -0
  215. {workbench-0.8.169 → workbench-0.8.170}/docs/misc/workbench_classes_concepts.md +0 -0
  216. {workbench-0.8.169 → workbench-0.8.170}/docs/model_utils/index.md +0 -0
  217. {workbench-0.8.169 → workbench-0.8.170}/docs/plugins/index.md +0 -0
  218. {workbench-0.8.169 → workbench-0.8.170}/docs/presentations/index.md +0 -0
  219. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/0_8_106.md +0 -0
  220. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/0_8_158.md +0 -0
  221. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/0_8_50.md +0 -0
  222. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/0_8_55.md +0 -0
  223. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/0_8_58.md +0 -0
  224. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/0_8_60.md +0 -0
  225. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/0_8_71.md +0 -0
  226. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/0_8_74.md +0 -0
  227. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/0_8_78.md +0 -0
  228. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/archived/0_7_8.md +0 -0
  229. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/archived/0_8_11.md +0 -0
  230. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/archived/0_8_20.md +0 -0
  231. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/archived/0_8_22.md +0 -0
  232. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/archived/0_8_23.md +0 -0
  233. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/archived/0_8_27.md +0 -0
  234. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/archived/0_8_29.md +0 -0
  235. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/archived/0_8_33.md +0 -0
  236. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/archived/0_8_35.md +0 -0
  237. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/archived/0_8_36.md +0 -0
  238. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/archived/0_8_39.md +0 -0
  239. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/archived/0_8_42.md +0 -0
  240. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/archived/0_8_46.md +0 -0
  241. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/archived/0_8_6.md +0 -0
  242. {workbench-0.8.169 → workbench-0.8.170}/docs/release_notes/archived/0_8_8.md +0 -0
  243. {workbench-0.8.169 → workbench-0.8.170}/docs/repl/index.md +0 -0
  244. {workbench-0.8.169 → workbench-0.8.170}/docs/road_maps/0_9_0.md +0 -0
  245. {workbench-0.8.169 → workbench-0.8.170}/docs/road_maps/0_9_5.md +0 -0
  246. {workbench-0.8.169 → workbench-0.8.170}/docs/themes/details.md +0 -0
  247. {workbench-0.8.169 → workbench-0.8.170}/docs/themes/index.md +0 -0
  248. {workbench-0.8.169 → workbench-0.8.170}/examples/ag-grid/hello_world.py +0 -0
  249. {workbench-0.8.169 → workbench-0.8.170}/examples/chem_utils/canonicalize_smiles.py +0 -0
  250. {workbench-0.8.169 → workbench-0.8.170}/examples/chem_utils/tautomerize_smiles.py +0 -0
  251. {workbench-0.8.169 → workbench-0.8.170}/examples/datasource/datasource_from_df.py +0 -0
  252. {workbench-0.8.169 → workbench-0.8.170}/examples/datasource/datasource_from_s3.py +0 -0
  253. {workbench-0.8.169 → workbench-0.8.170}/examples/datasource/datasource_query.py +0 -0
  254. {workbench-0.8.169 → workbench-0.8.170}/examples/datasource/datasource_stats.py +0 -0
  255. {workbench-0.8.169 → workbench-0.8.170}/examples/datasource/datasource_to_featureset.py +0 -0
  256. {workbench-0.8.169 → workbench-0.8.170}/examples/endpoint/endpoint_details.py +0 -0
  257. {workbench-0.8.169 → workbench-0.8.170}/examples/endpoint/endpoint_inference.py +0 -0
  258. {workbench-0.8.169 → workbench-0.8.170}/examples/endpoint/endpoint_metrics.py +0 -0
  259. {workbench-0.8.169 → workbench-0.8.170}/examples/featureset/featureset_eda.py +0 -0
  260. {workbench-0.8.169 → workbench-0.8.170}/examples/featureset/featureset_query.py +0 -0
  261. {workbench-0.8.169 → workbench-0.8.170}/examples/full_ml_pipeline.py +0 -0
  262. {workbench-0.8.169 → workbench-0.8.170}/examples/glue_jobs/glue_example_1.py +0 -0
  263. {workbench-0.8.169 → workbench-0.8.170}/examples/glue_jobs/glue_example_2.py +0 -0
  264. {workbench-0.8.169 → workbench-0.8.170}/examples/glue_jobs/glue_example_3.py +0 -0
  265. {workbench-0.8.169 → workbench-0.8.170}/examples/glue_jobs/glue_launcher_examples/example_1.py +0 -0
  266. {workbench-0.8.169 → workbench-0.8.170}/examples/glue_jobs/glue_launcher_examples/example_2.py +0 -0
  267. {workbench-0.8.169 → workbench-0.8.170}/examples/meta/meta_list_endpoints.py +0 -0
  268. {workbench-0.8.169 → workbench-0.8.170}/examples/meta/meta_list_models.py +0 -0
  269. {workbench-0.8.169 → workbench-0.8.170}/examples/meta/meta_model_metrics.py +0 -0
  270. {workbench-0.8.169 → workbench-0.8.170}/examples/model_utils/model_metrics.py +0 -0
  271. {workbench-0.8.169 → workbench-0.8.170}/examples/model_utils/model_to_endpoint.py +0 -0
  272. {workbench-0.8.169 → workbench-0.8.170}/examples/model_utils/onboard_model.py +0 -0
  273. {workbench-0.8.169 → workbench-0.8.170}/examples/models/custom_model.py +0 -0
  274. {workbench-0.8.169 → workbench-0.8.170}/examples/models/dbscan.py +0 -0
  275. {workbench-0.8.169 → workbench-0.8.170}/examples/models/knn.py +0 -0
  276. {workbench-0.8.169 → workbench-0.8.170}/examples/models/pytorch.py +0 -0
  277. {workbench-0.8.169 → workbench-0.8.170}/examples/models/random_forest.py +0 -0
  278. {workbench-0.8.169 → workbench-0.8.170}/examples/models/uq/bayesian_ridge.py +0 -0
  279. {workbench-0.8.169 → workbench-0.8.170}/examples/models/uq/ensemble_xgb.py +0 -0
  280. {workbench-0.8.169 → workbench-0.8.170}/examples/models/uq/gaussian_process.py +0 -0
  281. {workbench-0.8.169 → workbench-0.8.170}/examples/models/uq/mapie_xgb.py +0 -0
  282. {workbench-0.8.169 → workbench-0.8.170}/examples/models/uq/meta_uq.py +0 -0
  283. {workbench-0.8.169 → workbench-0.8.170}/examples/models/uq/ngboost.py +0 -0
  284. {workbench-0.8.169 → workbench-0.8.170}/examples/models/uq/quant_xgb.py +0 -0
  285. {workbench-0.8.169 → workbench-0.8.170}/examples/monitor/monitor_setup.py +0 -0
  286. {workbench-0.8.169 → workbench-0.8.170}/examples/monitor/monitor_usage.py +0 -0
  287. {workbench-0.8.169 → workbench-0.8.170}/examples/plugins/branding/Readme.md +0 -0
  288. {workbench-0.8.169 → workbench-0.8.170}/examples/plugins/branding/scp.json +0 -0
  289. {workbench-0.8.169 → workbench-0.8.170}/examples/plugins/components/custom_plugin.py +0 -0
  290. {workbench-0.8.169 → workbench-0.8.170}/examples/plugins/components/endpoint_plugin.py +0 -0
  291. {workbench-0.8.169 → workbench-0.8.170}/examples/plugins/components/endpoint_turbo.py +0 -0
  292. {workbench-0.8.169 → workbench-0.8.170}/examples/plugins/components/model_markdown.py +0 -0
  293. {workbench-0.8.169 → workbench-0.8.170}/examples/plugins/components/model_plugin.py +0 -0
  294. {workbench-0.8.169 → workbench-0.8.170}/examples/plugins/packages/my_plugin_utils/__init__.py +0 -0
  295. {workbench-0.8.169 → workbench-0.8.170}/examples/plugins/packages/my_plugin_utils/assets/foo.json +0 -0
  296. {workbench-0.8.169 → workbench-0.8.170}/examples/plugins/packages/my_plugin_utils/cool_stuff.py +0 -0
  297. {workbench-0.8.169 → workbench-0.8.170}/examples/plugins/pages/plugin_page_1.py +0 -0
  298. {workbench-0.8.169 → workbench-0.8.170}/examples/plugins/pages/plugin_page_2.py +0 -0
  299. {workbench-0.8.169 → workbench-0.8.170}/examples/plugins/pages/plugin_page_3.py +0 -0
  300. {workbench-0.8.169 → workbench-0.8.170}/examples/plugins/templates/Readme.md +0 -0
  301. {workbench-0.8.169 → workbench-0.8.170}/examples/plugins/views/model_plugin_view.py +0 -0
  302. {workbench-0.8.169 → workbench-0.8.170}/examples/plugins/views/my_view_plugin.py +0 -0
  303. {workbench-0.8.169 → workbench-0.8.170}/examples/storage/data_to_data.py +0 -0
  304. {workbench-0.8.169 → workbench-0.8.170}/examples/storage/data_to_features.py +0 -0
  305. {workbench-0.8.169 → workbench-0.8.170}/examples/storage/endpoint_inference.py +0 -0
  306. {workbench-0.8.169 → workbench-0.8.170}/examples/storage/hello_world_pipeline.py +0 -0
  307. {workbench-0.8.169 → workbench-0.8.170}/examples/storage/plugin_page_example.py +0 -0
  308. {workbench-0.8.169 → workbench-0.8.170}/examples/storage/sagemaker_pipelines/all_steps.py +0 -0
  309. {workbench-0.8.169 → workbench-0.8.170}/examples/storage/sagemaker_pipelines/hello.py +0 -0
  310. {workbench-0.8.169 → workbench-0.8.170}/examples/storage/sagemaker_pipelines/ml_pipeline.py +0 -0
  311. {workbench-0.8.169 → workbench-0.8.170}/examples/storage/sagemaker_pipelines/storage/full_pipeline_experiment/data_source.py +0 -0
  312. {workbench-0.8.169 → workbench-0.8.170}/examples/storage/sagemaker_pipelines/storage/full_pipeline_experiment/endpoint.py +0 -0
  313. {workbench-0.8.169 → workbench-0.8.170}/examples/storage/sagemaker_pipelines/storage/full_pipeline_experiment/feature_set.py +0 -0
  314. {workbench-0.8.169 → workbench-0.8.170}/examples/storage/sagemaker_pipelines/storage/full_pipeline_experiment/ml_pipeline.py +0 -0
  315. {workbench-0.8.169 → workbench-0.8.170}/examples/storage/sagemaker_pipelines/storage/full_pipeline_experiment/model.py +0 -0
  316. {workbench-0.8.169 → workbench-0.8.170}/experiments/chem_info/bulk_sims.py +0 -0
  317. {workbench-0.8.169 → workbench-0.8.170}/experiments/chem_info/knn_sims.py +0 -0
  318. {workbench-0.8.169 → workbench-0.8.170}/experiments/confidence_roc_curve.py +0 -0
  319. {workbench-0.8.169 → workbench-0.8.170}/experiments/coverage_probability.py +0 -0
  320. {workbench-0.8.169 → workbench-0.8.170}/experiments/log_testing.py +0 -0
  321. {workbench-0.8.169 → workbench-0.8.170}/experiments/neighbor_outliers.py +0 -0
  322. {workbench-0.8.169 → workbench-0.8.170}/experiments/networkx_id.py +0 -0
  323. {workbench-0.8.169 → workbench-0.8.170}/experiments/prediction_intervals.py +0 -0
  324. {workbench-0.8.169 → workbench-0.8.170}/experiments/pytorch_model.py +0 -0
  325. {workbench-0.8.169 → workbench-0.8.170}/experiments/quantile_regression.py +0 -0
  326. {workbench-0.8.169 → workbench-0.8.170}/experiments/quantile_regression_2.py +0 -0
  327. {workbench-0.8.169 → workbench-0.8.170}/experiments/regression_confidence.py +0 -0
  328. {workbench-0.8.169 → workbench-0.8.170}/experiments/residual_analysis.py +0 -0
  329. {workbench-0.8.169 → workbench-0.8.170}/experiments/rocauc_testing.py +0 -0
  330. {workbench-0.8.169 → workbench-0.8.170}/experiments/scatter_zoom_issue.py +0 -0
  331. {workbench-0.8.169 → workbench-0.8.170}/experiments/sol_pipeline.py +0 -0
  332. {workbench-0.8.169 → workbench-0.8.170}/glue_jobs/create_glue_workflow_with_trigger.py +0 -0
  333. {workbench-0.8.169 → workbench-0.8.170}/glue_jobs/example_glue_job.py +0 -0
  334. {workbench-0.8.169 → workbench-0.8.170}/glue_jobs/glue_job_pipeline.py +0 -0
  335. {workbench-0.8.169 → workbench-0.8.170}/glue_jobs/glue_mixed_case.py +0 -0
  336. {workbench-0.8.169 → workbench-0.8.170}/mkdocs.yml +0 -0
  337. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/Readme.md +0 -0
  338. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/inference/Dockerfile +0 -0
  339. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/inference/main.py +0 -0
  340. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/inference/requirements.txt +0 -0
  341. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/inference/serve +0 -0
  342. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/meta_endpoint/Dockerfile +0 -0
  343. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/meta_endpoint/main.py +0 -0
  344. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/meta_endpoint/requirements.txt +0 -0
  345. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/meta_endpoint/serve +0 -0
  346. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/ml_pipelines/Dockerfile +0 -0
  347. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/ml_pipelines/ml_pipeline_runner.py +0 -0
  348. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/ml_pipelines/requirements.txt +0 -0
  349. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/pytorch_inference/Dockerfile +0 -0
  350. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/pytorch_inference/main.py +0 -0
  351. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/pytorch_inference/requirements.txt +0 -0
  352. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/pytorch_inference/serve +0 -0
  353. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/pytorch_training/Dockerfile +0 -0
  354. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/pytorch_training/requirements.txt +0 -0
  355. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/pytorch_training/sagemaker_entrypoint.py +0 -0
  356. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/scripts/build_deploy.sh +0 -0
  357. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/tests/data/abalone_sm.csv +0 -0
  358. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/tests/example_model_script.py +0 -0
  359. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/tests/run_tests.sh +0 -0
  360. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/tests/test_inference.py +0 -0
  361. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/tests/test_training.py +0 -0
  362. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/training/Dockerfile +0 -0
  363. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/training/requirements.txt +0 -0
  364. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/training/sagemaker_entrypoint.py +0 -0
  365. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/workbench_inference/Dockerfile +0 -0
  366. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/workbench_inference/main.py +0 -0
  367. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/workbench_inference/requirements.txt +0 -0
  368. {workbench-0.8.169 → workbench-0.8.170}/model_docker_images/workbench_inference/serve +0 -0
  369. {workbench-0.8.169 → workbench-0.8.170}/notebooks/Inference_On_Legacy_Models.ipynb +0 -0
  370. {workbench-0.8.169 → workbench-0.8.170}/notebooks/ML_Pipeline_with_Workbench.ipynb +0 -0
  371. {workbench-0.8.169 → workbench-0.8.170}/notebooks/ML_Pipeline_with_Workbench_2.ipynb +0 -0
  372. {workbench-0.8.169 → workbench-0.8.170}/notebooks/Outliers_in_Workbench.ipynb +0 -0
  373. {workbench-0.8.169 → workbench-0.8.170}/notebooks/Regression_Confidence_Experiments.ipynb +0 -0
  374. {workbench-0.8.169 → workbench-0.8.170}/notebooks/Residual_Analysis.ipynb +0 -0
  375. {workbench-0.8.169 → workbench-0.8.170}/notebooks/images/athena_query_aqsol.png +0 -0
  376. {workbench-0.8.169 → workbench-0.8.170}/notebooks/images/aws_dashboard_aqsol.png +0 -0
  377. {workbench-0.8.169 → workbench-0.8.170}/notebooks/images/dashboard_aqsol_features.png +0 -0
  378. {workbench-0.8.169 → workbench-0.8.170}/notebooks/images/model_screenshot.png +0 -0
  379. {workbench-0.8.169 → workbench-0.8.170}/notebooks/images/scp_labs.png +0 -0
  380. {workbench-0.8.169 → workbench-0.8.170}/presentations/README.md +0 -0
  381. {workbench-0.8.169 → workbench-0.8.170}/pyproject.toml +0 -0
  382. {workbench-0.8.169 → workbench-0.8.170}/scripts/active_logs.sh +0 -0
  383. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/athena_ddl_mixed_case.py +0 -0
  384. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/check_all_glue_tables.py +0 -0
  385. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/db_scan_test.py +0 -0
  386. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/delete_invalid_views.py +0 -0
  387. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/delete_redis_keys.py +0 -0
  388. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/list_datacatalog.py +0 -0
  389. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/migration/copy_glue_database.py +0 -0
  390. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/migration/delete_sageworks_glue_database.sh +0 -0
  391. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/migration/ds_migrate.py +0 -0
  392. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/migration/endpoint_migrate.py +0 -0
  393. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/migration/fs_migrate.py +0 -0
  394. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/migration/model_migrate.py +0 -0
  395. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/pull_image_digest.py +0 -0
  396. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/redis_reaper.py +0 -0
  397. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/spam_list_tags.py +0 -0
  398. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/storage/convert_training_views.py +0 -0
  399. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/storage/migrate_data_source_via_df.py +0 -0
  400. {workbench-0.8.169 → workbench-0.8.170}/scripts/admin/storage/migrate_ds_meta.py +0 -0
  401. {workbench-0.8.169 → workbench-0.8.170}/scripts/ag_table_row_selection.py +0 -0
  402. {workbench-0.8.169 → workbench-0.8.170}/scripts/compare_dataframes.py +0 -0
  403. {workbench-0.8.169 → workbench-0.8.170}/scripts/compare_model_packages.py +0 -0
  404. {workbench-0.8.169 → workbench-0.8.170}/scripts/endpoint_inference_launch.py +0 -0
  405. {workbench-0.8.169 → workbench-0.8.170}/scripts/endpoint_timing/endpoint_timing.py +0 -0
  406. {workbench-0.8.169 → workbench-0.8.170}/scripts/endpoint_timing/endpoint_timing_old.py +0 -0
  407. {workbench-0.8.169 → workbench-0.8.170}/scripts/endpoint_timing/timing_plot.py +0 -0
  408. {workbench-0.8.169 → workbench-0.8.170}/scripts/find_smiles_issues.py +0 -0
  409. {workbench-0.8.169 → workbench-0.8.170}/scripts/get_tags.py +0 -0
  410. {workbench-0.8.169 → workbench-0.8.170}/scripts/instantiation_timings.py +0 -0
  411. {workbench-0.8.169 → workbench-0.8.170}/scripts/llm_deploys/deepseek_deploy.py +0 -0
  412. {workbench-0.8.169 → workbench-0.8.170}/scripts/model_cache_refresh.py +0 -0
  413. {workbench-0.8.169 → workbench-0.8.170}/scripts/model_endpoint_sanity_check.py +0 -0
  414. {workbench-0.8.169 → workbench-0.8.170}/scripts/model_to_endpoint_debugging.py +0 -0
  415. {workbench-0.8.169 → workbench-0.8.170}/scripts/monitor_event_bridge.py +0 -0
  416. {workbench-0.8.169 → workbench-0.8.170}/scripts/onboard_endpoints.py +0 -0
  417. {workbench-0.8.169 → workbench-0.8.170}/scripts/onboard_models.py +0 -0
  418. {workbench-0.8.169 → workbench-0.8.170}/scripts/pipeline_model_endpoint.py +0 -0
  419. {workbench-0.8.169 → workbench-0.8.170}/scripts/pubchem/pubchem_example.py +0 -0
  420. {workbench-0.8.169 → workbench-0.8.170}/scripts/pubchem/pubchem_query.py +0 -0
  421. {workbench-0.8.169 → workbench-0.8.170}/scripts/pubchem/pubchem_query_with_cid.py +0 -0
  422. {workbench-0.8.169 → workbench-0.8.170}/scripts/seaborn_to_plotly.py +0 -0
  423. {workbench-0.8.169 → workbench-0.8.170}/scripts/storage/dns_data_to_features.py +0 -0
  424. {workbench-0.8.169 → workbench-0.8.170}/scripts/storage/generate_jsonl_data.py +0 -0
  425. {workbench-0.8.169 → workbench-0.8.170}/scripts/test_feature_resolution.py +0 -0
  426. {workbench-0.8.169 → workbench-0.8.170}/scripts/test_no_workbench_config.py +0 -0
  427. {workbench-0.8.169 → workbench-0.8.170}/scripts/tox21/test_tox_heuristic.py +0 -0
  428. {workbench-0.8.169 → workbench-0.8.170}/scripts/tox21/tox21_to_df_store.py +0 -0
  429. {workbench-0.8.169 → workbench-0.8.170}/setup.cfg +0 -0
  430. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/__init__.py +0 -0
  431. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/__init__.py +0 -0
  432. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/dataframe/Readme.md +0 -0
  433. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/dataframe/__init__.py +0 -0
  434. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/dataframe/data_source_eda.py +0 -0
  435. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/dataframe/feature_space_proximity.py +0 -0
  436. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/dataframe/fingerprint_proximity.py +0 -0
  437. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/dataframe/projection_2d.py +0 -0
  438. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/dataframe/proximity.py +0 -0
  439. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/dataframe/storage/aggregation.py +0 -0
  440. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/dataframe/storage/feature_resolution.py +0 -0
  441. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/dataframe/storage/feature_spider.py +0 -0
  442. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/dataframe/storage/residuals_calculator.py +0 -0
  443. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/dataframe/storage/row_tagger.py +0 -0
  444. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/dataframe/storage/target_gradients.py +0 -0
  445. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/graph/__init__.py +0 -0
  446. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/graph/heavy/Readme.md +0 -0
  447. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/graph/light/Readme.md +0 -0
  448. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/graph/light/__init__.py +0 -0
  449. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/graph/light/proximity_graph.py +0 -0
  450. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/spark/Readme.md +0 -0
  451. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/sql/Readme.md +0 -0
  452. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/sql/__init__.py +0 -0
  453. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/sql/column_stats.py +0 -0
  454. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/sql/correlations.py +0 -0
  455. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/sql/descriptive_stats.py +0 -0
  456. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/sql/outliers.py +0 -0
  457. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/sql/sample_rows.py +0 -0
  458. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/algorithms/sql/value_counts.py +0 -0
  459. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/api/__init__.py +0 -0
  460. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/api/compound.py +0 -0
  461. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/api/data_source.py +0 -0
  462. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/api/df_store.py +0 -0
  463. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/api/endpoint.py +0 -0
  464. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/api/feature_set.py +0 -0
  465. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/api/graph_store.py +0 -0
  466. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/api/meta.py +0 -0
  467. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/api/monitor.py +0 -0
  468. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/api/parameter_store.py +0 -0
  469. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/api/pipeline.py +0 -0
  470. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/cached/__init__.py +0 -0
  471. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/cached/cached_data_source.py +0 -0
  472. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/cached/cached_endpoint.py +0 -0
  473. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/cached/cached_feature_set.py +0 -0
  474. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/cached/cached_meta.py +0 -0
  475. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/cached/cached_model.py +0 -0
  476. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/cached/cached_pipeline.py +0 -0
  477. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/__init__.py +0 -0
  478. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/artifacts/__init__.py +0 -0
  479. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/artifacts/artifact.py +0 -0
  480. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/artifacts/athena_source.py +0 -0
  481. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/artifacts/cached_artifact_mixin.py +0 -0
  482. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/artifacts/data_source_abstract.py +0 -0
  483. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/artifacts/data_source_factory.py +0 -0
  484. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/artifacts/feature_set_core.py +0 -0
  485. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/artifacts/model_core.py +0 -0
  486. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/cloud_platform/aws/README.md +0 -0
  487. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/cloud_platform/aws/aws_account_clamp.py +0 -0
  488. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/cloud_platform/aws/aws_df_store.py +0 -0
  489. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/cloud_platform/aws/aws_graph_store.py +0 -0
  490. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/cloud_platform/aws/aws_meta.py +0 -0
  491. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/cloud_platform/aws/aws_parameter_store.py +0 -0
  492. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/cloud_platform/aws/aws_secrets_manager.py +0 -0
  493. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/cloud_platform/aws/aws_session.py +0 -0
  494. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/cloud_platform/aws/cache_dataframe.py +0 -0
  495. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/cloud_platform/azure/README.md +0 -0
  496. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/cloud_platform/cloud_meta.py +0 -0
  497. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/cloud_platform/gcp/README.md +0 -0
  498. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/pipelines/pipeline_executor.py +0 -0
  499. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/Readme.md +0 -0
  500. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/__init__.py +0 -0
  501. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_loaders/__init__.py +0 -0
  502. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_loaders/heavy/__init__.py +0 -0
  503. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_loaders/heavy/s3_heavy_to_data_source.py +0 -0
  504. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_loaders/light/__init__.py +0 -0
  505. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_loaders/light/csv_to_data_source.py +0 -0
  506. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_loaders/light/json_to_data_source.py +0 -0
  507. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_loaders/light/s3_to_data_source_light.py +0 -0
  508. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_to_data/__init__.py +0 -0
  509. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_to_data/heavy/__init__.py +0 -0
  510. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_to_data/heavy/emr/Readme.md +0 -0
  511. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_to_data/heavy/glue/Readme.md +0 -0
  512. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_to_data/light/__init__.py +0 -0
  513. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_to_data/light/clean_data.py +0 -0
  514. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_to_data/light/data_to_data_light.py +0 -0
  515. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_to_features/__init__.py +0 -0
  516. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_to_features/heavy/__init__.py +0 -0
  517. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_to_features/heavy/chunk/__init__.py +0 -0
  518. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_to_features/heavy/chunk/data_to_features_chunk.py +0 -0
  519. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_to_features/heavy/emr/Readme.md +0 -0
  520. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_to_features/heavy/glue/Readme.md +0 -0
  521. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_to_features/heavy/storage/data_to_features_heavy_old.py +0 -0
  522. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_to_features/light/__init__.py +0 -0
  523. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_to_features/light/data_to_features_light.py +0 -0
  524. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/data_to_features/light/molecular_descriptors.py +0 -0
  525. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/features_to_features/__init__.py +0 -0
  526. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/features_to_features/heavy/emr/Readme.md +0 -0
  527. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/features_to_features/heavy/glue/Readme.md +0 -0
  528. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/features_to_model/__init__.py +0 -0
  529. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/features_to_model/features_to_model.py +0 -0
  530. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/model_to_endpoint/__init__.py +0 -0
  531. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/pandas_transforms/__init__.py +0 -0
  532. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/pandas_transforms/data_to_pandas.py +0 -0
  533. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/pandas_transforms/features_to_pandas.py +0 -0
  534. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/pandas_transforms/pandas_to_data.py +0 -0
  535. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/pandas_transforms/pandas_to_features.py +0 -0
  536. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/pandas_transforms/pandas_to_features_chunked.py +0 -0
  537. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/transforms/transform.py +0 -0
  538. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/views/__init__.py +0 -0
  539. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/views/column_subset_view.py +0 -0
  540. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/views/computation_view.py +0 -0
  541. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/views/create_view.py +0 -0
  542. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/views/display_view.py +0 -0
  543. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/views/inference_view.py +0 -0
  544. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/views/pandas_to_view.py +0 -0
  545. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/views/storage/mdq_view.py +0 -0
  546. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/views/training_view.py +0 -0
  547. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/views/view.py +0 -0
  548. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/core/views/view_utils.py +0 -0
  549. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/chem_info/Readme.md +0 -0
  550. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/chem_info/local_utils.py +0 -0
  551. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/chem_info/molecular_descriptors.py +0 -0
  552. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/chem_info/morgan_fingerprints.py +0 -0
  553. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/chem_info/requirements.txt +0 -0
  554. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/chem_info/tautomerize.py +0 -0
  555. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/meta_endpoints/example.py +0 -0
  556. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/network_security/Readme.md +0 -0
  557. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/proximity/Readme.md +0 -0
  558. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/proximity/feature_space_proximity.template +0 -0
  559. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/proximity/generated_model_script.py +0 -0
  560. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/proximity/proximity.py +0 -0
  561. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/proximity/requirements.txt +0 -0
  562. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/uq_models/Readme.md +0 -0
  563. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/uq_models/bayesian_ridge.template +0 -0
  564. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/uq_models/ensemble_xgb.template +0 -0
  565. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/uq_models/gaussian_process.template +0 -0
  566. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/uq_models/generated_model_script.py +0 -0
  567. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/uq_models/mapie_xgb.template +0 -0
  568. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/uq_models/meta_uq.template +0 -0
  569. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/uq_models/ngboost.template +0 -0
  570. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/uq_models/proximity.py +0 -0
  571. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_models/uq_models/requirements.txt +0 -0
  572. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_script_example/custom_model_script.py +0 -0
  573. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/custom_script_example/requirements.txt +0 -0
  574. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/ensemble_xgb/ensemble_xgb.template +0 -0
  575. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/ensemble_xgb/generated_model_script.py +0 -0
  576. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/ensemble_xgb/requirements.txt +0 -0
  577. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/pytorch_model/generated_model_script.py +0 -0
  578. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/pytorch_model/pytorch.template +0 -0
  579. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/pytorch_model/requirements.txt +0 -0
  580. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/quant_regression/quant_regression.template +0 -0
  581. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/quant_regression/requirements.txt +0 -0
  582. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/scikit_learn/generated_model_script.py +0 -0
  583. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/scikit_learn/requirements.txt +0 -0
  584. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/scikit_learn/scikit_learn.template +0 -0
  585. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/script_generation.py +0 -0
  586. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/xgb_model/generated_model_script.py +0 -0
  587. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/xgb_model/requirements.txt +0 -0
  588. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/model_scripts/xgb_model/xgb_model.template +0 -0
  589. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/repl/__init__.py +0 -0
  590. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/repl/workbench_shell.py +0 -0
  591. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/resources/open_source_api.key +0 -0
  592. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/resources/signature_verify_pub.pem +0 -0
  593. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/scripts/check_double_bond_stereo.py +0 -0
  594. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/scripts/glue_launcher.py +0 -0
  595. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/scripts/ml_pipeline_launcher.py +0 -0
  596. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/scripts/monitor_cloud_watch.py +0 -0
  597. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/scripts/redis_expire.py +0 -0
  598. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/scripts/redis_report.py +0 -0
  599. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/scripts/show_config.py +0 -0
  600. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/themes/dark/base_css.url +0 -0
  601. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/themes/dark/custom.css +0 -0
  602. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/themes/dark/plotly.json +0 -0
  603. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/themes/light/base_css.url +0 -0
  604. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/themes/light/branding.json +0 -0
  605. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/themes/light/custom.css +0 -0
  606. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/themes/light/plotly.json +0 -0
  607. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/themes/midnight_blue/base_css.url +0 -0
  608. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/themes/midnight_blue/branding.json +0 -0
  609. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/themes/midnight_blue/custom.css +0 -0
  610. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/themes/midnight_blue/plotly.json +0 -0
  611. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/themes/quartz/base_css.url +0 -0
  612. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/themes/quartz/custom.css +0 -0
  613. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/themes/quartz/plotly.json +0 -0
  614. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/themes/quartz_dark/base_css.url +0 -0
  615. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/themes/quartz_dark/custom.css +0 -0
  616. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/themes/quartz_dark/plotly.json +0 -0
  617. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/__init__.py +0 -0
  618. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/ai_compound_generator.py +0 -0
  619. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/ai_summary.py +0 -0
  620. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/ai_synth.py +0 -0
  621. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/athena_utils.py +0 -0
  622. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/aws_utils.py +0 -0
  623. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/bulk_utils.py +0 -0
  624. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/cache.py +0 -0
  625. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/chem_utils.py +0 -0
  626. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/cloudwatch_handler.py +0 -0
  627. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/cloudwatch_utils.py +0 -0
  628. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/color_utils.py +0 -0
  629. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/config_manager.py +0 -0
  630. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/dashboard_metrics.py +0 -0
  631. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/datetime_utils.py +0 -0
  632. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/deprecated_utils.py +0 -0
  633. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/df_to_endpoint.py +0 -0
  634. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/ecs_info.py +0 -0
  635. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/endpoint_metrics.py +0 -0
  636. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/endpoint_utils.py +0 -0
  637. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/extract_model_artifact.py +0 -0
  638. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/fast_inference.py +0 -0
  639. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/glue_utils.py +0 -0
  640. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/graph_utils.py +0 -0
  641. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/ipython_utils.py +0 -0
  642. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/json_utils.py +0 -0
  643. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/lambda_utils.py +0 -0
  644. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/license_manager.py +0 -0
  645. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/log_utils.py +0 -0
  646. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/markdown_utils.py +0 -0
  647. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/model_utils.py +0 -0
  648. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/monitor_utils.py +0 -0
  649. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/pandas_utils.py +0 -0
  650. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/performance_utils.py +0 -0
  651. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/pipeline_utils.py +0 -0
  652. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/plot_utils.py +0 -0
  653. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/plugin_manager.py +0 -0
  654. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/prox_utils.py +0 -0
  655. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/redis_cache.py +0 -0
  656. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/repl_utils.py +0 -0
  657. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/resource_utils.py +0 -0
  658. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/s3_utils.py +0 -0
  659. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/shap_utils.py +0 -0
  660. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/shapley_values.py +0 -0
  661. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/symbols.py +0 -0
  662. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/test_data_generator.py +0 -0
  663. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/theme_manager.py +0 -0
  664. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/trace_calls.py +0 -0
  665. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/type_abbrev.py +0 -0
  666. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/workbench_cache.py +0 -0
  667. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/workbench_event_bridge.py +0 -0
  668. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/workbench_logging.py +0 -0
  669. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/workbench_sqs.py +0 -0
  670. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/utils/xgboost_model_utils.py +0 -0
  671. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/component_interface.py +0 -0
  672. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/correlation_matrix.py +0 -0
  673. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/data_details_markdown.py +0 -0
  674. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/endpoint_metric_plots.py +0 -0
  675. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/experiments/dashboard_metric_plots.py +0 -0
  676. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/experiments/outlier_plot.py +0 -0
  677. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/model_plot.py +0 -0
  678. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/plugin_interface.py +0 -0
  679. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/plugin_unit_test.py +0 -0
  680. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/plugins/ag_table.py +0 -0
  681. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/plugins/confusion_matrix.py +0 -0
  682. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/plugins/dashboard_status.py +0 -0
  683. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/plugins/data_details.py +0 -0
  684. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/plugins/endpoint_details.py +0 -0
  685. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/plugins/generated_compounds.py +0 -0
  686. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/plugins/graph_plot.py +0 -0
  687. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/plugins/license_details.py +0 -0
  688. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/plugins/model_details.py +0 -0
  689. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/plugins/molecule_panel.py +0 -0
  690. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/plugins/molecule_viewer.py +0 -0
  691. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/plugins/pipeline_details.py +0 -0
  692. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/plugins/proximity_mini_graph.py +0 -0
  693. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/plugins/scatter_plot.py +0 -0
  694. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/plugins/shap_summary_plot.py +0 -0
  695. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/regression_plot.py +0 -0
  696. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/components/violin_plots.py +0 -0
  697. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/page_views/data_sources_page_view.py +0 -0
  698. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/page_views/endpoints_page_view.py +0 -0
  699. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/page_views/feature_sets_page_view.py +0 -0
  700. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/page_views/main_page.py +0 -0
  701. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/page_views/models_page_view.py +0 -0
  702. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/page_views/page_view.py +0 -0
  703. {workbench-0.8.169 → workbench-0.8.170}/src/workbench/web_interface/page_views/pipelines_page_view.py +0 -0
  704. {workbench-0.8.169 → workbench-0.8.170}/src/workbench.egg-info/dependency_links.txt +0 -0
  705. {workbench-0.8.169 → workbench-0.8.170}/src/workbench.egg-info/entry_points.txt +0 -0
  706. {workbench-0.8.169 → workbench-0.8.170}/src/workbench.egg-info/requires.txt +0 -0
  707. {workbench-0.8.169 → workbench-0.8.170}/src/workbench.egg-info/top_level.txt +0 -0
  708. {workbench-0.8.169 → workbench-0.8.170}/tests/README.md +0 -0
  709. {workbench-0.8.169 → workbench-0.8.170}/tests/artifacts/data_source_tests.py +0 -0
  710. {workbench-0.8.169 → workbench-0.8.170}/tests/artifacts/empty_model_group.py +0 -0
  711. {workbench-0.8.169 → workbench-0.8.170}/tests/artifacts/endpoint_tests.py +0 -0
  712. {workbench-0.8.169 → workbench-0.8.170}/tests/artifacts/featureset_ingest_boundaries.py +0 -0
  713. {workbench-0.8.169 → workbench-0.8.170}/tests/artifacts/featureset_tests.py +0 -0
  714. {workbench-0.8.169 → workbench-0.8.170}/tests/artifacts/graph_tests.py +0 -0
  715. {workbench-0.8.169 → workbench-0.8.170}/tests/artifacts/model_metrics_tests.py +0 -0
  716. {workbench-0.8.169 → workbench-0.8.170}/tests/artifacts/model_tests.py +0 -0
  717. {workbench-0.8.169 → workbench-0.8.170}/tests/aws_account/aws_account_clamp_tests.py +0 -0
  718. {workbench-0.8.169 → workbench-0.8.170}/tests/cached/cached_artifact_tests.py +0 -0
  719. {workbench-0.8.169 → workbench-0.8.170}/tests/chem_info/test_canonicalize.py +0 -0
  720. {workbench-0.8.169 → workbench-0.8.170}/tests/chem_info/test_tautomerization.py +0 -0
  721. {workbench-0.8.169 → workbench-0.8.170}/tests/corner_cases/end_to_end.py +0 -0
  722. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/100_percent_models.py +0 -0
  723. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/create_aqsol_artifacts.py +0 -0
  724. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/create_aqsol_rt_artifacts.py +0 -0
  725. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/create_aqsol_uq_artifacts.py +0 -0
  726. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/create_basic_test_artifacts.py +0 -0
  727. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/create_copy_artifacts.py +0 -0
  728. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/create_empty_model_group.py +0 -0
  729. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/create_endpoints_for_timing.py +0 -0
  730. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/create_graph_artifacts.py +0 -0
  731. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/create_knn_artifacts.py +0 -0
  732. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/create_meta_endpoints.py +0 -0
  733. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/create_pipeline_model.py +0 -0
  734. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/create_proximity_models.py +0 -0
  735. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/create_quant_regression_artifacts.py +0 -0
  736. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/create_realtime_endpoint.py +0 -0
  737. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/create_training_adjusted_artifacts.py +0 -0
  738. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/create_wine_artifacts.py +0 -0
  739. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/delete_stress_test_artifacts.py +0 -0
  740. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/delete_test_artifacts.py +0 -0
  741. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/regression_ensemble.py +0 -0
  742. {workbench-0.8.169 → workbench-0.8.170}/tests/create_test_artifacts/stress_test_aws.py +0 -0
  743. {workbench-0.8.169 → workbench-0.8.170}/tests/df_store/df_store_tests.py +0 -0
  744. {workbench-0.8.169 → workbench-0.8.170}/tests/lambda/decompress_layers.py +0 -0
  745. {workbench-0.8.169 → workbench-0.8.170}/tests/pandas_tests/test_drift.py +0 -0
  746. {workbench-0.8.169 → workbench-0.8.170}/tests/parameter_store/param_store_tests.py +0 -0
  747. {workbench-0.8.169 → workbench-0.8.170}/tests/plugin_tests/crashing_plugin.py +0 -0
  748. {workbench-0.8.169 → workbench-0.8.170}/tests/pytorch/pytorch_hello.py +0 -0
  749. {workbench-0.8.169 → workbench-0.8.170}/tests/requirements-dev.txt +0 -0
  750. {workbench-0.8.169 → workbench-0.8.170}/tests/specific/capital_tests.py +0 -0
  751. {workbench-0.8.169 → workbench-0.8.170}/tests/specific/column_changes.py +0 -0
  752. {workbench-0.8.169 → workbench-0.8.170}/tests/specific/config_manager.py +0 -0
  753. {workbench-0.8.169 → workbench-0.8.170}/tests/specific/deletion_tests.py +0 -0
  754. {workbench-0.8.169 → workbench-0.8.170}/tests/specific/shap_tests.py +0 -0
  755. {workbench-0.8.169 → workbench-0.8.170}/tests/transforms/data_to_data_tests.py +0 -0
  756. {workbench-0.8.169 → workbench-0.8.170}/tests/transforms/data_to_features_tests.py +0 -0
  757. {workbench-0.8.169 → workbench-0.8.170}/tests/transforms/features_to_model_tests.py +0 -0
  758. {workbench-0.8.169 → workbench-0.8.170}/tests/transforms/model_to_endpoint_tests.py +0 -0
  759. {workbench-0.8.169 → workbench-0.8.170}/tests/transforms/pandas_to_data_tests.py +0 -0
  760. {workbench-0.8.169 → workbench-0.8.170}/tests/transforms/pandas_to_features_test.py +0 -0
  761. {workbench-0.8.169 → workbench-0.8.170}/tests/views/view_tests.py +0 -0
  762. {workbench-0.8.169 → workbench-0.8.170}/tests/views/view_tests_complex.py +0 -0
  763. {workbench-0.8.169 → workbench-0.8.170}/tests/web_components/confusion_matrix_test.py +0 -0
  764. {workbench-0.8.169 → workbench-0.8.170}/tests/web_components/correlation_matrix_test.py +0 -0
  765. {workbench-0.8.169 → workbench-0.8.170}/tests/web_components/graph_plot_test.py +0 -0
  766. {workbench-0.8.169 → workbench-0.8.170}/tests/web_components/plugin_interface_test.py +0 -0
  767. {workbench-0.8.169 → workbench-0.8.170}/tests/web_components/scatter_plot_test.py +0 -0
  768. {workbench-0.8.169 → workbench-0.8.170}/tox.ini +0 -0
  769. {workbench-0.8.169 → workbench-0.8.170}/ui_testing/assets/custom.css +0 -0
  770. {workbench-0.8.169 → workbench-0.8.170}/ui_testing/table_comparison.py +0 -0
  771. {workbench-0.8.169 → workbench-0.8.170}/ui_testing/theme_switching.py +0 -0
  772. {workbench-0.8.169 → workbench-0.8.170}/ui_testing/theme_switching_2.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: workbench
3
- Version: 0.8.169
3
+ Version: 0.8.170
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-Expression: MIT
@@ -79,7 +79,7 @@ class WorkbenchCoreStack(Stack):
79
79
  self.model_policy = self.workbench_model_policy()
80
80
  self.endpoint_read_policy = self.workbench_endpoint_read_policy()
81
81
  self.endpoint_policy = self.workbench_endpoint_policy()
82
- self.pipeline_policy = self.workbench_pipeline_policy()
82
+ # self.sagemaker_pipeline_full_policy = self.sagemaker_pipeline_full_policy() # Not currently used
83
83
  self.dataframe_store_read_policy = self.workbench_dataframe_store_read_policy()
84
84
  self.dataframe_store_full_policy = self.workbench_dataframe_store_full_policy()
85
85
  self.parameter_store_read_policy = self.workbench_parameter_store_read_policy()
@@ -235,6 +235,16 @@ class WorkbenchCoreStack(Stack):
235
235
  #####################
236
236
  # Glue Jobs #
237
237
  #####################
238
+ def glue_jobs_s3_read(self) -> iam.PolicyStatement:
239
+ """S3 Read for Glue Jobs default script location"""
240
+ return iam.PolicyStatement(
241
+ actions=["s3:GetObject", "s3:GetBucketLocation", "s3:ListBucket"],
242
+ resources=[
243
+ f"arn:aws:s3:::aws-glue-assets-{self.account}-{self.region}",
244
+ f"arn:aws:s3:::aws-glue-assets-{self.account}-{self.region}/*",
245
+ ],
246
+ )
247
+
238
248
  def glue_job_logs(self) -> iam.PolicyStatement:
239
249
  """Create a policy statement for Glue job CloudWatch logs.
240
250
 
@@ -410,7 +420,6 @@ class WorkbenchCoreStack(Stack):
410
420
  compute_environment_name="workbench-compute-env",
411
421
  vpc=vpc,
412
422
  vpc_subnets=vpc_subnets,
413
- # replace_compute_environment=True,
414
423
  )
415
424
 
416
425
  def create_batch_job_queue(self) -> batch.JobQueue:
@@ -484,11 +493,13 @@ class WorkbenchCoreStack(Stack):
484
493
  #####################
485
494
  # Inference Store #
486
495
  #####################
487
- def inference_store_read(self) -> iam.PolicyStatement:
496
+ def glue_database_read_just_inference_store(self) -> iam.PolicyStatement:
488
497
  """Create a policy statement for reading from the Parameter Store.
489
498
 
499
+ Note: This is basically glue_databases_read but scoped to just the inference_store database.
500
+
490
501
  Returns:
491
- iam.PolicyStatement: The policy statement for reading from the Parameter Store.
502
+ iam.PolicyStatement: The policy statement for reading from the Inference Store.
492
503
  """
493
504
  return iam.PolicyStatement(
494
505
  actions=[
@@ -501,13 +512,15 @@ class WorkbenchCoreStack(Stack):
501
512
  resources=self._inference_database_arns(),
502
513
  )
503
514
 
504
- def inference_store_full(self) -> iam.PolicyStatement:
515
+ def glue_database_full_just_inference_store(self) -> iam.PolicyStatement:
505
516
  """Create a policy statement for full access to the Inference Store.
506
517
 
518
+ Note: This is basically glue_databases_full but scoped to just the inference_store database.
519
+
507
520
  Returns:
508
521
  iam.PolicyStatement: The policy statement for full access to the Inference Store.
509
522
  """
510
- read_statement = self.inference_store_read()
523
+ read_statement = self.glue_database_read_just_inference_store()
511
524
  return iam.PolicyStatement(
512
525
  actions=read_statement.actions
513
526
  + [
@@ -515,7 +528,19 @@ class WorkbenchCoreStack(Stack):
515
528
  "glue:UpdateTable",
516
529
  "glue:DeleteTable",
517
530
  ],
518
- resources=self._inference_database_arns(),
531
+ resources=read_statement.resources,
532
+ )
533
+
534
+ def s3_full_just_inference_store(self) -> iam.PolicyStatement:
535
+ """S3 write permissions for inference store data only."""
536
+ return iam.PolicyStatement(
537
+ actions=[
538
+ "s3:PutObject", # Write inference store data
539
+ "s3:DeleteObject", # Delete inference store data
540
+ ],
541
+ resources=[
542
+ f"arn:aws:s3:::{self.workbench_bucket}/athena/inference_store/inference_store/*",
543
+ ],
519
544
  )
520
545
 
521
546
  ####################
@@ -579,6 +604,20 @@ class WorkbenchCoreStack(Stack):
579
604
  resources=["*"],
580
605
  )
581
606
 
607
+ def athena_query_results_s3(self) -> iam.PolicyStatement:
608
+ """S3 permissions for Athena query results bucket."""
609
+ return iam.PolicyStatement(
610
+ actions=[
611
+ "s3:PutObject", # Required: Athena writes query results even for SELECT queries
612
+ "s3:GetObject", # Needed to retrieve results later
613
+ "s3:ListBucket", # Needed for bucket operations
614
+ ],
615
+ resources=[
616
+ f"arn:aws:s3:::aws-athena-query-results-{self.account}-{self.region}",
617
+ f"arn:aws:s3:::aws-athena-query-results-{self.account}-{self.region}/*",
618
+ ],
619
+ )
620
+
582
621
  ######################
583
622
  # FeatureStore #
584
623
  ######################
@@ -852,7 +891,7 @@ class WorkbenchCoreStack(Stack):
852
891
  )
853
892
 
854
893
  @staticmethod
855
- def pipeline_list_policy_statement() -> iam.PolicyStatement:
894
+ def pipeline_list() -> iam.PolicyStatement:
856
895
  """Create a policy statement for listing SageMaker pipelines.
857
896
 
858
897
  Returns:
@@ -865,7 +904,7 @@ class WorkbenchCoreStack(Stack):
865
904
  resources=["*"], # Broad permission necessary for listing operations
866
905
  )
867
906
 
868
- def pipeline_policy_statement(self) -> iam.PolicyStatement:
907
+ def pipeline_full(self) -> iam.PolicyStatement:
869
908
  """Create a policy statement for inspecting and running SageMaker Pipelines.
870
909
 
871
910
  Returns:
@@ -899,7 +938,8 @@ class WorkbenchCoreStack(Stack):
899
938
  ],
900
939
  )
901
940
 
902
- def ecr_policy_statement(self) -> iam.PolicyStatement:
941
+ @staticmethod
942
+ def ecr_policy_statement() -> iam.PolicyStatement:
903
943
  """Create a policy statement for pulling ECR Images.
904
944
 
905
945
  Returns:
@@ -989,7 +1029,8 @@ class WorkbenchCoreStack(Stack):
989
1029
  ##########################
990
1030
  # Workbench Dashboard #
991
1031
  ##########################
992
- def dashboard_policy_statement(self) -> iam.PolicyStatement:
1032
+ @staticmethod
1033
+ def dashboard_policy_statement() -> iam.PolicyStatement:
993
1034
  """Create a policy statement for additional permissions needed by Workbench Dashboard.
994
1035
 
995
1036
  Returns:
@@ -1230,22 +1271,27 @@ class WorkbenchCoreStack(Stack):
1230
1271
  managed_policy_name="WorkbenchEndpointPolicy",
1231
1272
  )
1232
1273
 
1233
- def workbench_pipeline_policy(self) -> iam.ManagedPolicy:
1234
- """Create a managed policy for the Workbench Pipelines"""
1274
+ def sagemaker_full_policy(self) -> iam.ManagedPolicy:
1275
+ """Create a managed policy for the Workbench Pipelines (FULL)"""
1235
1276
  policy_statements = [
1236
- self.pipeline_list_policy_statement(),
1237
- self.pipeline_policy_statement(),
1277
+ self.pipeline_list(),
1278
+ self.pipeline_full(),
1238
1279
  ]
1239
1280
  return iam.ManagedPolicy(
1240
1281
  self,
1241
- id="WorkbenchPipelinePolicy",
1282
+ id="WorkbenchSagemakerPipelineFullPolicy",
1242
1283
  statements=policy_statements,
1243
- managed_policy_name="WorkbenchPipelinePolicy",
1284
+ managed_policy_name="WorkbenchSagemakerPipelineFullPolicy",
1244
1285
  )
1245
1286
 
1246
1287
  def workbench_dataframe_store_read_policy(self) -> iam.ManagedPolicy:
1247
1288
  """Create a managed policy for the Workbench DataFrame Store (READ-ONLY)"""
1248
1289
  policy_statements = [
1290
+ self.s3_read(),
1291
+ self.glue_jobs_s3_read(),
1292
+ self.glue_job_logs(),
1293
+ self.cloudwatch_logs(),
1294
+ self.parameter_store_read(), # Get Workbench Bucket from Parameter Store
1249
1295
  self.dataframe_store_read(),
1250
1296
  ]
1251
1297
 
@@ -1259,6 +1305,11 @@ class WorkbenchCoreStack(Stack):
1259
1305
  def workbench_dataframe_store_full_policy(self) -> iam.ManagedPolicy:
1260
1306
  """Create a managed policy for the Workbench DataFrame Store (FULL)"""
1261
1307
  policy_statements = [
1308
+ self.s3_read(),
1309
+ self.glue_jobs_s3_read(),
1310
+ self.glue_job_logs(),
1311
+ self.cloudwatch_logs(),
1312
+ self.parameter_store_read(), # Get Workbench Bucket from Parameter Store
1262
1313
  self.dataframe_store_full(),
1263
1314
  ]
1264
1315
 
@@ -1266,12 +1317,16 @@ class WorkbenchCoreStack(Stack):
1266
1317
  self,
1267
1318
  id="WorkbenchDFStoreFullPolicy",
1268
1319
  statements=policy_statements,
1269
- managed_policy_name="WorkbenchDFStorePolicy",
1320
+ managed_policy_name="WorkbenchDFStoreFullPolicy",
1270
1321
  )
1271
1322
 
1272
1323
  def workbench_parameter_store_read_policy(self) -> iam.ManagedPolicy:
1273
1324
  """Create a managed policy for the Workbench Parameter Store (READ-ONLY)"""
1274
1325
  policy_statements = [
1326
+ self.s3_read(),
1327
+ self.glue_jobs_s3_read(),
1328
+ self.glue_job_logs(),
1329
+ self.cloudwatch_logs(),
1275
1330
  self.parameter_store_discover(),
1276
1331
  self.parameter_store_read(),
1277
1332
  ]
@@ -1286,6 +1341,10 @@ class WorkbenchCoreStack(Stack):
1286
1341
  def workbench_parameter_store_full_policy(self) -> iam.ManagedPolicy:
1287
1342
  """Create a managed policy for the Workbench Parameter Store (FULL)"""
1288
1343
  policy_statements = [
1344
+ self.s3_read(),
1345
+ self.glue_jobs_s3_read(),
1346
+ self.glue_job_logs(),
1347
+ self.cloudwatch_logs(),
1289
1348
  self.parameter_store_discover(),
1290
1349
  self.parameter_store_full(),
1291
1350
  ]
@@ -1294,13 +1353,20 @@ class WorkbenchCoreStack(Stack):
1294
1353
  self,
1295
1354
  id="WorkbenchParameterStoreFullPolicy",
1296
1355
  statements=policy_statements,
1297
- managed_policy_name="WorkbenchParameterStorePolicy",
1356
+ managed_policy_name="WorkbenchParameterStoreFullPolicy",
1298
1357
  )
1299
1358
 
1300
1359
  def workbench_inference_store_read_policy(self) -> iam.ManagedPolicy:
1301
1360
  """Create a managed policy for the Workbench Inference Store (READ-ONLY)"""
1302
1361
  policy_statements = [
1303
- self.inference_store_read(),
1362
+ self.s3_read(),
1363
+ self.glue_jobs_s3_read(),
1364
+ self.athena_query_results_s3(),
1365
+ self.glue_job_logs(),
1366
+ self.cloudwatch_logs(),
1367
+ self.glue_catalog_read(),
1368
+ self.glue_database_read_just_inference_store(),
1369
+ self.athena_read(),
1304
1370
  ]
1305
1371
 
1306
1372
  return iam.ManagedPolicy(
@@ -1313,14 +1379,23 @@ class WorkbenchCoreStack(Stack):
1313
1379
  def workbench_inference_store_full_policy(self) -> iam.ManagedPolicy:
1314
1380
  """Create a managed policy for the Workbench Inference Store (FULL)"""
1315
1381
  policy_statements = [
1316
- self.inference_store_full(),
1382
+ self.s3_read(),
1383
+ self.glue_jobs_s3_read(),
1384
+ self.s3_full_just_inference_store(),
1385
+ self.athena_query_results_s3(),
1386
+ self.glue_job_logs(),
1387
+ self.cloudwatch_logs(),
1388
+ self.glue_catalog_read(),
1389
+ self.glue_database_full_just_inference_store(),
1390
+ self.athena_read(),
1391
+ self.parameter_store_read(), # Get Workbench Bucket from Parameter Store
1317
1392
  ]
1318
1393
 
1319
1394
  return iam.ManagedPolicy(
1320
1395
  self,
1321
1396
  id="WorkbenchInferenceStoreFullPolicy",
1322
1397
  statements=policy_statements,
1323
- managed_policy_name="WorkbenchInferenceStorePolicy",
1398
+ managed_policy_name="WorkbenchInferenceStoreFullPolicy",
1324
1399
  )
1325
1400
 
1326
1401
  def create_execution_role(self) -> iam.Role:
@@ -1352,12 +1427,12 @@ class WorkbenchCoreStack(Stack):
1352
1427
  api_execution_role.add_to_policy(self.batch_pass_role())
1353
1428
  api_execution_role.add_to_policy(self.parameter_store_discover())
1354
1429
  api_execution_role.add_to_policy(self.parameter_store_full())
1430
+ api_execution_role.add_to_policy(self.cloudwatch_logs())
1355
1431
  api_execution_role.add_to_policy(self.cloudwatch_monitor())
1356
1432
  api_execution_role.add_managed_policy(self.datasource_policy)
1357
1433
  api_execution_role.add_managed_policy(self.featureset_policy)
1358
1434
  api_execution_role.add_managed_policy(self.model_policy)
1359
1435
  api_execution_role.add_managed_policy(self.endpoint_policy)
1360
- api_execution_role.add_managed_policy(self.pipeline_policy)
1361
1436
  return api_execution_role
1362
1437
 
1363
1438
  def create_readonly_role(self) -> iam.Role:
@@ -1382,6 +1457,7 @@ class WorkbenchCoreStack(Stack):
1382
1457
  readonly_role.add_to_policy(self.glue_jobs_read())
1383
1458
  readonly_role.add_to_policy(self.parameter_store_discover())
1384
1459
  readonly_role.add_to_policy(self.parameter_store_read())
1460
+ readonly_role.add_to_policy(self.cloudwatch_logs())
1385
1461
  readonly_role.add_managed_policy(self.datasource_read_policy)
1386
1462
  readonly_role.add_managed_policy(self.featureset_read_policy)
1387
1463
  readonly_role.add_managed_policy(self.model_read_policy)
@@ -1400,11 +1476,11 @@ class WorkbenchCoreStack(Stack):
1400
1476
 
1401
1477
  # Add a subset of policies for the Lambda Role
1402
1478
  lambda_role.add_to_policy(self.parameter_store_full())
1479
+ lambda_role.add_to_policy(self.cloudwatch_logs())
1403
1480
  lambda_role.add_managed_policy(self.datasource_policy)
1404
1481
  lambda_role.add_managed_policy(self.featureset_policy)
1405
1482
  lambda_role.add_managed_policy(self.model_policy)
1406
1483
  lambda_role.add_managed_policy(self.endpoint_policy)
1407
- lambda_role.add_managed_policy(self.pipeline_policy)
1408
1484
  return lambda_role
1409
1485
 
1410
1486
  def create_glue_role(self) -> iam.Role:
@@ -1420,6 +1496,7 @@ class WorkbenchCoreStack(Stack):
1420
1496
  # Add a subset of policies for the Glue Role
1421
1497
  glue_role.add_to_policy(self.glue_job_logs())
1422
1498
  glue_role.add_to_policy(self.glue_connections())
1499
+ glue_role.add_to_policy(self.cloudwatch_logs())
1423
1500
  glue_role.add_to_policy(self.vpc_discovery())
1424
1501
  glue_role.add_to_policy(self.vpc_network_interface_management())
1425
1502
  glue_role.add_to_policy(self.parameter_store_full())
@@ -1427,7 +1504,6 @@ class WorkbenchCoreStack(Stack):
1427
1504
  glue_role.add_managed_policy(self.featureset_policy)
1428
1505
  glue_role.add_managed_policy(self.model_policy)
1429
1506
  glue_role.add_managed_policy(self.endpoint_policy)
1430
- glue_role.add_managed_policy(self.pipeline_policy)
1431
1507
  return glue_role
1432
1508
 
1433
1509
  def create_batch_role(self) -> iam.Role:
@@ -1442,13 +1518,13 @@ class WorkbenchCoreStack(Stack):
1442
1518
 
1443
1519
  # Add policies for the Batch Role
1444
1520
  batch_role.add_to_policy(self.batch_job_logs())
1521
+ batch_role.add_to_policy(self.cloudwatch_logs())
1445
1522
  batch_role.add_to_policy(self.parameter_store_full())
1446
1523
  batch_role.add_to_policy(self.dataframe_store_full())
1447
1524
  batch_role.add_managed_policy(self.datasource_policy)
1448
1525
  batch_role.add_managed_policy(self.featureset_policy)
1449
1526
  batch_role.add_managed_policy(self.model_policy)
1450
1527
  batch_role.add_managed_policy(self.endpoint_policy)
1451
- batch_role.add_managed_policy(self.pipeline_policy)
1452
1528
  return batch_role
1453
1529
 
1454
1530
  def _create_sso_principals(self, base_principals: iam.CompositePrincipal = None) -> iam.CompositePrincipal:
@@ -0,0 +1,14 @@
1
+ import time
2
+ import logging
3
+ from workbench.api import Meta
4
+
5
+ log = logging.getLogger("workbench")
6
+
7
+ # List all the models in AWS
8
+ meta = Meta()
9
+ models = meta.models()
10
+ log.info(f"Found {len(models)} models in AWS")
11
+ log.info(models)
12
+
13
+ # Test out the ml launcher disconnect
14
+ time.sleep(120)
@@ -40,6 +40,7 @@ class Model(ModelCore):
40
40
  mem_size: int = 2048,
41
41
  max_concurrency: int = 5,
42
42
  instance: str = "ml.t2.medium",
43
+ data_capture: bool = False,
43
44
  ) -> Endpoint:
44
45
  """Create an Endpoint from the Model.
45
46
 
@@ -50,6 +51,7 @@ class Model(ModelCore):
50
51
  mem_size (int): The memory size for the Endpoint in MB (default: 2048)
51
52
  max_concurrency (int): The maximum concurrency for the Endpoint (default: 5)
52
53
  instance (str): The instance type to use for Realtime(serverless=False) Endpoints (default: "ml.t2.medium")
54
+ data_capture (bool): Enable data capture for the Endpoint (default: False)
53
55
 
54
56
  Returns:
55
57
  Endpoint: The Endpoint created from the Model
@@ -73,6 +75,7 @@ class Model(ModelCore):
73
75
  model_to_endpoint.transform(
74
76
  mem_size=mem_size,
75
77
  max_concurrency=max_concurrency,
78
+ data_capture=data_capture,
76
79
  )
77
80
 
78
81
  # Set the Endpoint Owner and Return the Endpoint
@@ -972,12 +972,23 @@ class EndpointCore(Artifact):
972
972
  cls.log.info(f"Deleting Monitoring Schedule {schedule['MonitoringScheduleName']}...")
973
973
  cls.sm_client.delete_monitoring_schedule(MonitoringScheduleName=schedule["MonitoringScheduleName"])
974
974
 
975
- # Recursively delete all endpoint S3 artifacts (inference, data capture, monitoring, etc)
975
+ # Recursively delete all endpoint S3 artifacts (inference, etc)
976
+ # Note: We do not want to delete the data_capture/ files since these
977
+ # might be used for collection and data drift analysis
976
978
  base_endpoint_path = f"{cls.endpoints_s3_path}/{endpoint_name}"
977
- s3_objects = wr.s3.list_objects(base_endpoint_path, boto3_session=cls.boto3_session)
978
- cls.log.info(f"Deleting S3 Objects at {base_endpoint_path}...")
979
- cls.log.info(f"{s3_objects}")
980
- wr.s3.delete_objects(s3_objects, boto3_session=cls.boto3_session)
979
+ all_s3_objects = wr.s3.list_objects(base_endpoint_path, boto3_session=cls.boto3_session)
980
+
981
+ # Filter out objects that contain 'data_capture/' in their path
982
+ s3_objects_to_delete = [obj for obj in all_s3_objects if "/data_capture/" not in obj]
983
+ cls.log.info(f"Found {len(all_s3_objects)} total objects at {base_endpoint_path}")
984
+ cls.log.info(f"Filtering out data_capture files, will delete {len(s3_objects_to_delete)} objects...")
985
+ cls.log.info(f"Objects to delete: {s3_objects_to_delete}")
986
+
987
+ if s3_objects_to_delete:
988
+ wr.s3.delete_objects(s3_objects_to_delete, boto3_session=cls.boto3_session)
989
+ cls.log.info(f"Successfully deleted {len(s3_objects_to_delete)} objects")
990
+ else:
991
+ cls.log.info("No objects to delete (only data_capture files found)")
981
992
 
982
993
  # Delete any dataframes that were stored in the Dataframe Cache
983
994
  cls.log.info("Deleting Dataframe Cache...")
@@ -186,11 +186,11 @@ class MonitorCore:
186
186
 
187
187
  # Log the data capture operation
188
188
  self.log.important(f"Enabling Data Capture for {self.endpoint_name} --> {self.data_capture_path}")
189
- self.log.important("This normally redeploys the endpoint...")
189
+ self.log.important("This will redeploy the endpoint...")
190
190
 
191
191
  # Create and apply the data capture configuration
192
192
  data_capture_config = DataCaptureConfig(
193
- enable_capture=True, # Required parameter
193
+ enable_capture=True,
194
194
  sampling_percentage=capture_percentage,
195
195
  destination_s3_uri=self.data_capture_path,
196
196
  )
@@ -5,6 +5,7 @@ from sagemaker import ModelPackage
5
5
  from sagemaker.serializers import CSVSerializer
6
6
  from sagemaker.deserializers import CSVDeserializer
7
7
  from sagemaker.serverless import ServerlessInferenceConfig
8
+ from sagemaker.model_monitor import DataCaptureConfig
8
9
 
9
10
  # Local Imports
10
11
  from workbench.core.transforms.transform import Transform, TransformInput, TransformOutput
@@ -51,27 +52,38 @@ class ModelToEndpoint(Transform):
51
52
  EndpointCore.managed_delete(self.output_name)
52
53
 
53
54
  # Get the Model Package ARN for our input model
54
- input_model = ModelCore(self.input_name)
55
- model_package_arn = input_model.model_package_arn()
55
+ workbench_model = ModelCore(self.input_name)
56
56
 
57
57
  # Deploy the model
58
- self._deploy_model(model_package_arn, **kwargs)
58
+ self._deploy_model(workbench_model, **kwargs)
59
59
 
60
60
  # Add this endpoint to the set of registered endpoints for the model
61
- input_model.register_endpoint(self.output_name)
61
+ workbench_model.register_endpoint(self.output_name)
62
62
 
63
63
  # This ensures that the endpoint is ready for use
64
64
  time.sleep(5) # We wait for AWS Lag
65
65
  end = EndpointCore(self.output_name)
66
66
  self.log.important(f"Endpoint {end.name} is ready for use")
67
67
 
68
- def _deploy_model(self, model_package_arn: str, mem_size: int = 2048, max_concurrency: int = 5):
68
+ def _deploy_model(
69
+ self,
70
+ workbench_model: ModelCore,
71
+ mem_size: int = 2048,
72
+ max_concurrency: int = 5,
73
+ data_capture: bool = False,
74
+ capture_percentage: int = 100,
75
+ ):
69
76
  """Internal Method: Deploy the Model
70
77
 
71
78
  Args:
72
- model_package_arn(str): The Model Package ARN used to deploy the Endpoint
79
+ workbench_model(ModelCore): The Workbench ModelCore object to deploy
80
+ mem_size(int): Memory size for serverless deployment
81
+ max_concurrency(int): Max concurrency for serverless deployment
82
+ data_capture(bool): Enable data capture during deployment
83
+ capture_percentage(int): Percentage of data to capture. Defaults to 100.
73
84
  """
74
85
  # Grab the specified Model Package
86
+ model_package_arn = workbench_model.model_package_arn()
75
87
  model_package = ModelPackage(
76
88
  role=self.workbench_role_arn,
77
89
  model_package_arn=model_package_arn,
@@ -95,6 +107,23 @@ class ModelToEndpoint(Transform):
95
107
  max_concurrency=max_concurrency,
96
108
  )
97
109
 
110
+ # Configure data capture if requested (and not serverless)
111
+ data_capture_config = None
112
+ if data_capture and not self.serverless:
113
+ # Set up the S3 path for data capture
114
+ base_endpoint_path = f"{workbench_model.endpoints_s3_path}/{self.output_name}"
115
+ data_capture_path = f"{base_endpoint_path}/data_capture"
116
+ self.log.important(f"Configuring Data Capture --> {data_capture_path}")
117
+ data_capture_config = DataCaptureConfig(
118
+ enable_capture=True,
119
+ sampling_percentage=capture_percentage,
120
+ destination_s3_uri=data_capture_path,
121
+ )
122
+ elif data_capture and self.serverless:
123
+ self.log.warning(
124
+ "Data capture is not supported for serverless endpoints. Skipping data capture configuration."
125
+ )
126
+
98
127
  # Deploy the Endpoint
99
128
  self.log.important(f"Deploying the Endpoint {self.output_name}...")
100
129
  model_package.deploy(
@@ -104,6 +133,7 @@ class ModelToEndpoint(Transform):
104
133
  endpoint_name=self.output_name,
105
134
  serializer=CSVSerializer(),
106
135
  deserializer=CSVDeserializer(),
136
+ data_capture_config=data_capture_config,
107
137
  tags=aws_tags,
108
138
  )
109
139
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: workbench
3
- Version: 0.8.169
3
+ Version: 0.8.170
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-Expression: MIT
@@ -262,6 +262,7 @@ examples/glue_jobs/glue_launcher_examples/example_2.py
262
262
  examples/meta/meta_list_endpoints.py
263
263
  examples/meta/meta_list_models.py
264
264
  examples/meta/meta_model_metrics.py
265
+ examples/ml_pipelines/list_models.py
265
266
  examples/model_utils/model_metrics.py
266
267
  examples/model_utils/model_to_endpoint.py
267
268
  examples/model_utils/onboard_model.py
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes