workbench 0.8.224__tar.gz → 0.8.228__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {workbench-0.8.224 → workbench-0.8.228}/PKG-INFO +30 -28
- {workbench-0.8.224 → workbench-0.8.228}/README.md +29 -27
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/Dockerfile +1 -1
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/data_sources/page.py +2 -10
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/endpoints/page.py +1 -3
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/feature_sets/page.py +2 -8
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/main/page.py +4 -20
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/models/callbacks.py +2 -5
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/models/layout.py +8 -4
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/models/page.py +4 -2
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/pipelines/callbacks.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/status/page.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/applications/compound_explorer/app.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_dashboard_full/app.py +1 -1
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_dashboard_lite/app.py +1 -1
- {workbench-0.8.224 → workbench-0.8.228}/docs/themes/details.md +17 -53
- {workbench-0.8.224 → workbench-0.8.228}/docs/themes/index.md +30 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/datasource/datasource_from_df.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/examples/ml_pipelines/wine_classifier.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/examples/plugins/components/custom_plugin.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/examples/plugins/components/endpoint_plugin.py +0 -2
- {workbench-0.8.224 → workbench-0.8.228}/examples/plugins/components/endpoint_turbo.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/examples/plugins/pages/plugin_page_2.py +1 -1
- {workbench-0.8.224 → workbench-0.8.228}/examples/plugins/pages/plugin_page_3.py +1 -1
- {workbench-0.8.224/src/workbench/utils/chem_utils → workbench-0.8.228/feature_endpoints/model_scripts/molecular_utils}/mol_descriptors.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/feature_endpoints/model_scripts/rdkit_mordred_model_script.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/feature_endpoints/model_scripts/rdkit_mordred_model_script_keep_salts.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/feature_endpoints/rdkit_mordred_keep_salts_v1.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/feature_endpoints/rdkit_mordred_v1.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/open_admet/hello_world.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/athena_ddl_mixed_case.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/scripts/endpoint_timing.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/scripts/storage/dns_data_to_features.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/__init__.py +1 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/sql/column_stats.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/sql/correlations.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/sql/descriptive_stats.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/api/meta.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/cached/cached_meta.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/cached/cached_model.py +45 -7
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/artifacts/endpoint_core.py +12 -2
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/artifacts/feature_set_core.py +66 -8
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/cloud_platform/cloud_meta.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_script_utils/uq_harness.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/chemprop/generated_model_script.py +4 -4
- {workbench-0.8.224/feature_endpoints/model_scripts/molecular_utils → workbench-0.8.228/src/workbench/model_scripts/custom_models/chem_info}/mol_descriptors.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/chem_info/molecular_descriptors.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/chem_info/morgan_fingerprints.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/pytorch_model/generated_model_script.py +3 -3
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/pytorch_model/uq_harness.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/script_generation.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/xgb_model/uq_harness.py +0 -1
- {workbench-0.8.224/src/workbench/themes/quartz_dark → workbench-0.8.228/src/workbench/themes/dark}/custom.css +59 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/themes/dark/plotly.json +5 -5
- workbench-0.8.228/src/workbench/themes/light/custom.css +254 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/themes/light/plotly.json +9 -9
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/themes/midnight_blue/custom.css +25 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/aws_utils.py +0 -1
- {workbench-0.8.224/src/workbench/model_scripts/custom_models/chem_info → workbench-0.8.228/src/workbench/utils/chem_utils}/mol_descriptors.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/chem_utils/vis.py +137 -27
- workbench-0.8.228/src/workbench/utils/clientside_callbacks.py +41 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/markdown_utils.py +57 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/pipeline_utils.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/plot_utils.py +6 -108
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/experiments/outlier_plot.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/model_plot.py +2 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/plugin_unit_test.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/plugins/ag_table.py +2 -4
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/plugins/confusion_matrix.py +3 -6
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/plugins/model_details.py +10 -6
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/plugins/scatter_plot.py +35 -39
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/page_views/main_page.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench.egg-info/PKG-INFO +30 -28
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench.egg-info/SOURCES.txt +1 -6
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/create_aqsol_rt_artifacts.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/create_copy_artifacts.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/create_pipeline_model.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/create_wine_artifacts.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/delete_stress_test_artifacts.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/delete_test_artifacts.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/tests/artifacts/empty_model_group.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/tests/artifacts/model_metrics_tests.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/tests/plugin_tests/crashing_plugin.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/tests/web_components/plugin_interface_test.py +0 -1
- {workbench-0.8.224 → workbench-0.8.228}/ui_testing/table_comparison.py +1 -1
- workbench-0.8.224/src/workbench/themes/dark/custom.css +0 -131
- workbench-0.8.224/src/workbench/themes/light/custom.css +0 -151
- workbench-0.8.224/src/workbench/themes/quartz/base_css.url +0 -1
- workbench-0.8.224/src/workbench/themes/quartz/custom.css +0 -117
- workbench-0.8.224/src/workbench/themes/quartz/plotly.json +0 -642
- workbench-0.8.224/src/workbench/themes/quartz_dark/base_css.url +0 -1
- workbench-0.8.224/src/workbench/themes/quartz_dark/plotly.json +0 -642
- {workbench-0.8.224 → workbench-0.8.228}/.flake8 +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/.github/dependabot.yml +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/.github/workflows/deploy-docs.yml +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/.github/workflows/python-lint.yml +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/.gitignore +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/CONTRIBUTING.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/Dockerfile +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/LICENSE +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/Makefile +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/SECURITY.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/README.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/app.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/assets/favicon.ico +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/dashboard +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/deploy.sh +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/nginx.conf +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/open_source_config.json +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/data_sources/callbacks.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/data_sources/layout.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/endpoints/callbacks.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/endpoints/layout.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/feature_sets/callbacks.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/feature_sets/layout.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/license/page.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/main/callbacks.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/main/layout.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/pipelines/layout.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/pipelines/page.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/static/dark.css +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/static/light.css +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/supervisord.conf +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/compound_explorer/Dockerfile +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/compound_explorer/README.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/compound_explorer/assets/favicon.ico +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/compound_explorer/callbacks.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/compound_explorer/explorer +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/compound_explorer/layout.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/compound_explorer/nginx.conf +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/compound_explorer/open_source_config.json +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/compound_explorer/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/compound_explorer/storage/callbacks.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/compound_explorer/storage/callbacks_new.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/compound_explorer/storage/layout_new.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/applications/compound_explorer/supervisord.conf +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/aws_account_setup.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/aws_identity_check.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/build_ml_pipeline.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/compound_explorer/.gitignore +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/compound_explorer/README.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/compound_explorer/app.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/compound_explorer/cdk.json +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/compound_explorer/compound_explorer/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/compound_explorer/compound_explorer/compound_explorer_stack.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/compound_explorer/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/event_bridge/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_compute/README.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_compute/app.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_compute/cdk.json +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_compute/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_compute/workbench_compute/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_compute/workbench_compute/lambdas/batch_failure/handler.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_compute/workbench_compute/lambdas/batch_trigger/handler.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_compute/workbench_compute/workbench_compute_stack.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_core/.gitignore +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_core/README.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_core/app.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_core/cdk.json +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_core/requirements-dev.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_core/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_core/source.bat +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_core/workbench_core/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_core/workbench_core/workbench_core_stack.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_dashboard_full/.gitignore +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_dashboard_full/README.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_dashboard_full/cdk.json +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_dashboard_full/requirements-dev.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_dashboard_full/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_dashboard_full/source.bat +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_dashboard_full/workbench_dashboard_full/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_dashboard_full/workbench_dashboard_full/workbench_dashboard_stack.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_dashboard_lite/.gitignore +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_dashboard_lite/README.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_dashboard_lite/cdk.json +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_dashboard_lite/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_dashboard_lite/workbench_dashboard_lite/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/aws_setup/workbench_dashboard_lite/workbench_dashboard_lite/workbench_dashboard_stack.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/data/abalone.csv +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/data/karate_graph.json +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/data/test_data.csv +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/data/test_data.json +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/data/wine_dataset.csv +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/deploy_docker.sh +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/admin/aws_service_limits.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/admin/base_docker_push.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/admin/dashboard_docker_push.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/admin/dashboard_s3_plugins.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/admin/explorer_docker_push.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/admin/images/dashboard_secret_click.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/admin/images/serverless_quotas.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/admin/images/status_showing_S3_path.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/admin/pypi_release.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/admin/workbench_docker_for_lambdas.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/advanced_models/images/confidence.jpg +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/advanced_models/index.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/api_classes/data_source.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/api_classes/df_store.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/api_classes/endpoint.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/api_classes/feature_set.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/api_classes/meta.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/api_classes/model.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/api_classes/monitor.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/api_classes/overview.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/api_classes/parameter_store.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/api_classes/pipelines.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/api_classes/views.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/aws_setup/aws_access_management.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/aws_setup/aws_client_vpn.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/aws_setup/aws_setup.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/aws_setup/aws_tips_and_tricks.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/aws_setup/core_stack.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/aws_setup/dashboard_stack.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/aws_setup/domain_cert_setup.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/aws_setup/full_pipeline.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/aws_setup/iam_assume_role.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/aws_setup/sso_assume_role.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/blogs/aws_credentials_lock.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/blogs/canonicalization_and_tautomerization.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/blogs/compound_etl.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/blogs/compound_explorer.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/blogs/descriptor_drilldown.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/blogs/eda.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/blogs/feature_importances.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/blogs/fun_with_workbench/fun_with_endpoints.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/blogs/htg.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/blogs/index.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/blogs/model_monitoring.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/blogs/residual_analysis.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/cached/cached_data_source.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/cached/cached_endpoint.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/cached/cached_feature_set.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/cached/cached_meta.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/cached/cached_model.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/cached/overview.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/chem_utils/index.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/cloudwatch/index.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/comparisons/workbench_vs_databricks.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/compound_explorer/tox21.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/compound_explorer/toxicity_modeling.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/artifacts/artifact.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/artifacts/athena_source.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/artifacts/data_source_abstract.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/artifacts/endpoint_core.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/artifacts/feature_set_core.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/artifacts/model_core.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/artifacts/monitor_core.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/artifacts/overview.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/overview.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/transforms/data_loaders_heavy.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/transforms/data_loaders_light.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/transforms/data_to_features.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/transforms/features_to_model.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/transforms/model_to_endpoint.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/transforms/overview.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/transforms/pandas_transforms.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/transforms/transform.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/views/computation_view.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/views/display_view.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/views/inference_view.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/views/overview.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/core_classes/views/training_view.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/data_algorithms/dataframes/overview.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/data_algorithms/graphs/overview.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/data_algorithms/overview.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/data_algorithms/spark/overview.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/data_algorithms/sql/overview.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/enterprise/index.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/enterprise/private_saas.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/enterprise/project_branding.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/enterprise/themes.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/getting_started/index.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/glue/index.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/images/big_spider.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/images/graph_representation.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/images/powered_aws_dark_blue.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/images/powered_aws_transparent.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/images/powered_aws_white.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/images/powered_aws_with_tm_grey.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/images/scp.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/images/scp_labs.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/images/small_spider.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/images/workbench_concepts.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/index.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/lambda_layer/index.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/misc/faq.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/misc/general_info.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/misc/scp_consulting.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/misc/workbench_classes_concepts.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/model_utils/index.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/plugins/index.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/presentations/index.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/0_8_106.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/0_8_158.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/0_8_50.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/0_8_55.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/0_8_58.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/0_8_60.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/0_8_71.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/0_8_74.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/0_8_78.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/archived/0_7_8.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/archived/0_8_11.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/archived/0_8_20.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/archived/0_8_22.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/archived/0_8_23.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/archived/0_8_27.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/archived/0_8_29.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/archived/0_8_33.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/archived/0_8_35.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/archived/0_8_36.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/archived/0_8_39.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/archived/0_8_42.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/archived/0_8_46.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/archived/0_8_6.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/release_notes/archived/0_8_8.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/repl/index.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/road_maps/0_9_0.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/docs/road_maps/0_9_5.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/ag-grid/hello_world.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/chem_utils/tautomerize_smiles.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/datasource/datasource_from_s3.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/datasource/datasource_query.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/datasource/datasource_stats.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/datasource/datasource_to_featureset.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/endpoint/endpoint_details.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/endpoint/endpoint_inference.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/endpoint/endpoint_metrics.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/featureset/featureset_eda.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/featureset/featureset_query.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/full_ml_pipeline.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/glue_jobs/glue_example_1.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/glue_jobs/glue_example_2.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/glue_jobs/glue_example_3.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/glue_jobs/glue_launcher_examples/example_1.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/glue_jobs/glue_launcher_examples/example_2.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/meta/meta_list_endpoints.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/meta/meta_list_models.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/meta/meta_model_metrics.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/ml_pipelines/list_models.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/model_utils/model_metrics.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/model_utils/model_to_endpoint.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/model_utils/onboard_model.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/models/chemprop.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/models/chemprop_foundation.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/models/custom_model.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/models/dbscan.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/models/knn.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/models/meta_model.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/models/pytorch.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/models/random_forest.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/models/smiles_to_fingerprints.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/models/smiles_to_md_v1.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/models/uq/bayesian_ridge.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/models/uq/ensemble_xgb.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/models/uq/gaussian_process.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/models/uq/meta_uq.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/models/uq/ngboost.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/models/uq/quant_xgb.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/models/xgb_model.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/monitor/monitor_setup.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/monitor/monitor_usage.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/plugins/branding/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/plugins/branding/scp.json +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/plugins/components/model_markdown.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/plugins/components/model_plugin.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/plugins/packages/my_plugin_utils/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/plugins/packages/my_plugin_utils/assets/foo.json +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/plugins/packages/my_plugin_utils/cool_stuff.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/plugins/pages/plugin_page_1.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/plugins/templates/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/plugins/views/model_plugin_view.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/examples/plugins/views/my_view_plugin.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/experiments/chem_info/bulk_sims.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/experiments/chem_info/knn_sims.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/experiments/cleanlab_bug_report.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/experiments/confidence_roc_curve.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/experiments/coverage_probability.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/experiments/db_scan_test.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/experiments/log_testing.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/experiments/networkx_id.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/experiments/prediction_intervals.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/experiments/residual_analysis.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/experiments/rocauc_testing.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/experiments/scatter_zoom_issue.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/experiments/sol_pipeline.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/feature_endpoints/model_scripts/molecular_utils/mol_standardize.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/feature_endpoints/model_scripts/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/glue_jobs/create_glue_workflow_with_trigger.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/glue_jobs/example_glue_job.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/glue_jobs/glue_job_pipeline.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/glue_jobs/glue_mixed_case.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/mkdocs.yml +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/ml_pipelines/hyper_uq.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/inference/Dockerfile +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/inference/main.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/inference/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/inference/serve +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/meta_inference/Dockerfile +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/meta_inference/main.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/meta_inference/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/meta_inference/serve +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/meta_training/Dockerfile +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/meta_training/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/meta_training/sagemaker_entrypoint.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/ml_pipelines/Dockerfile +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/ml_pipelines/ml_pipeline_runner.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/ml_pipelines/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/pytorch_inference/Dockerfile +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/pytorch_inference/main.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/pytorch_inference/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/pytorch_inference/serve +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/pytorch_training/Dockerfile +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/pytorch_training/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/pytorch_training/sagemaker_entrypoint.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/scripts/build_deploy.sh +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/tests/data/abalone_sm.csv +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/tests/example_model_script.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/tests/run_tests.sh +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/tests/test_inference.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/tests/test_training.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/training/Dockerfile +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/training/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/training/sagemaker_entrypoint.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/workbench_inference/Dockerfile +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/workbench_inference/main.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/workbench_inference/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/model_docker_images/workbench_inference/serve +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/notebooks/Inference_On_Legacy_Models.ipynb +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/notebooks/ML_Pipeline_with_Workbench.ipynb +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/notebooks/ML_Pipeline_with_Workbench_2.ipynb +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/notebooks/Outliers_in_Workbench.ipynb +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/notebooks/Regression_Confidence_Experiments.ipynb +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/notebooks/Residual_Analysis.ipynb +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/notebooks/images/athena_query_aqsol.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/notebooks/images/aws_dashboard_aqsol.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/notebooks/images/dashboard_aqsol_features.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/notebooks/images/model_screenshot.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/notebooks/images/scp_labs.png +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/open_admet/.gitignore +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/open_admet/README.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/open_admet/all_models.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/open_admet/images/confidence.jpg +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/open_admet/images/open_admet_model.jpg +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/open_admet/load_data.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/open_admet/model_metrics.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/open_admet/run_inference.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/open_admet/utils/compute_model_metrics.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/presentations/README.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/pyproject.toml +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/active_logs.sh +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/check_all_glue_tables.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/delete_invalid_views.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/delete_redis_keys.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/list_datacatalog.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/migration/copy_glue_database.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/migration/delete_sageworks_glue_database.sh +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/migration/ds_migrate.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/migration/endpoint_migrate.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/migration/fs_migrate.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/migration/model_migrate.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/pull_image_digest.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/redis_reaper.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/spam_list_tags.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/storage/convert_training_views.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/storage/migrate_data_source_via_df.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/storage/migrate_ds_meta.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/test_batch_job_failure.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/admin/test_no_workbench_config.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/ag_table_row_selection.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/compare_dataframes.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/compare_model_packages.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/delete_data_capture.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/get_tags.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/instantiation_timings.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/llm_deploys/deepseek_deploy.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/model_cache_refresh.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/model_endpoint_sanity_check.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/monitor_event_bridge.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/onboard_endpoints.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/onboard_models.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/pipeline_model_endpoint.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/pubchem/pubchem_example.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/pubchem/pubchem_query.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/pubchem/pubchem_query_with_cid.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/sagemaker_feature_group_issue.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/seaborn_to_plotly.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/storage/generate_jsonl_data.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/test_feature_resolution.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/test_feature_set_creation.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/tox21/test_tox_heuristic.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/scripts/tox21/tox21_to_df_store.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/setup.cfg +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/dataframe/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/dataframe/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/dataframe/compound_dataset_overlap.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/dataframe/data_source_eda.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/dataframe/feature_space_proximity.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/dataframe/fingerprint_proximity.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/dataframe/projection_2d.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/dataframe/proximity.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/dataframe/storage/aggregation.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/dataframe/storage/feature_resolution.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/dataframe/storage/feature_spider.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/dataframe/storage/residuals_calculator.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/dataframe/storage/row_tagger.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/dataframe/storage/target_gradients.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/graph/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/graph/heavy/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/graph/light/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/graph/light/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/graph/light/proximity_graph.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/models/cleanlab_model.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/models/noise_model.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/spark/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/sql/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/sql/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/sql/outliers.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/sql/sample_rows.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/algorithms/sql/value_counts.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/api/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/api/compound.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/api/data_source.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/api/df_store.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/api/endpoint.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/api/feature_set.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/api/graph_store.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/api/meta_model.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/api/model.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/api/monitor.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/api/parameter_store.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/api/pipeline.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/cached/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/cached/cached_data_source.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/cached/cached_endpoint.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/cached/cached_feature_set.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/cached/cached_pipeline.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/artifacts/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/artifacts/artifact.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/artifacts/athena_source.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/artifacts/cached_artifact_mixin.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/artifacts/data_capture_core.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/artifacts/data_source_abstract.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/artifacts/data_source_factory.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/artifacts/df_store_core.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/artifacts/model_core.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/artifacts/monitor_core.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/artifacts/parameter_store_core.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/cloud_platform/aws/README.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/cloud_platform/aws/aws_account_clamp.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/cloud_platform/aws/aws_graph_store.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/cloud_platform/aws/aws_meta.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/cloud_platform/aws/aws_secrets_manager.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/cloud_platform/aws/aws_session.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/cloud_platform/aws/cache_dataframe.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/cloud_platform/azure/README.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/cloud_platform/gcp/README.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/pipelines/pipeline_executor.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_loaders/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_loaders/heavy/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_loaders/heavy/s3_heavy_to_data_source.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_loaders/light/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_loaders/light/csv_to_data_source.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_loaders/light/json_to_data_source.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_loaders/light/s3_to_data_source_light.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_to_data/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_to_data/heavy/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_to_data/heavy/emr/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_to_data/heavy/glue/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_to_data/light/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_to_data/light/clean_data.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_to_data/light/data_to_data_light.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_to_features/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_to_features/heavy/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_to_features/heavy/chunk/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_to_features/heavy/chunk/data_to_features_chunk.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_to_features/heavy/emr/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_to_features/heavy/glue/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_to_features/heavy/storage/data_to_features_heavy_old.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_to_features/light/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_to_features/light/data_to_features_light.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/data_to_features/light/molecular_descriptors.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/features_to_features/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/features_to_features/heavy/emr/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/features_to_features/heavy/glue/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/features_to_model/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/features_to_model/features_to_model.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/model_to_endpoint/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/model_to_endpoint/model_to_endpoint.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/pandas_transforms/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/pandas_transforms/data_to_pandas.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/pandas_transforms/features_to_pandas.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/pandas_transforms/pandas_to_data.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/pandas_transforms/pandas_to_features.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/pandas_transforms/pandas_to_features_chunked.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/transforms/transform.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/views/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/views/column_subset_view.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/views/computation_view.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/views/create_view.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/views/display_view.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/views/inference_view.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/views/pandas_to_view.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/views/storage/mdq_view.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/views/training_view.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/views/view.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/core/views/view_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_script_utils/model_script_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_script_utils/pytorch_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/chemprop/chemprop.template +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/chemprop/model_script_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/chemprop/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/chem_info/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/chem_info/fingerprints.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/chem_info/mol_standardize.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/chem_info/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/network_security/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/proximity/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/proximity/feature_space_proximity.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/proximity/feature_space_proximity.template +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/proximity/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/uq_models/Readme.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/uq_models/bayesian_ridge.template +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/uq_models/ensemble_xgb.template +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/uq_models/feature_space_proximity.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/uq_models/gaussian_process.template +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/uq_models/ngboost.template +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_models/uq_models/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_script_example/custom_model_script.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/custom_script_example/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/ensemble_xgb/ensemble_xgb.template +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/ensemble_xgb/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/meta_model/generated_model_script.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/meta_model/meta_model.template +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/pytorch_model/model_script_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/pytorch_model/pytorch.template +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/pytorch_model/pytorch_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/pytorch_model/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/scikit_learn/generated_model_script.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/scikit_learn/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/scikit_learn/scikit_learn.template +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/uq_models/generated_model_script.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/xgb_model/generated_model_script.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/xgb_model/model_script_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/xgb_model/requirements.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/model_scripts/xgb_model/xgb_model.template +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/repl/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/repl/workbench_shell.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/resources/open_source_api.key +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/resources/signature_verify_pub.pem +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/scripts/check_double_bond_stereo.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/scripts/endpoint_test.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/scripts/glue_launcher.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/scripts/lambda_test.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/scripts/meta_model_sim.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/scripts/ml_pipeline_batch.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/scripts/ml_pipeline_sqs.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/scripts/monitor_cloud_watch.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/scripts/redis_expire.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/scripts/redis_report.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/scripts/show_config.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/scripts/training_test.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/themes/dark/base_css.url +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/themes/light/base_css.url +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/themes/light/branding.json +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/themes/midnight_blue/base_css.url +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/themes/midnight_blue/branding.json +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/themes/midnight_blue/plotly.json +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/ai_compound_generator.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/ai_summary.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/ai_synth.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/athena_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/bulk_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/cache.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/chem_utils/__init__.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/chem_utils/fingerprints.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/chem_utils/misc.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/chem_utils/mol_standardize.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/chem_utils/mol_tagging.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/chem_utils/projections.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/chem_utils/salts.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/chem_utils/sdf.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/chem_utils/toxicity.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/chemprop_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/cloudwatch_handler.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/cloudwatch_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/color_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/config_manager.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/dashboard_metrics.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/datetime_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/deprecated_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/df_to_endpoint.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/ecs_info.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/endpoint_metrics.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/endpoint_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/extract_model_artifact.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/glue_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/graph_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/ipython_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/json_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/lambda_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/license_manager.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/log_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/meta_model_simulator.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/metrics_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/model_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/monitor_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/pandas_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/performance_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/plugin_manager.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/prox_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/pytorch_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/redis_cache.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/repl_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/s3_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/shap_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/shapley_values.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/symbols.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/test_data_generator.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/theme_manager.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/trace_calls.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/type_abbrev.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/workbench_cache.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/workbench_event_bridge.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/workbench_logging.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/workbench_sqs.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/xgboost_local_crossfold.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/utils/xgboost_model_utils.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/component_interface.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/correlation_matrix.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/data_details_markdown.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/endpoint_metric_plots.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/experiments/dashboard_metric_plots.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/plugin_interface.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/plugins/dashboard_status.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/plugins/data_details.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/plugins/endpoint_details.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/plugins/generated_compounds.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/plugins/graph_plot.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/plugins/license_details.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/plugins/molecule_panel.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/plugins/molecule_viewer.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/plugins/pipeline_details.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/plugins/proximity_mini_graph.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/plugins/shap_summary_plot.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/regression_plot.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/settings_menu.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/components/violin_plots.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/page_views/data_sources_page_view.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/page_views/endpoints_page_view.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/page_views/feature_sets_page_view.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/page_views/models_page_view.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/page_views/page_view.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench/web_interface/page_views/pipelines_page_view.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench.egg-info/dependency_links.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench.egg-info/entry_points.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench.egg-info/requires.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/src/workbench.egg-info/top_level.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/create_aqsol_artifacts.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/create_aqsol_artifacts_all.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/create_basic_test_artifacts.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/create_empty_model_group.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/create_endpoints_for_timing.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/create_graph_artifacts.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/create_knn_artifacts.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/create_meta_endpoints.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/create_proximity_models.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/create_quant_regression_artifacts.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/create_realtime_endpoint.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/create_training_adjusted_artifacts.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/hyper_testing.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/regression_ensemble.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/test_artifacts/stress_test_aws.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/README.md +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/artifacts/data_source_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/artifacts/endpoint_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/artifacts/featureset_ingest_boundaries.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/artifacts/featureset_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/artifacts/graph_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/artifacts/model_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/aws_account/aws_account_clamp_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/cached/cached_artifact_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/chem_info/test_tautomerization.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/corner_cases/end_to_end.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/df_store/df_store_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/lambda/decompress_layers.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/pandas_tests/test_drift.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/parameter_store/param_store_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/pytorch/pytorch_hello.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/requirements-dev.txt +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/specific/capital_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/specific/column_changes.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/specific/config_manager.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/specific/deletion_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/specific/shap_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/transforms/data_to_data_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/transforms/data_to_features_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/transforms/features_to_model_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/transforms/model_to_endpoint_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/transforms/pandas_to_data_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/transforms/pandas_to_features_test.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/views/view_tests.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/views/view_tests_complex.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/web_components/confusion_matrix_test.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/web_components/correlation_matrix_test.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/web_components/graph_plot_test.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tests/web_components/scatter_plot_test.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/tox.ini +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/ui_testing/assets/custom.css +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/ui_testing/theme_switching.py +0 -0
- {workbench-0.8.224 → workbench-0.8.228}/ui_testing/theme_switching_2.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: workbench
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.228
|
|
4
4
|
Summary: Workbench: A Dashboard and Python API for creating and deploying AWS SageMaker Model Pipelines
|
|
5
5
|
Author-email: SuperCowPowers LLC <support@supercowpowers.com>
|
|
6
6
|
License: MIT License
|
|
@@ -77,51 +77,49 @@ Requires-Dist: workbench[dev]; extra == "all"
|
|
|
77
77
|
Dynamic: license-file
|
|
78
78
|
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
## Live Dashboard Demo
|
|
81
|
+
You can explore a live demo of the Workbench Dashboard at: [Workbench Dashboard Demo](https://workbench-dashboard.com)
|
|
81
82
|
|
|
82
|
-
|
|
83
|
+
## Recent News
|
|
84
|
+
**Chemprop Models!** All the rage for the Open ADMET Challenge.
|
|
83
85
|
|
|
84
|
-
|
|
86
|
+
Workbench now supports:
|
|
87
|
+
- Single Task Chemprop Models
|
|
88
|
+
- Multi Task Chemprop Models
|
|
89
|
+
- Chemprop Hybrid Models (MPNN + Descriptors)
|
|
90
|
+
- Foundation Chemprop Models (CheMeleon Pretrained)
|
|
91
|
+
|
|
92
|
+
Examples:
|
|
93
|
+
|
|
94
|
+
- [Deploying Chemprop Models](examples/models/chemprop.py)
|
|
95
|
+
- [Deploying Foundation Chemprop Models](examples/models/chemprop_foundation.py)
|
|
96
|
+
|
|
97
|
+
**References**
|
|
98
|
+
- [Open ADMET Challenge](https://huggingface.co/spaces/openadmet/OpenADMET-ExpansionRx-Challenge)
|
|
99
|
+
- **ChemProp:** Yang et al. "Analyzing Learned Molecular Representations for Property Prediction" *J. Chem. Inf. Model.* 2019 — [GitHub](https://github.com/chemprop/chemprop) | [Paper](https://pubs.acs.org/doi/10.1021/acs.jcim.9b00237)
|
|
100
|
+
- [CheMeleon Github](https://github.com/JacksonBurns/chemeleon)
|
|
101
|
+
|
|
102
|
+
### Chemprop Action Shots!
|
|
85
103
|
|
|
86
104
|
<table>
|
|
87
105
|
<tr>
|
|
88
106
|
<td>
|
|
89
|
-
<a href="https://github.com/user-attachments/assets/
|
|
90
|
-
<img width="
|
|
91
|
-
</a>
|
|
92
|
-
</td>
|
|
93
|
-
<td>
|
|
94
|
-
<a href="https://github.com/user-attachments/assets/b63a0789-c144-4048-afb6-f03e3d993680">
|
|
95
|
-
<img width="400" alt="theme_light" src="https://github.com/user-attachments/assets/b63a0789-c144-4048-afb6-f03e3d993680" />
|
|
107
|
+
<a href="https://github.com/user-attachments/assets/a36c6eff-c464-4c9a-9859-a45cd7e35145">
|
|
108
|
+
<img width="800" alt="theme_dark" src="https://github.com/user-attachments/assets/a36c6eff-c464-4c9a-9859-a45cd7e35145" />
|
|
96
109
|
</a>
|
|
97
110
|
</td>
|
|
98
111
|
</tr>
|
|
99
112
|
<tr>
|
|
100
113
|
<td>
|
|
101
|
-
<a href="https://github.com/user-attachments/assets/
|
|
102
|
-
<img width="
|
|
103
|
-
</a>
|
|
104
|
-
</td>
|
|
105
|
-
<td>
|
|
106
|
-
<a href="https://github.com/user-attachments/assets/5b01ec64-8d56-43bf-96c5-7da8ec48f527">
|
|
107
|
-
<img width="400" alt="theme_quartz_dark" src="https://github.com/user-attachments/assets/5b01ec64-8d56-43bf-96c5-7da8ec48f527" />
|
|
114
|
+
<a href="https://github.com/user-attachments/assets/d65ec1da-e04e-44fe-8782-4da0fb50588a">
|
|
115
|
+
<img width="800" alt="theme_quartz" src="https://github.com/user-attachments/assets/d65ec1da-e04e-44fe-8782-4da0fb50588a" />
|
|
108
116
|
</a>
|
|
109
117
|
</td>
|
|
110
118
|
</tr>
|
|
111
119
|
</table>
|
|
112
120
|
|
|
113
|
-
All of the Dashboard pages, subpages, and plugins use our new `ThemeManager()` class. See [Workbench Themes](https://supercowpowers.github.io/workbench/themes/), also big thanks to our friends at [Dash Bootstrap Templates](https://github.com/AnnMarieW/dash-bootstrap-templates)
|
|
114
|
-
|
|
115
121
|
|
|
116
122
|
|
|
117
|
-
### Workbench up on the AWS Marketplace
|
|
118
|
-
|
|
119
|
-
Powered by AWS® to accelerate your Machine Learning Pipelines development with our new [Dashboard for ML Pipelines](https://aws.amazon.com/marketplace/pp/prodview-5idedc7uptbqo). Getting started with Workbench is a snap and can be billed through AWS.
|
|
120
|
-
|
|
121
|
-
### Coming Soon: `v0.9`
|
|
122
|
-
|
|
123
|
-
We're getting ready for our `v0.9` release. Here's the road map: [Workbench RoadMaps](https://supercowpowers.github.io/workbench/road_maps/0_9_0/)
|
|
124
|
-
|
|
125
123
|
# Welcome to Workbench
|
|
126
124
|
The Workbench framework makes AWS® both easier to use and more powerful. Workbench handles all the details around updating and managing a complex set of AWS Services. With a simple-to-use Python API and a beautiful set of web interfaces, Workbench makes creating AWS ML pipelines a snap. It also dramatically improves both the usability and visibility across the entire spectrum of services: Glue Job, Athena, Feature Store, Models, and Endpoints, Workbench makes it easy to build production ready, AWS powered, machine learning pipelines.
|
|
127
125
|
|
|
@@ -159,6 +157,10 @@ For the full instructions for connecting your AWS Account see:
|
|
|
159
157
|
- One time AWS Onboarding: [AWS Setup](https://supercowpowers.github.io/workbench/aws_setup/core_stack/)
|
|
160
158
|
|
|
161
159
|
|
|
160
|
+
### Workbench up on the AWS Marketplace
|
|
161
|
+
|
|
162
|
+
Powered by AWS® to accelerate your Machine Learning Pipelines development with our new [Dashboard for ML Pipelines](https://aws.amazon.com/marketplace/pp/prodview-5idedc7uptbqo). Getting started with Workbench is a snap and can be billed through AWS.
|
|
163
|
+
|
|
162
164
|
### Workbench Presentations
|
|
163
165
|
Even though Workbench makes AWS easier, it's taking something very complex (the full set of AWS ML Pipelines/Services) and making it less complex. Workbench has a depth and breadth of functionality so we've provided higher level conceptual documentation See: [Workbench Presentations](https://supercowpowers.github.io/workbench/presentations/)
|
|
164
166
|
|
|
@@ -1,49 +1,47 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
2
|
+
## Live Dashboard Demo
|
|
3
|
+
You can explore a live demo of the Workbench Dashboard at: [Workbench Dashboard Demo](https://workbench-dashboard.com)
|
|
3
4
|
|
|
4
|
-
|
|
5
|
+
## Recent News
|
|
6
|
+
**Chemprop Models!** All the rage for the Open ADMET Challenge.
|
|
5
7
|
|
|
6
|
-
|
|
8
|
+
Workbench now supports:
|
|
9
|
+
- Single Task Chemprop Models
|
|
10
|
+
- Multi Task Chemprop Models
|
|
11
|
+
- Chemprop Hybrid Models (MPNN + Descriptors)
|
|
12
|
+
- Foundation Chemprop Models (CheMeleon Pretrained)
|
|
13
|
+
|
|
14
|
+
Examples:
|
|
15
|
+
|
|
16
|
+
- [Deploying Chemprop Models](examples/models/chemprop.py)
|
|
17
|
+
- [Deploying Foundation Chemprop Models](examples/models/chemprop_foundation.py)
|
|
18
|
+
|
|
19
|
+
**References**
|
|
20
|
+
- [Open ADMET Challenge](https://huggingface.co/spaces/openadmet/OpenADMET-ExpansionRx-Challenge)
|
|
21
|
+
- **ChemProp:** Yang et al. "Analyzing Learned Molecular Representations for Property Prediction" *J. Chem. Inf. Model.* 2019 — [GitHub](https://github.com/chemprop/chemprop) | [Paper](https://pubs.acs.org/doi/10.1021/acs.jcim.9b00237)
|
|
22
|
+
- [CheMeleon Github](https://github.com/JacksonBurns/chemeleon)
|
|
23
|
+
|
|
24
|
+
### Chemprop Action Shots!
|
|
7
25
|
|
|
8
26
|
<table>
|
|
9
27
|
<tr>
|
|
10
28
|
<td>
|
|
11
|
-
<a href="https://github.com/user-attachments/assets/
|
|
12
|
-
<img width="
|
|
13
|
-
</a>
|
|
14
|
-
</td>
|
|
15
|
-
<td>
|
|
16
|
-
<a href="https://github.com/user-attachments/assets/b63a0789-c144-4048-afb6-f03e3d993680">
|
|
17
|
-
<img width="400" alt="theme_light" src="https://github.com/user-attachments/assets/b63a0789-c144-4048-afb6-f03e3d993680" />
|
|
29
|
+
<a href="https://github.com/user-attachments/assets/a36c6eff-c464-4c9a-9859-a45cd7e35145">
|
|
30
|
+
<img width="800" alt="theme_dark" src="https://github.com/user-attachments/assets/a36c6eff-c464-4c9a-9859-a45cd7e35145" />
|
|
18
31
|
</a>
|
|
19
32
|
</td>
|
|
20
33
|
</tr>
|
|
21
34
|
<tr>
|
|
22
35
|
<td>
|
|
23
|
-
<a href="https://github.com/user-attachments/assets/
|
|
24
|
-
<img width="
|
|
25
|
-
</a>
|
|
26
|
-
</td>
|
|
27
|
-
<td>
|
|
28
|
-
<a href="https://github.com/user-attachments/assets/5b01ec64-8d56-43bf-96c5-7da8ec48f527">
|
|
29
|
-
<img width="400" alt="theme_quartz_dark" src="https://github.com/user-attachments/assets/5b01ec64-8d56-43bf-96c5-7da8ec48f527" />
|
|
36
|
+
<a href="https://github.com/user-attachments/assets/d65ec1da-e04e-44fe-8782-4da0fb50588a">
|
|
37
|
+
<img width="800" alt="theme_quartz" src="https://github.com/user-attachments/assets/d65ec1da-e04e-44fe-8782-4da0fb50588a" />
|
|
30
38
|
</a>
|
|
31
39
|
</td>
|
|
32
40
|
</tr>
|
|
33
41
|
</table>
|
|
34
42
|
|
|
35
|
-
All of the Dashboard pages, subpages, and plugins use our new `ThemeManager()` class. See [Workbench Themes](https://supercowpowers.github.io/workbench/themes/), also big thanks to our friends at [Dash Bootstrap Templates](https://github.com/AnnMarieW/dash-bootstrap-templates)
|
|
36
|
-
|
|
37
43
|
|
|
38
44
|
|
|
39
|
-
### Workbench up on the AWS Marketplace
|
|
40
|
-
|
|
41
|
-
Powered by AWS® to accelerate your Machine Learning Pipelines development with our new [Dashboard for ML Pipelines](https://aws.amazon.com/marketplace/pp/prodview-5idedc7uptbqo). Getting started with Workbench is a snap and can be billed through AWS.
|
|
42
|
-
|
|
43
|
-
### Coming Soon: `v0.9`
|
|
44
|
-
|
|
45
|
-
We're getting ready for our `v0.9` release. Here's the road map: [Workbench RoadMaps](https://supercowpowers.github.io/workbench/road_maps/0_9_0/)
|
|
46
|
-
|
|
47
45
|
# Welcome to Workbench
|
|
48
46
|
The Workbench framework makes AWS® both easier to use and more powerful. Workbench handles all the details around updating and managing a complex set of AWS Services. With a simple-to-use Python API and a beautiful set of web interfaces, Workbench makes creating AWS ML pipelines a snap. It also dramatically improves both the usability and visibility across the entire spectrum of services: Glue Job, Athena, Feature Store, Models, and Endpoints, Workbench makes it easy to build production ready, AWS powered, machine learning pipelines.
|
|
49
47
|
|
|
@@ -81,6 +79,10 @@ For the full instructions for connecting your AWS Account see:
|
|
|
81
79
|
- One time AWS Onboarding: [AWS Setup](https://supercowpowers.github.io/workbench/aws_setup/core_stack/)
|
|
82
80
|
|
|
83
81
|
|
|
82
|
+
### Workbench up on the AWS Marketplace
|
|
83
|
+
|
|
84
|
+
Powered by AWS® to accelerate your Machine Learning Pipelines development with our new [Dashboard for ML Pipelines](https://aws.amazon.com/marketplace/pp/prodview-5idedc7uptbqo). Getting started with Workbench is a snap and can be billed through AWS.
|
|
85
|
+
|
|
84
86
|
### Workbench Presentations
|
|
85
87
|
Even though Workbench makes AWS easier, it's taking something very complex (the full set of AWS ML Pipelines/Services) and making it less complex. Workbench has a depth and breadth of functionality so we've provided higher level conceptual documentation See: [Workbench Presentations](https://supercowpowers.github.io/workbench/presentations/)
|
|
86
88
|
|
{workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/data_sources/page.py
RENAMED
|
@@ -21,19 +21,11 @@ register_page(
|
|
|
21
21
|
|
|
22
22
|
# Create a table to display the Data Sources
|
|
23
23
|
data_sources_table = AGTable()
|
|
24
|
-
data_sources_component = data_sources_table.create_component(
|
|
25
|
-
"data_sources_table",
|
|
26
|
-
header_color="rgb(120, 70, 70)",
|
|
27
|
-
max_height=270,
|
|
28
|
-
)
|
|
24
|
+
data_sources_component = data_sources_table.create_component("data_sources_table", max_height=270)
|
|
29
25
|
|
|
30
26
|
# Create a table that sample rows from the currently selected data source
|
|
31
27
|
samples_table = AGTable()
|
|
32
|
-
samples_component = samples_table.create_component(
|
|
33
|
-
"data_source_sample_rows",
|
|
34
|
-
header_color="rgb(70, 70, 110)",
|
|
35
|
-
max_height=250,
|
|
36
|
-
)
|
|
28
|
+
samples_component = samples_table.create_component("data_source_sample_rows", max_height=250)
|
|
37
29
|
|
|
38
30
|
# Data Source Details Markdown PANEL
|
|
39
31
|
data_details = DataDetails()
|
|
@@ -23,9 +23,7 @@ register_page(
|
|
|
23
23
|
|
|
24
24
|
# Create a table to display the endpoints
|
|
25
25
|
endpoints_table = ag_table.AGTable()
|
|
26
|
-
endpoints_component = endpoints_table.create_component(
|
|
27
|
-
"endpoints_table", header_color="rgb(100, 60, 100)", max_height=270
|
|
28
|
-
)
|
|
26
|
+
endpoints_component = endpoints_table.create_component("endpoints_table", max_height=270)
|
|
29
27
|
|
|
30
28
|
# Create a Markdown component to display the endpoint details
|
|
31
29
|
endpoint_details = endpoint_details.EndpointDetails()
|
{workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/feature_sets/page.py
RENAMED
|
@@ -16,17 +16,11 @@ register_page(__name__, path="/feature_sets", name="Workbench - Feature Sets")
|
|
|
16
16
|
|
|
17
17
|
# Create a table to display the Feature Sets
|
|
18
18
|
feature_sets_table = AGTable()
|
|
19
|
-
feature_sets_component = feature_sets_table.create_component(
|
|
20
|
-
"feature_sets_table", header_color="rgb(60, 100, 60)", max_height=270
|
|
21
|
-
)
|
|
19
|
+
feature_sets_component = feature_sets_table.create_component("feature_sets_table", max_height=270)
|
|
22
20
|
|
|
23
21
|
# Grab smart_sample rows from the first Feature Set
|
|
24
22
|
samples_table = AGTable()
|
|
25
|
-
samples_component = samples_table.create_component(
|
|
26
|
-
"feature_set_sample_rows",
|
|
27
|
-
header_color="rgb(70, 70, 110)",
|
|
28
|
-
max_height=250,
|
|
29
|
-
)
|
|
23
|
+
samples_component = samples_table.create_component("feature_set_sample_rows", max_height=250)
|
|
30
24
|
|
|
31
25
|
# Feature Set Details
|
|
32
26
|
feature_details = DataDetails()
|
|
@@ -25,29 +25,13 @@ for table_name in table_names:
|
|
|
25
25
|
# Create a table container for each Workbench Artifact Type
|
|
26
26
|
table_containers = dict()
|
|
27
27
|
table_name = "data_sources"
|
|
28
|
-
table_containers[table_name] = tables[table_name].create_component(
|
|
29
|
-
f"main_{table_name}",
|
|
30
|
-
header_color="rgb(120, 70, 70)",
|
|
31
|
-
max_height=200,
|
|
32
|
-
)
|
|
28
|
+
table_containers[table_name] = tables[table_name].create_component(f"main_{table_name}", max_height=200)
|
|
33
29
|
table_name = "feature_sets"
|
|
34
|
-
table_containers[table_name] = tables[table_name].create_component(
|
|
35
|
-
f"main_{table_name}",
|
|
36
|
-
header_color="rgb(110, 110, 70)",
|
|
37
|
-
max_height=200,
|
|
38
|
-
)
|
|
30
|
+
table_containers[table_name] = tables[table_name].create_component(f"main_{table_name}", max_height=200)
|
|
39
31
|
table_name = "models"
|
|
40
|
-
table_containers[table_name] = tables[table_name].create_component(
|
|
41
|
-
f"main_{table_name}",
|
|
42
|
-
header_color="rgb(60, 100, 60)",
|
|
43
|
-
max_height=500,
|
|
44
|
-
)
|
|
32
|
+
table_containers[table_name] = tables[table_name].create_component(f"main_{table_name}", max_height=500)
|
|
45
33
|
table_name = "endpoints"
|
|
46
|
-
table_containers[table_name] = tables[table_name].create_component(
|
|
47
|
-
f"main_{table_name}",
|
|
48
|
-
header_color="rgb(100, 60, 100)",
|
|
49
|
-
max_height=500,
|
|
50
|
-
)
|
|
34
|
+
table_containers[table_name] = tables[table_name].create_component(f"main_{table_name}", max_height=500)
|
|
51
35
|
|
|
52
36
|
# Set up our layout (Dash looks for a var called layout)
|
|
53
37
|
layout = main_layout(**table_containers)
|
{workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/models/callbacks.py
RENAMED
|
@@ -5,7 +5,6 @@ from dash import callback, no_update, Input, Output, State
|
|
|
5
5
|
from dash.exceptions import PreventUpdate
|
|
6
6
|
from urllib.parse import urlparse, parse_qs
|
|
7
7
|
|
|
8
|
-
|
|
9
8
|
# Workbench Imports
|
|
10
9
|
from workbench.api import ModelType
|
|
11
10
|
from workbench.web_interface.page_views.models_page_view import ModelsPageView
|
|
@@ -136,18 +135,16 @@ def setup_plugin_callbacks(plugins, scatter_plot_plugin: ScatterPlot, confusion_
|
|
|
136
135
|
if df is None:
|
|
137
136
|
raise PreventUpdate
|
|
138
137
|
|
|
139
|
-
# Get target column
|
|
138
|
+
# Get target column (residual is already computed in CachedModel)
|
|
140
139
|
target = model.target()
|
|
141
140
|
if isinstance(target, list):
|
|
142
141
|
target = next((t for t in target if t in inference_run), target[0])
|
|
143
142
|
|
|
144
|
-
df["error"] = abs(df["prediction"] - df[target])
|
|
145
|
-
|
|
146
143
|
scatter_props = scatter_plot_plugin.update_properties(
|
|
147
144
|
df,
|
|
148
145
|
x=target,
|
|
149
146
|
y="prediction",
|
|
150
|
-
color="
|
|
147
|
+
color="confidence",
|
|
151
148
|
regression_line=True,
|
|
152
149
|
)
|
|
153
150
|
cm_props = [no_update] * len(confusion_matrix_plugin.properties)
|
|
@@ -37,8 +37,8 @@ def models_layout(
|
|
|
37
37
|
[
|
|
38
38
|
# Column 1: Model Details
|
|
39
39
|
dbc.Col(
|
|
40
|
-
dcc.Loading(model_details, type="dot", color="#33aa33", delay_show=1000
|
|
41
|
-
width=
|
|
40
|
+
dcc.Loading(model_details, type="dot", color="#33aa33", delay_show=1000),
|
|
41
|
+
width=4,
|
|
42
42
|
className="text-break workbench-container",
|
|
43
43
|
style={"margin": "20px 0px 0px 0px", "padding": "20px"},
|
|
44
44
|
),
|
|
@@ -46,7 +46,11 @@ def models_layout(
|
|
|
46
46
|
dbc.Col(
|
|
47
47
|
[
|
|
48
48
|
dbc.Row(
|
|
49
|
-
dcc.Loading(
|
|
49
|
+
dcc.Loading(
|
|
50
|
+
model_plot,
|
|
51
|
+
type="graph",
|
|
52
|
+
delay_show=500,
|
|
53
|
+
),
|
|
50
54
|
className="workbench-container",
|
|
51
55
|
style={"margin": "20px 0px 10px 20px"},
|
|
52
56
|
),
|
|
@@ -56,7 +60,7 @@ def models_layout(
|
|
|
56
60
|
style={"margin": "20px 0px 10px 20px"},
|
|
57
61
|
),
|
|
58
62
|
],
|
|
59
|
-
width=
|
|
63
|
+
width=8,
|
|
60
64
|
style={"padding": "0px"},
|
|
61
65
|
),
|
|
62
66
|
],
|
|
@@ -25,7 +25,7 @@ register_page(
|
|
|
25
25
|
|
|
26
26
|
# Create a table to display the models
|
|
27
27
|
models_table = ag_table.AGTable()
|
|
28
|
-
models_table_component = models_table.create_component("models_table",
|
|
28
|
+
models_table_component = models_table.create_component("models_table", max_height=270)
|
|
29
29
|
|
|
30
30
|
# Create a Markdown component to display the model details
|
|
31
31
|
my_model_details = model_details.ModelDetails()
|
|
@@ -40,9 +40,11 @@ my_confusion_matrix = confusion_matrix.ConfusionMatrix()
|
|
|
40
40
|
confusion_matrix_component = my_confusion_matrix.create_component("model_confusion_matrix")
|
|
41
41
|
|
|
42
42
|
# Wrap both in visibility-controlled containers
|
|
43
|
+
# Show scatter plot by default (with "Waiting for Data..." placeholder)
|
|
44
|
+
# The callback will toggle visibility based on model type once data loads
|
|
43
45
|
model_plot_container = html.Div(
|
|
44
46
|
[
|
|
45
|
-
html.Div(scatter_plot_component, id="scatter-plot-container", style={"display": "
|
|
47
|
+
html.Div(scatter_plot_component, id="scatter-plot-container", style={"display": "block"}),
|
|
46
48
|
html.Div(confusion_matrix_component, id="confusion-matrix-container", style={"display": "none"}),
|
|
47
49
|
],
|
|
48
50
|
id="model-plot-container",
|
{workbench-0.8.224 → workbench-0.8.228}/applications/aws_dashboard/pages/pipelines/callbacks.py
RENAMED
|
@@ -6,7 +6,6 @@ from dash import callback, Output, Input, State
|
|
|
6
6
|
from dash.exceptions import PreventUpdate
|
|
7
7
|
from urllib.parse import urlparse, parse_qs
|
|
8
8
|
|
|
9
|
-
|
|
10
9
|
# Workbench Imports
|
|
11
10
|
from workbench.web_interface.page_views.pipelines_page_view import PipelinesPageView
|
|
12
11
|
from workbench.web_interface.components.plugins.ag_table import AGTable
|
|
@@ -11,7 +11,6 @@ from workbench.web_interface.components.plugins import scatter_plot, molecule_vi
|
|
|
11
11
|
from layout import compound_explorer_layout
|
|
12
12
|
import callbacks
|
|
13
13
|
|
|
14
|
-
|
|
15
14
|
# Note: The 'app' and 'server' objects need to be at the top level since NGINX/uWSGI needs to
|
|
16
15
|
# import this file and use the server object as an ^entry-point^ into the Dash Application Code
|
|
17
16
|
|
|
@@ -12,7 +12,7 @@ print(f"Account: {aws_account}")
|
|
|
12
12
|
print(f"Region: {aws_region}")
|
|
13
13
|
|
|
14
14
|
# When you want a different docker image change this line
|
|
15
|
-
dashboard_image = "public.ecr.aws/m6i5k1r2/workbench_dashboard:
|
|
15
|
+
dashboard_image = "public.ecr.aws/m6i5k1r2/workbench_dashboard:v0_8_227_amd64"
|
|
16
16
|
|
|
17
17
|
# Workbench Configuration
|
|
18
18
|
try:
|
|
@@ -12,7 +12,7 @@ print(f"Account: {aws_account}")
|
|
|
12
12
|
print(f"Region: {aws_region}")
|
|
13
13
|
|
|
14
14
|
# When you want a different docker image change this line
|
|
15
|
-
dashboard_image = "public.ecr.aws/m6i5k1r2/workbench_dashboard:
|
|
15
|
+
dashboard_image = "public.ecr.aws/m6i5k1r2/workbench_dashboard:v0_8_227_amd64"
|
|
16
16
|
|
|
17
17
|
# Workbench Configuration
|
|
18
18
|
try:
|
|
@@ -54,66 +54,30 @@ Bootstrap and Dash Bootstrap Components (DBC) provide mechanisms to control them
|
|
|
54
54
|
|
|
55
55
|
# Theming Strategy for Workbench Dashboard
|
|
56
56
|
|
|
57
|
-
## **
|
|
58
|
-
This focuses on setting a polished, cohesive interface at startup. It ensures:
|
|
57
|
+
## **How Theme Switching Works**
|
|
59
58
|
|
|
60
|
-
|
|
61
|
-
- The current system handles global styles via CSS (including Flask-served `custom.css`) and Plotly templates (via `pio.templates.default`) during app initialization.
|
|
62
|
-
2. **Highly Customizable Interface**:
|
|
63
|
-
- By leveraging both custom CSS and Plotly templates, you can style everything to match branding and preferences.
|
|
59
|
+
Workbench supports dynamic theme switching at runtime. When a user changes themes, the page reloads to ensure all styling systems are applied consistently.
|
|
64
60
|
|
|
65
|
-
### **Why
|
|
66
|
-
- **Plotly Templates**: Figures are automatically styled if `pio.templates.default` is set before app initialization.
|
|
67
|
-
- **CSS**: Dynamically affects the entire app without additional callbacks.
|
|
68
|
-
- **Scalability**: Suitable for large apps since styles and templates are applied globally.
|
|
61
|
+
### **Why We Use Page Reload**
|
|
69
62
|
|
|
70
|
-
|
|
63
|
+
1. **CSS and Plotly Templates**:
|
|
64
|
+
- Global styles are handled via CSS (including Flask-served `custom.css`) and Plotly templates (via `pio.templates.default`) during app initialization.
|
|
65
|
+
- Plotly figures have their styling "baked in" at render time—they don't respond to CSS variable changes.
|
|
71
66
|
|
|
72
|
-
|
|
73
|
-
|
|
67
|
+
2. **The Alternative Would Be Complex**:
|
|
68
|
+
- Without reload, every figure would need an explicit callback to re-render when themes change.
|
|
69
|
+
- With 20+ dynamic figures across plugin pages, wiring up individual callbacks isn't practical.
|
|
74
70
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
-
|
|
78
|
-
2. **Dynamic Content/Plugins**:
|
|
79
|
-
- We have plugin pages, views, and components. A Typical app has 20 figures dynamically created, adding complexity to centralized callbacks.
|
|
71
|
+
3. **Reload Is Simple and Reliable**:
|
|
72
|
+
- A page reload ensures all three systems (CSS, Plotly templates, Bootstrap) are applied correctly.
|
|
73
|
+
- Theme switching is typically a one-time choice, not something users toggle frequently.
|
|
80
74
|
|
|
75
|
+
### **What Happens on Theme Change**
|
|
81
76
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
- **Figures**: Update their `layout.template` or regenerate themselves.
|
|
87
|
-
- **HTML/CSS Components**: Dynamically update styles or toggle CSS classes.
|
|
88
|
-
|
|
89
|
-
### **Advantages of `set_theme()`**
|
|
90
|
-
1. **Encapsulation**:
|
|
91
|
-
- Each component knows how to update itself based on the theme.
|
|
92
|
-
2. **Simple Callback**:
|
|
93
|
-
- The theme switch callback iterates through all registered components and calls their `set_theme()` method.
|
|
94
|
-
3. **Scalable**:
|
|
95
|
-
- Suitable for multi-page apps with many dynamic components.
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
## **How the Two Phases Work Together**
|
|
100
|
-
### Phase 1:
|
|
101
|
-
- **Focus**: Global theming at app start-up.
|
|
102
|
-
- **What Works**:
|
|
103
|
-
- Plotly templates are applied to all figures by default.
|
|
104
|
-
- CSS styles are applied across the app.
|
|
105
|
-
|
|
106
|
-
### Phase 2:
|
|
107
|
-
- **Focus**: Extend components to dynamically update their theme.
|
|
108
|
-
- **What to Add**:
|
|
109
|
-
- Extend components with a `set_theme(theme_name: str)` method.
|
|
110
|
-
- The callback triggers `set_theme()` for each registered component.
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
## **Next Steps**
|
|
115
|
-
- **Phase 1**: Finalize CSS and Plotly template integration for start-up theming.
|
|
116
|
-
- **Phase 2**: Begin implementing a `set_theme()` system for individual components.
|
|
77
|
+
1. User selects a new theme
|
|
78
|
+
2. Theme preference is saved (persisted across sessions)
|
|
79
|
+
3. Page reloads
|
|
80
|
+
4. On reload, the new CSS stylesheet, Plotly template, and Bootstrap theme are all applied consistently
|
|
117
81
|
|
|
118
82
|
<br><br><br>
|
|
119
83
|
<br><br><br>
|
|
@@ -47,6 +47,36 @@ The `data-bs-theme=light/dark` html attribute affects **Bootstrap-specific compo
|
|
|
47
47
|
|
|
48
48
|
* Some figure parameters will automatically work, but for stuff like colorscales the component code needs to 'pull' that from the template meta data when it updates it's figure.
|
|
49
49
|
|
|
50
|
+
## Why We Require a Page Reload for Theme Switching
|
|
51
|
+
|
|
52
|
+
Workbench supports dynamic theme switching—you can change themes at runtime. However, switching themes triggers a page reload rather than an instant in-place update. If you've seen demos like the [Dash Bootstrap Theme Explorer Gallery](https://hellodash.pythonanywhere.com/theme-explorer/gallery) where themes switch instantly, you might wonder why we can't do the same.
|
|
53
|
+
|
|
54
|
+
### The Technical Reality
|
|
55
|
+
|
|
56
|
+
**Plotly figures don't respond to CSS variables.** Unlike Bootstrap components (buttons, cards, tables) which automatically re-style when `data-bs-theme` changes, Plotly figures have their styling "baked in" at render time. The figure's colors, fonts, and backgrounds are set when the figure is created—they don't dynamically respond to theme changes.
|
|
57
|
+
|
|
58
|
+
### What dash-bootstrap-templates Actually Does
|
|
59
|
+
|
|
60
|
+
Even the excellent [dash-bootstrap-templates](https://github.com/AnnMarieW/dash-bootstrap-templates) library has this limitation. From their docs:
|
|
61
|
+
|
|
62
|
+
> *"The All-in-One component switches the Bootstrap stylesheet and sets the default Plotly figure template, however, figures must be updated in a callback in order to render the figure with the new template."*
|
|
63
|
+
|
|
64
|
+
This means every figure needs an explicit callback to re-render when the theme changes. In a simple demo app with 3-5 figures, that's manageable. In Workbench, with 20+ dynamic figures across multiple plugin pages, wiring up individual callbacks for each figure isn't practical.
|
|
65
|
+
|
|
66
|
+
### Three Separate Styling Systems
|
|
67
|
+
|
|
68
|
+
| **System** | **What It Styles** | **Instant Switching?** |
|
|
69
|
+
|----------------------|---------------------------------|--------------------------------------------|
|
|
70
|
+
| CSS/Bootstrap | Layout, buttons, cards, tables | ✅ Yes (via `data-bs-theme`) |
|
|
71
|
+
| Plotly Templates | Figure axes, colors, fonts | ❌ No - requires figure re-render |
|
|
72
|
+
| Custom CSS | Non-Bootstrap elements | ⚠️ Requires stylesheet swap |
|
|
73
|
+
|
|
74
|
+
### Our Approach: Reload on Theme Change
|
|
75
|
+
|
|
76
|
+
Rather than implementing complex callback wiring for every figure across all plugin pages, Workbench takes a pragmatic approach: **when you switch themes, the page reloads**. This ensures all three styling systems (CSS, Plotly templates, and Bootstrap components) are applied consistently and correctly.
|
|
77
|
+
|
|
78
|
+
The reload is fast, and theme selection is typically a one-time choice rather than something users toggle frequently. This approach gives us full theme flexibility without the architectural complexity of in-place figure updates.
|
|
79
|
+
|
|
50
80
|
## Additional Resources
|
|
51
81
|
|
|
52
82
|
<img align="right" src="../images/scp.png" width="180">
|
|
@@ -3,12 +3,10 @@
|
|
|
3
3
|
import logging
|
|
4
4
|
from dash import dcc
|
|
5
5
|
|
|
6
|
-
|
|
7
6
|
# Workbench Imports
|
|
8
7
|
from workbench.web_interface.components.plugin_interface import PluginInterface, PluginPage, PluginInputType
|
|
9
8
|
from workbench.api.endpoint import Endpoint
|
|
10
9
|
|
|
11
|
-
|
|
12
10
|
# Get the Workbench logger
|
|
13
11
|
log = logging.getLogger("workbench")
|
|
14
12
|
|
|
@@ -99,7 +99,6 @@ from rdkit.ML.Descriptors import MoleculeDescriptors
|
|
|
99
99
|
from mordred import Calculator as MordredCalculator
|
|
100
100
|
from mordred import AcidBase, Aromatic, Constitutional, Chi, CarbonTypes
|
|
101
101
|
|
|
102
|
-
|
|
103
102
|
logger = logging.getLogger("workbench")
|
|
104
103
|
logger.setLevel(logging.DEBUG)
|
|
105
104
|
|