zenml-nightly 0.66.0.dev20240928__py3-none-any.whl → 0.68.1.dev20241102__py3-none-any.whl
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.
- README.md +18 -12
- RELEASE_NOTES.md +236 -0
- zenml/VERSION +1 -1
- zenml/__init__.py +5 -10
- zenml/analytics/context.py +16 -1
- zenml/analytics/enums.py +0 -13
- zenml/analytics/utils.py +18 -7
- zenml/artifact_stores/base_artifact_store.py +11 -0
- zenml/artifacts/artifact_config.py +19 -65
- zenml/artifacts/external_artifact.py +7 -53
- zenml/artifacts/external_artifact_config.py +21 -40
- zenml/artifacts/load_directory_materializer.py +91 -0
- zenml/artifacts/utils.py +204 -145
- zenml/cli/__init__.py +62 -127
- zenml/cli/base.py +8 -8
- zenml/cli/integration.py +0 -9
- zenml/cli/login.py +951 -0
- zenml/cli/pipeline.py +1 -1
- zenml/cli/served_model.py +8 -1
- zenml/cli/server.py +462 -577
- zenml/cli/service_accounts.py +4 -4
- zenml/cli/stack.py +78 -569
- zenml/cli/stack_components.py +5 -594
- zenml/cli/user_management.py +0 -12
- zenml/cli/utils.py +24 -142
- zenml/client.py +57 -40
- zenml/client_lazy_loader.py +29 -12
- zenml/config/compiler.py +7 -11
- zenml/config/global_config.py +9 -0
- zenml/config/pipeline_configurations.py +2 -1
- zenml/config/pipeline_run_configuration.py +2 -1
- zenml/config/server_config.py +7 -5
- zenml/config/step_configurations.py +2 -0
- zenml/constants.py +6 -42
- zenml/enums.py +1 -4
- zenml/environment.py +1 -315
- zenml/exceptions.py +12 -41
- zenml/hooks/hook_validators.py +1 -8
- zenml/integrations/airflow/orchestrators/airflow_orchestrator.py +2 -3
- zenml/integrations/argilla/__init__.py +1 -1
- zenml/integrations/argilla/annotators/argilla_annotator.py +234 -89
- zenml/integrations/argilla/flavors/argilla_annotator_flavor.py +10 -5
- zenml/integrations/aws/flavors/sagemaker_orchestrator_flavor.py +9 -5
- zenml/integrations/aws/orchestrators/sagemaker_orchestrator.py +15 -2
- zenml/integrations/aws/service_connectors/aws_service_connector.py +6 -0
- zenml/integrations/azure/flavors/azureml_orchestrator_flavor.py +5 -4
- zenml/integrations/azure/orchestrators/azureml_orchestrator.py +1 -1
- zenml/integrations/bentoml/model_deployers/bentoml_model_deployer.py +85 -19
- zenml/integrations/bentoml/services/__init__.py +15 -4
- zenml/integrations/bentoml/services/bentoml_container_deployment.py +399 -0
- zenml/integrations/bentoml/services/{bentoml_deployment.py → bentoml_local_deployment.py} +81 -40
- zenml/{steps/base_parameters.py → integrations/bentoml/services/deployment_type.py} +8 -5
- zenml/integrations/bentoml/steps/bento_builder.py +1 -0
- zenml/integrations/bentoml/steps/bentoml_deployer.py +93 -41
- zenml/integrations/github/code_repositories/github_code_repository.py +1 -1
- zenml/integrations/gitlab/code_repositories/gitlab_code_repository.py +6 -1
- zenml/integrations/huggingface/__init__.py +1 -6
- zenml/integrations/kaniko/image_builders/kaniko_image_builder.py +3 -3
- zenml/integrations/lightning/orchestrators/lightning_orchestrator.py +3 -3
- zenml/integrations/lightning/orchestrators/lightning_orchestrator_entrypoint.py +2 -2
- zenml/integrations/mlflow/experiment_trackers/mlflow_experiment_tracker.py +6 -3
- zenml/integrations/mlflow/model_registries/mlflow_model_registry.py +6 -0
- zenml/integrations/mlflow/services/mlflow_deployment.py +2 -2
- zenml/integrations/mlflow/steps/mlflow_deployer.py +1 -1
- zenml/integrations/mlflow/steps/mlflow_registry.py +1 -1
- zenml/integrations/neptune/experiment_trackers/run_state.py +2 -2
- zenml/integrations/pytorch/materializers/base_pytorch_materializer.py +8 -2
- zenml/integrations/pytorch/materializers/pytorch_module_materializer.py +4 -1
- zenml/integrations/s3/artifact_stores/s3_artifact_store.py +98 -0
- zenml/integrations/s3/flavors/s3_artifact_store_flavor.py +14 -0
- zenml/integrations/s3/utils.py +40 -0
- zenml/integrations/tensorflow/__init__.py +0 -9
- zenml/logging/step_logging.py +13 -15
- zenml/{new/pipelines → login}/__init__.py +4 -1
- zenml/login/credentials.py +346 -0
- zenml/login/credentials_store.py +603 -0
- zenml/{new → login/pro}/__init__.py +4 -1
- zenml/login/pro/client.py +496 -0
- zenml/login/pro/constants.py +34 -0
- zenml/{lineage_graph/edge.py → login/pro/models.py} +9 -8
- zenml/{zen_server/deploy/terraform/providers → login/pro/organization}/__init__.py +2 -2
- zenml/login/pro/organization/client.py +79 -0
- zenml/{lineage_graph/node/base_node.py → login/pro/organization/models.py} +13 -12
- zenml/{new/steps → login/pro/tenant}/__init__.py +2 -1
- zenml/login/pro/tenant/client.py +92 -0
- zenml/login/pro/tenant/models.py +174 -0
- zenml/login/pro/utils.py +121 -0
- zenml/{cli → login}/web_login.py +64 -28
- zenml/materializers/__init__.py +2 -0
- zenml/materializers/base_materializer.py +43 -9
- zenml/materializers/built_in_materializer.py +1 -1
- zenml/materializers/uuid_materializer.py +79 -0
- zenml/metadata/lazy_load.py +10 -7
- zenml/metadata/metadata_types.py +49 -0
- zenml/model/lazy_load.py +85 -4
- zenml/model/model.py +61 -83
- zenml/model/utils.py +47 -118
- zenml/models/__init__.py +6 -0
- zenml/models/v2/base/base.py +12 -8
- zenml/models/v2/base/filter.py +9 -0
- zenml/models/v2/core/artifact_version.py +53 -25
- zenml/models/v2/core/component.py +54 -19
- zenml/models/v2/core/flavor.py +13 -13
- zenml/models/v2/core/model.py +4 -1
- zenml/models/v2/core/model_version.py +4 -6
- zenml/models/v2/core/model_version_artifact.py +3 -1
- zenml/models/v2/core/model_version_pipeline_run.py +3 -1
- zenml/models/v2/core/pipeline.py +3 -1
- zenml/models/v2/core/pipeline_run.py +24 -3
- zenml/models/v2/core/run_metadata.py +2 -2
- zenml/models/v2/core/run_template.py +3 -1
- zenml/models/v2/core/stack.py +7 -3
- zenml/models/v2/core/step_run.py +58 -14
- zenml/models/v2/misc/auth_models.py +11 -2
- zenml/models/v2/misc/server_models.py +2 -4
- zenml/orchestrators/base_orchestrator.py +41 -4
- zenml/orchestrators/input_utils.py +52 -36
- zenml/orchestrators/step_launcher.py +50 -171
- zenml/orchestrators/step_run_utils.py +574 -0
- zenml/orchestrators/step_runner.py +83 -120
- zenml/orchestrators/utils.py +46 -180
- zenml/pipelines/__init__.py +3 -16
- zenml/{new/pipelines → pipelines}/pipeline_context.py +3 -18
- zenml/pipelines/pipeline_decorator.py +34 -60
- zenml/{new/pipelines/pipeline.py → pipelines/pipeline_definition.py} +210 -207
- zenml/{new/pipelines → pipelines}/run_utils.py +11 -10
- zenml/services/local/local_daemon_entrypoint.py +4 -4
- zenml/services/service.py +2 -2
- zenml/stack/stack.py +3 -108
- zenml/stack/stack_component.py +2 -78
- zenml/stack/utils.py +26 -14
- zenml/stack_deployments/aws_stack_deployment.py +3 -0
- zenml/step_operators/step_operator_entrypoint_configuration.py +1 -1
- zenml/steps/__init__.py +3 -9
- zenml/steps/base_step.py +25 -267
- zenml/steps/entrypoint_function_utils.py +2 -80
- zenml/{new/steps → steps}/step_context.py +12 -66
- zenml/steps/step_decorator.py +42 -89
- zenml/steps/step_invocation.py +16 -60
- zenml/steps/utils.py +4 -23
- zenml/utils/dashboard_utils.py +16 -51
- zenml/utils/materializer_utils.py +1 -1
- zenml/utils/requirements_utils.py +71 -0
- zenml/utils/singleton.py +15 -3
- zenml/utils/source_utils.py +39 -2
- zenml/utils/typing_utils.py +8 -28
- zenml/utils/visualization_utils.py +1 -1
- zenml/zen_server/auth.py +44 -39
- zenml/zen_server/dashboard/assets/{404-Y50hSt65.js → 404-DT4QRUqN.js} +1 -1
- zenml/zen_server/dashboard/assets/@radix-DP6vWzyx.js +85 -0
- zenml/zen_server/dashboard/assets/@react-router-BMhZulnd.js +29 -0
- zenml/zen_server/dashboard/assets/@reactflow-8U9qNlMR.js +17 -0
- zenml/zen_server/dashboard/assets/@tanstack-BUCbhJyH.js +22 -0
- zenml/zen_server/dashboard/assets/{AlertDialogDropdownItem-xLR9a1iw.js → AlertDialogDropdownItem-C6N2rGrB.js} +1 -1
- zenml/zen_server/dashboard/assets/{CodeSnippet-IxXNxUDa.js → CodeSnippet-CqybNv0k.js} +1 -1
- zenml/zen_server/dashboard/assets/{CollapsibleCard-BhutZbBL.js → CollapsibleCard-0r_8G2Lj.js} +1 -1
- zenml/zen_server/dashboard/assets/{Commands-Bf-rd1z8.js → Commands-BDjgBQKi.js} +1 -1
- zenml/zen_server/dashboard/assets/ComponentBadge-DUiEYJHu.js +1 -0
- zenml/zen_server/dashboard/assets/ComponentFallbackDialog-BFoH5K4V.js +1 -0
- zenml/zen_server/dashboard/assets/ComponentIcon-CAIoUis2.js +1 -0
- zenml/zen_server/dashboard/assets/{CopyButton-DcFHidFJ.js → CopyButton-C745BrKi.js} +1 -1
- zenml/zen_server/dashboard/assets/{CsvVizualization-QSbjrfxw.js → CsvVizualization-PpAq0CeZ.js} +5 -5
- zenml/zen_server/dashboard/assets/{DialogItem-Cd3HqST4.js → DialogItem-DcVCZEew.js} +1 -1
- zenml/zen_server/dashboard/assets/{DisplayDate-DkCy54Bp.js → DisplayDate-BeXgUG_C.js} +1 -1
- zenml/zen_server/dashboard/assets/{EmptyState-Cs3DEmso.js → EmptyState-DeK7H4pr.js} +1 -1
- zenml/zen_server/dashboard/assets/{Error-BhwdmqK7.js → Error-BMlzibXj.js} +1 -1
- zenml/zen_server/dashboard/assets/{Helpbox-0pBpTwTm.js → Helpbox-BLf40fLV.js} +1 -1
- zenml/zen_server/dashboard/assets/{Infobox-BTK_EUKT.js → Infobox-BwisKifi.js} +1 -1
- zenml/zen_server/dashboard/assets/{InlineAvatar-CA3DFMcM.js → InlineAvatar-jEgodSgX.js} +1 -1
- zenml/zen_server/dashboard/assets/{Lock-CmIn0szs.js → Lock-3lLt1ih0.js} +1 -1
- zenml/zen_server/dashboard/assets/MarkdownVisualization-8O9kTr-2.js +14 -0
- zenml/zen_server/dashboard/assets/{NumberBox-CrN0_kqI.js → NumberBox-T9eELfLZ.js} +1 -1
- zenml/zen_server/dashboard/assets/{Partials-QLOZw624.js → Partials-YPBB3V4q.js} +1 -1
- zenml/zen_server/dashboard/assets/{PasswordChecker-DE71J_3F.js → PasswordChecker-CW0kqY0W.js} +1 -1
- zenml/zen_server/dashboard/assets/{ProviderIcon-C16CCIN4.js → ProviderIcon-Bb3Xha5A.js} +1 -1
- zenml/zen_server/dashboard/assets/{ProviderRadio-D3FuCHf3.js → ProviderRadio-BROY1700.js} +1 -1
- zenml/zen_server/dashboard/assets/RunSelector-DCiL3M1c.js +1 -0
- zenml/zen_server/dashboard/assets/SearchField-DfUiGFVd.js +1 -0
- zenml/zen_server/dashboard/assets/{SecretTooltip-BaMwHF-Q.js → SecretTooltip-C_qByGWB.js} +1 -1
- zenml/zen_server/dashboard/assets/{SetPassword-DuIC65H9.js → SetPassword-7pRB00El.js} +1 -1
- zenml/zen_server/dashboard/assets/{Tick-DJTCF0Re.js → Tick-CykQFPj2.js} +1 -1
- zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-CUm-DMpw.js → UpdatePasswordSchemas-DckMEkFf.js} +1 -1
- zenml/zen_server/dashboard/assets/{UsageReason-CKw0juLF.js → UsageReason-DVceN14P.js} +1 -1
- zenml/zen_server/dashboard/assets/{WizardFooter-Cv9ApYWU.js → WizardFooter-CW0Cvd70.js} +1 -1
- zenml/zen_server/dashboard/assets/{check-circle-DOoS4yhF.js → check-circle-Dwxliy1Z.js} +1 -1
- zenml/zen_server/dashboard/assets/{chevron-down-Cwb-W_B_.js → chevron-down-8wLBS5pQ.js} +1 -1
- zenml/zen_server/dashboard/assets/{chevron-right-double-c9H46Kl8.js → chevron-right-double-DoD8iXWM.js} +1 -1
- zenml/zen_server/dashboard/assets/{cloud-only-BB4BVa6E.js → cloud-only-B-s_HMDm.js} +1 -1
- zenml/zen_server/dashboard/assets/{code-browser-BJYErIjr.js → code-browser-CZUQs3Wa.js} +1 -1
- zenml/zen_server/dashboard/assets/{copy-CaGlDsUy.js → copy-CaSMXwiU.js} +1 -1
- zenml/zen_server/dashboard/assets/{create-stack-F29xAUEx.js → create-stack-CEmaPZ4c.js} +1 -1
- zenml/zen_server/dashboard/assets/delete-run-D-LKbGyz.js +1 -0
- zenml/zen_server/dashboard/assets/{docker-BFAFXr2_.js → docker-BFNgg-z3.js} +1 -1
- zenml/zen_server/dashboard/assets/{dots-horizontal-C6K59vUm.js → dots-horizontal-DK5Duzx4.js} +1 -1
- zenml/zen_server/dashboard/assets/{form-schemas-BKXwSDK2.js → form-schemas-1AyOCx90.js} +1 -1
- zenml/zen_server/dashboard/assets/{gcp-Dj6ntk0L.js → gcp-7M2Yf3ZK.js} +1 -1
- zenml/zen_server/dashboard/assets/{help-CwN931fX.js → help-Dam461dC.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-5GJ5ysEZ.js → index-BVJ8n2-j.js} +1 -1
- zenml/zen_server/dashboard/assets/index-Bpmj40BI.js +1 -0
- zenml/zen_server/dashboard/assets/index-CbU4Ln_E.css +1 -0
- zenml/zen_server/dashboard/assets/{index-D-mtoBj3.js → index-DKPhqP2B.js} +1 -1
- zenml/zen_server/dashboard/assets/index-QQb7wQEC.js +55 -0
- zenml/zen_server/dashboard/assets/index.esm-cuVep_NJ.js +1 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-BLGc9T1a.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-ZzOtrSSW.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-D4Vwzodn.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-DH2hs3aW.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-BGBWG807.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-BuzJQFbW.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-BPnxn4xp.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-Dc4VJyIJ.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-BShVwWPj.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-CUiC4oBV.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-Bt9VVOA-.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-CaqZN2hq.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-400-normal-BZzXV7-1.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-400-normal-DxZsaF_h.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-500-normal-CeQXL5ds.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-500-normal-d_eO-yCQ.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-600-normal-CwicyhtI.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-600-normal-Dhlb-90d.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-Bput3-QP.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-DCpCPQOf.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-B6guLgqG.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-M2hEX8vc.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-C9WLioJ8.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-Cnui8OiR.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-400-normal-BOOGhInR.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-400-normal-gitzw0hO.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-500-normal-D2bGa7uu.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-500-normal-deR1Tlfd.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-600-normal-B5cFAncS.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-600-normal-D273HNI0.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-C1t-h-pH.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-hnt3BR84.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-CIS2RHJS.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-UMdmhHu2.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-BnYJhD27.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-CAF0vJDd.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-BUNmGMP1.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-DQPw2Hwd.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-Cm6aH8_k.woff +0 -0
- zenml/zen_server/dashboard/assets/{kubernetes-BjbR6D-1.js → kubernetes--g7r02Zu.js} +1 -1
- zenml/zen_server/dashboard/assets/{layout-Dru15_XR.js → layout-DCSYN7-C.js} +1 -1
- zenml/zen_server/dashboard/assets/{link-external-BT2L8hAQ.js → link-external-CBEk6kEG.js} +1 -1
- zenml/zen_server/dashboard/assets/{login-mutation-ax6iL2Mb.js → login-mutation-DTcAFP1l.js} +1 -1
- zenml/zen_server/dashboard/assets/{logs-GiDJXbLS.js → logs-D5bdJGur.js} +1 -1
- zenml/zen_server/dashboard/assets/not-found-Cc-JkRH2.js +1 -0
- zenml/zen_server/dashboard/assets/{package-DYKZ5jKW.js → package-Cs35Szwh.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-HkVBdZl6.js → page-9yplj5JT.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-uORspyRu.js → page-B-y2XKIc.js} +1 -1
- zenml/zen_server/dashboard/assets/page-BBpOxVcY.js +1 -0
- zenml/zen_server/dashboard/assets/{page-BDg1F-Ug.js → page-BQQKaabe.js} +2 -2
- zenml/zen_server/dashboard/assets/page-BRInM1Lg.js +1 -0
- zenml/zen_server/dashboard/assets/{page-CvKnNK1S.js → page-BjjlMk7s.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-BukXK1Aa.js → page-Bvd7YH2A.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DcTjHmYZ.js → page-C0N5q3l7.js} +1 -1
- zenml/zen_server/dashboard/assets/page-CT3Nep8W.js +1 -0
- zenml/zen_server/dashboard/assets/{page-DuqYMYmH.js → page-C_f47pBf.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DRfcRK1w.js → page-ClUVkl-O.js} +1 -1
- zenml/zen_server/dashboard/assets/page-Cmv8C_yM.js +3 -0
- zenml/zen_server/dashboard/assets/{page-p0BhSAWx.js → page-CyN2bdWG.js} +1 -1
- zenml/zen_server/dashboard/assets/page-CzzXH4fs.js +1 -0
- zenml/zen_server/dashboard/assets/{page-6mfzecin.js → page-DH_Z7iW1.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-8kYmrh0B.js → page-DIOXwhiD.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-BXarY9K2.js → page-DLixvR-7.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DTlGjgnG.js +1 -0
- zenml/zen_server/dashboard/assets/page-Dbpl86h0.js +1 -0
- zenml/zen_server/dashboard/assets/{page-MAXyfXBq.js → page-Ddgy6kDS.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DtCAfBLy.js +9 -0
- zenml/zen_server/dashboard/assets/{page-CKHNAq7z.js → page-Dx16z7nA.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DMSLXKGT.js → page-DzpVUZ8f.js} +1 -1
- zenml/zen_server/dashboard/assets/page-McUyYbo1.js +1 -0
- zenml/zen_server/dashboard/assets/{page-miU2rhYG.js → page-N4qoPHKb.js} +1 -1
- zenml/zen_server/dashboard/assets/page-T1P3RyAR.js +1 -0
- zenml/zen_server/dashboard/assets/{page-3qPX9WYH.js → page-bKaULTGG.js} +1 -1
- zenml/zen_server/dashboard/assets/page-sbXUJy9t.js +1 -0
- zenml/zen_server/dashboard/assets/{persist-CfJMar_k.js → persist-CP0JmYZ4.js} +1 -1
- zenml/zen_server/dashboard/assets/{persist-BxIR2XZs.js → persist-DNb5cdrU.js} +1 -1
- zenml/zen_server/dashboard/assets/{plus-Bc8eLSDM.js → plus-C9IxgN2M.js} +1 -1
- zenml/zen_server/dashboard/assets/{refresh-hfgWPeto.js → refresh-BVu22P_C.js} +1 -1
- zenml/zen_server/dashboard/assets/{rocket-SESCGQXm.js → rocket-CONEmRmB.js} +1 -1
- zenml/zen_server/dashboard/assets/{sharedSchema-vub0rii3.js → sharedSchema-TMLu-nYQ.js} +1 -1
- zenml/zen_server/dashboard/assets/stack-detail-query-xmYxSsUY.js +1 -0
- zenml/zen_server/dashboard/assets/{tick-circle-m-hJG8i9.js → tick-circle-CM1ZScbQ.js} +1 -1
- zenml/zen_server/dashboard/assets/{trash-DUWZWzse.js → trash-DkJHMOg7.js} +1 -1
- zenml/zen_server/dashboard/assets/{update-server-settings-mutation-FGVP7X2U.js → update-server-settings-mutation-DsU8cNVl.js} +1 -1
- zenml/zen_server/dashboard/assets/{url-CbAPzsmT.js → url-D5le3J4q.js} +1 -1
- zenml/zen_server/dashboard/assets/zod-D89GC_vc.js +1 -0
- zenml/zen_server/dashboard/index.html +7 -7
- zenml/zen_server/deploy/__init__.py +7 -16
- zenml/zen_server/deploy/base_provider.py +46 -73
- zenml/zen_server/deploy/{local → daemon}/__init__.py +3 -3
- zenml/zen_server/deploy/{local/local_provider.py → daemon/daemon_provider.py} +44 -63
- zenml/zen_server/deploy/{local/local_zen_server.py → daemon/daemon_zen_server.py} +50 -28
- zenml/zen_server/deploy/deployer.py +90 -171
- zenml/zen_server/deploy/deployment.py +20 -12
- zenml/zen_server/deploy/docker/docker_provider.py +9 -28
- zenml/zen_server/deploy/docker/docker_zen_server.py +19 -9
- zenml/zen_server/deploy/helm/Chart.yaml +1 -1
- zenml/zen_server/deploy/helm/README.md +2 -2
- zenml/zen_server/exceptions.py +11 -0
- zenml/zen_server/feature_gate/zenml_cloud_feature_gate.py +1 -1
- zenml/zen_server/jwt.py +9 -9
- zenml/zen_server/routers/artifact_version_endpoints.py +1 -1
- zenml/zen_server/routers/auth_endpoints.py +30 -8
- zenml/zen_server/routers/runs_endpoints.py +0 -28
- zenml/zen_server/routers/stack_components_endpoints.py +1 -1
- zenml/zen_server/routers/workspaces_endpoints.py +1 -1
- zenml/zen_server/template_execution/runner_entrypoint_configuration.py +7 -4
- zenml/zen_server/template_execution/utils.py +8 -63
- zenml/zen_server/utils.py +67 -69
- zenml/zen_server/zen_server_api.py +107 -17
- zenml/zen_stores/base_zen_store.py +4 -51
- zenml/zen_stores/migrations/versions/0.67.0_release.py +23 -0
- zenml/zen_stores/migrations/versions/0.68.0_release.py +23 -0
- zenml/zen_stores/migrations/versions/0.68.1_release.py +23 -0
- zenml/zen_stores/migrations/versions/1d8f30c54477_migrate_to_new_.py +124 -0
- zenml/zen_stores/migrations/versions/c22561cbb3a9_add_artifact_unique_constraints.py +86 -0
- zenml/zen_stores/rest_zen_store.py +325 -147
- zenml/zen_stores/schemas/api_key_schemas.py +9 -4
- zenml/zen_stores/schemas/artifact_schemas.py +21 -2
- zenml/zen_stores/schemas/artifact_visualization_schemas.py +1 -1
- zenml/zen_stores/schemas/component_schemas.py +49 -6
- zenml/zen_stores/schemas/device_schemas.py +9 -4
- zenml/zen_stores/schemas/flavor_schemas.py +1 -1
- zenml/zen_stores/schemas/model_schemas.py +1 -1
- zenml/zen_stores/schemas/pipeline_run_schemas.py +12 -4
- zenml/zen_stores/schemas/service_schemas.py +1 -1
- zenml/zen_stores/schemas/step_run_schemas.py +3 -3
- zenml/zen_stores/schemas/trigger_schemas.py +1 -1
- zenml/zen_stores/sql_zen_store.py +422 -145
- zenml/zen_stores/template_utils.py +3 -1
- {zenml_nightly-0.66.0.dev20240928.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/METADATA +20 -18
- {zenml_nightly-0.66.0.dev20240928.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/RECORD +343 -505
- {zenml_nightly-0.66.0.dev20240928.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/WHEEL +1 -1
- zenml/api.py +0 -60
- zenml/cli/stack_recipes.py +0 -469
- zenml/lineage_graph/__init__.py +0 -34
- zenml/lineage_graph/lineage_graph.py +0 -244
- zenml/lineage_graph/node/__init__.py +0 -32
- zenml/lineage_graph/node/artifact_node.py +0 -51
- zenml/lineage_graph/node/step_node.py +0 -41
- zenml/model/model_version.py +0 -38
- zenml/new/pipelines/code_archive.py +0 -157
- zenml/new/pipelines/pipeline_decorator.py +0 -118
- zenml/new/steps/step_decorator.py +0 -176
- zenml/pipelines/base_pipeline.py +0 -273
- zenml/post_execution/__init__.py +0 -30
- zenml/post_execution/pipeline.py +0 -55
- zenml/post_execution/pipeline_run.py +0 -55
- zenml/services/terraform/__init__.py +0 -14
- zenml/services/terraform/terraform_service.py +0 -441
- zenml/steps/external_artifact.py +0 -26
- zenml/steps/step_environment.py +0 -108
- zenml/steps/step_output.py +0 -36
- zenml/utils/mlstacks_utils.py +0 -635
- zenml/utils/terraform_utils.py +0 -43
- zenml/zen_server/dashboard/assets/@radix-DnFH_oo1.js +0 -85
- zenml/zen_server/dashboard/assets/@react-router-APVeuk-U.js +0 -29
- zenml/zen_server/dashboard/assets/@reactflow-ytavUpwh.js +0 -17
- zenml/zen_server/dashboard/assets/@tanstack-QbMbTrh5.js +0 -22
- zenml/zen_server/dashboard/assets/ComponentBadge-gKR1OIwG.js +0 -1
- zenml/zen_server/dashboard/assets/ExecutionStatus-D6r6aK8J.js +0 -1
- zenml/zen_server/dashboard/assets/MarkdownVisualization-DS05sfBm.js +0 -14
- zenml/zen_server/dashboard/assets/SearchField-BzmfxS0L.js +0 -1
- zenml/zen_server/dashboard/assets/all-pipeline-runs-query-BA3R2Sey.js +0 -1
- zenml/zen_server/dashboard/assets/delete-run-CP0pcJ3U.js +0 -1
- zenml/zen_server/dashboard/assets/index-BhJ6ZJxv.css +0 -1
- zenml/zen_server/dashboard/assets/index-Ci0nJ8EZ.js +0 -55
- zenml/zen_server/dashboard/assets/index.esm-BE1uqCX5.js +0 -1
- zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-Df6ckaLK.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-JrS_4yms.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-BRrLR67x.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-DskEQOpE.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-DDpWG8g5.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-iz1--dBq.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-CzG7Kr3z.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-tyfMZHQw.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-DOnSzjnx.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-Xebo2OyJ.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-DpA2xaRd.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-KAwcVx6H.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-400-normal-DQXyrmoy.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-400-normal-DvIPHDQ7.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-500-normal-BjpBGs91.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-500-normal-CmOavsDc.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-600-normal-B-l8Lzzd.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-600-normal-BLZsI-P3.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-CIdlr5YK.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-_Rr29XE2.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-2pdUafRD.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-Dtavx3qw.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-BmtRFZgT.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-CkBLDEl_.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-400-normal-BT1H-PT_.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-400-normal-Cdi8t5Mu.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-500-normal-D4I8BKCx.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-500-normal-kWhwEdDH.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-600-normal-B2Ssfs8e.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-600-normal-Dbvh0wvx.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-8tIzm-yw.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-D3W-OpO-.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-B9u8Q_zH.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-SuUkSNTU.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-Dg0Bk0Yr.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-ao35dkSb.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-Cnt0N5Vm.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-DIOGfGLL.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-0i6yoQMg.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-5IkPJ6Nk.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-BQ_dbMbg.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-DjnxGF-L.woff2 +0 -0
- zenml/zen_server/dashboard/assets/not-found-DbjllLY_.js +0 -1
- zenml/zen_server/dashboard/assets/page-B1n7_W7z.js +0 -1
- zenml/zen_server/dashboard/assets/page-BZZhLo2u.js +0 -1
- zenml/zen_server/dashboard/assets/page-Bbf_oBjn.js +0 -1
- zenml/zen_server/dashboard/assets/page-BjjuBvZG.js +0 -9
- zenml/zen_server/dashboard/assets/page-CHaQkFK5.js +0 -1
- zenml/zen_server/dashboard/assets/page-CS0SYFK8.js +0 -1
- zenml/zen_server/dashboard/assets/page-DGM1CbYT.js +0 -2
- zenml/zen_server/dashboard/assets/page-DOmIZ2ra.js +0 -1
- zenml/zen_server/dashboard/assets/page-DYVmJ9_w.js +0 -3
- zenml/zen_server/dashboard/assets/page-Dwow2doB.js +0 -1
- zenml/zen_server/dashboard/assets/stack-detail-query-DQcyzG-2.js +0 -1
- zenml/zen_server/dashboard/assets/zod-uFd1wBcd.js +0 -1
- zenml/zen_server/dashboard_legacy/_redirects +0 -1
- zenml/zen_server/dashboard_legacy/asset-manifest.json +0 -131
- zenml/zen_server/dashboard_legacy/favicon.ico +0 -0
- zenml/zen_server/dashboard_legacy/index.html +0 -1
- zenml/zen_server/dashboard_legacy/manifest.json +0 -25
- zenml/zen_server/dashboard_legacy/precache-manifest.6d320abb70db612019dda6c4948e7a90.js +0 -462
- zenml/zen_server/dashboard_legacy/robots.txt +0 -2
- zenml/zen_server/dashboard_legacy/service-worker.js +0 -39
- zenml/zen_server/dashboard_legacy/static/css/2.5b37d44a.chunk.css +0 -16
- zenml/zen_server/dashboard_legacy/static/css/2.5b37d44a.chunk.css.map +0 -1
- zenml/zen_server/dashboard_legacy/static/css/main.e79dff04.chunk.css +0 -2
- zenml/zen_server/dashboard_legacy/static/css/main.e79dff04.chunk.css.map +0 -1
- zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js +0 -3
- zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js.LICENSE.txt +0 -95
- zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js.map +0 -1
- zenml/zen_server/dashboard_legacy/static/js/main.fa9299d5.chunk.js +0 -2
- zenml/zen_server/dashboard_legacy/static/js/main.fa9299d5.chunk.js.map +0 -1
- zenml/zen_server/dashboard_legacy/static/js/runtime-main.bfca2edd.js +0 -2
- zenml/zen_server/dashboard_legacy/static/js/runtime-main.bfca2edd.js.map +0 -1
- zenml/zen_server/dashboard_legacy/static/media/AlertTriangle.28aee535.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/ArrowSquareOut.abfb9bc7.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Back.86c23a22.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/BookOpen.5cb101ff.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/BoundingBox.1eb98717.svg +0 -10
- zenml/zen_server/dashboard_legacy/static/media/Burger.9b1c67d7.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Cached.2381fb8d.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Calendar.356e11c7.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ChartBarHorizontal.0247447b.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/ChartLine.0d79e18d.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/ChatDots.2e1c9211.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Check.dad6beb2.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/CheckCircleFilled.c19566d0.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Checkbox.af50e31e.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ChevronDown.f860ce32.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ChevronDownLight.6642d756.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ChevronLeft.f6edfcdb.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/CircleCheck.f98fd6ca.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Clock.ffc9de95.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Close.74e9efbc.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/CloseWithBorder.6960930a.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/CloseWithoutBorder.cd6f71df.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/CloudArrowUp.0aecb235.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Code.ef0f33b5.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Config.0be63f8a.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Connector.9fd46ef1.svg +0 -10
- zenml/zen_server/dashboard_legacy/static/media/Copy.36e2112a.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Dashboard.d05787e0.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Data.b1c3b5f8.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Delete.3c361b28.svg +0 -8
- zenml/zen_server/dashboard_legacy/static/media/Docs.7541d478.svg +0 -7
- zenml/zen_server/dashboard_legacy/static/media/Download.fba04d87.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Edit.490eb294.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/EmptyRightArrow.23749d01.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Example.6396cd37.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Extension.1394cd4a.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Eye.d9e4ee62.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Failed.0213c1a0.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/FileText.1f15bacd.svg +0 -7
- zenml/zen_server/dashboard_legacy/static/media/Filter.ab6b9c0d.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Folders.12b29887.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/FunnelFill.6df4c143.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/GitCommit.7dd9c2aa.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/GitHub_Logo.cefc2023.png +0 -0
- zenml/zen_server/dashboard_legacy/static/media/Graph.2c63a892.svg +0 -11
- zenml/zen_server/dashboard_legacy/static/media/History.08329240.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Home.0843b0d5.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ImageBuilder.ea762d9c.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/InProgress.304a0edc.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Info.9fe10c5c.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/KeyboardReturn.491afbe3.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Link.72bbb55d.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Lock.30f5e1fe.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Lock2.a769ea52.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/LockKey.92f21621.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Logs.8bf4d005.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/MinusCircle.4188f418.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/ModelRegistry.f0de050a.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/MultiUser.a2ba7c67.svg +0 -10
- zenml/zen_server/dashboard_legacy/static/media/PaginationFirst.92628634.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/PaginationLast.00d3c732.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/PaginationNext.86158845.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/PaginationPrev.60c18a88.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Pen.f2d831d4.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/PhotoCamera.179d6d4c.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Pipeline.30d298b0.svg +0 -7
- zenml/zen_server/dashboard_legacy/static/media/Plus.5aa1c16b.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/PlusCircle.92d860dd.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Repositories.71a36b8c.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/RightArrow.f30d3871.svg +0 -29
- zenml/zen_server/dashboard_legacy/static/media/Rocket.63bf7b9d.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/RocketLaunch.1bff2b59.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Rubik-Medium.c87313aa.ttf +0 -0
- zenml/zen_server/dashboard_legacy/static/media/Rubik-Regular.b3d0902b.ttf +0 -0
- zenml/zen_server/dashboard_legacy/static/media/Run.daec4fb2.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Search.d1afcce5.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Settings.59ca73ae.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Share2.46c3ff66.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/SignOut.6aa718c5.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/SimplePlus.5cf7ec20.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/SingleUser.bef3a095.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/SourceCodePro-Regular.b484b32f.ttf +0 -0
- zenml/zen_server/dashboard_legacy/static/media/Stack.19b604ac.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/StackComponent.b1ba90b5.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Star.f0c25022.svg +0 -9
- zenml/zen_server/dashboard_legacy/static/media/StarOutline.94ca8cd9.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Storefront.4b4796fe.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Stream.543e3039.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/SupportAgent.510ddf1f.svg +0 -8
- zenml/zen_server/dashboard_legacy/static/media/Table.77033750.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Tool.d5785486.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/UserPlus.741a99d7.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Verified.0625b2a0.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/addNew.4fb6c939.svg +0 -8
- zenml/zen_server/dashboard_legacy/static/media/arrowClose.cbd53f3f.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/arrowOpen.6ceef0af.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/check_small.30bc0138.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/circleArrowSideClose.98d6013e.svg +0 -18
- zenml/zen_server/dashboard_legacy/static/media/circleArrowSideOpen.63653df6.svg +0 -18
- zenml/zen_server/dashboard_legacy/static/media/image.104fd14b.png +0 -0
- zenml/zen_server/dashboard_legacy/static/media/imageAddIcon.e83004a9.svg +0 -7
- zenml/zen_server/dashboard_legacy/static/media/logo.93333e5c.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/logo_small.4204397d.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/logo_white.d4b4414e.svg +0 -20
- zenml/zen_server/dashboard_legacy/static/media/notConnected.5e2c8ea7.svg +0 -8
- zenml/zen_server/dashboard_legacy/static/media/plugin-fallback.72c294e6.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/share.bcd998b0.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/stars.08a9b19a.svg +0 -8
- zenml/zen_server/deploy/terraform/__init__.py +0 -41
- zenml/zen_server/deploy/terraform/providers/aws_provider.py +0 -61
- zenml/zen_server/deploy/terraform/providers/azure_provider.py +0 -59
- zenml/zen_server/deploy/terraform/providers/gcp_provider.py +0 -59
- zenml/zen_server/deploy/terraform/providers/terraform_provider.py +0 -331
- zenml/zen_server/deploy/terraform/recipes/aws/.gitignore +0 -8
- zenml/zen_server/deploy/terraform/recipes/aws/helm.tf +0 -20
- zenml/zen_server/deploy/terraform/recipes/aws/ingress.tf +0 -30
- zenml/zen_server/deploy/terraform/recipes/aws/outputs.tf +0 -7
- zenml/zen_server/deploy/terraform/recipes/aws/printf.cmd +0 -2
- zenml/zen_server/deploy/terraform/recipes/aws/sql.tf +0 -62
- zenml/zen_server/deploy/terraform/recipes/aws/terraform.tf +0 -44
- zenml/zen_server/deploy/terraform/recipes/aws/variables.tf +0 -167
- zenml/zen_server/deploy/terraform/recipes/aws/vpc.tf +0 -47
- zenml/zen_server/deploy/terraform/recipes/aws/zen_server.tf +0 -103
- zenml/zen_server/deploy/terraform/recipes/azure/.gitignore +0 -8
- zenml/zen_server/deploy/terraform/recipes/azure/helm.tf +0 -20
- zenml/zen_server/deploy/terraform/recipes/azure/ingress.tf +0 -30
- zenml/zen_server/deploy/terraform/recipes/azure/key_vault.tf +0 -73
- zenml/zen_server/deploy/terraform/recipes/azure/outputs.tf +0 -7
- zenml/zen_server/deploy/terraform/recipes/azure/printf.cmd +0 -2
- zenml/zen_server/deploy/terraform/recipes/azure/rg.tf +0 -36
- zenml/zen_server/deploy/terraform/recipes/azure/sql.tf +0 -65
- zenml/zen_server/deploy/terraform/recipes/azure/terraform.tf +0 -52
- zenml/zen_server/deploy/terraform/recipes/azure/variables.tf +0 -176
- zenml/zen_server/deploy/terraform/recipes/azure/zen_server.tf +0 -103
- zenml/zen_server/deploy/terraform/recipes/gcp/.gitignore +0 -8
- zenml/zen_server/deploy/terraform/recipes/gcp/helm.tf +0 -20
- zenml/zen_server/deploy/terraform/recipes/gcp/ingress.tf +0 -30
- zenml/zen_server/deploy/terraform/recipes/gcp/outputs.tf +0 -7
- zenml/zen_server/deploy/terraform/recipes/gcp/printf.cmd +0 -2
- zenml/zen_server/deploy/terraform/recipes/gcp/sql.tf +0 -64
- zenml/zen_server/deploy/terraform/recipes/gcp/terraform.tf +0 -44
- zenml/zen_server/deploy/terraform/recipes/gcp/variables.tf +0 -171
- zenml/zen_server/deploy/terraform/recipes/gcp/zen_server.tf +0 -114
- zenml/zen_server/deploy/terraform/terraform_zen_server.py +0 -246
- /zenml/{new/pipelines → pipelines}/build_utils.py +0 -0
- /zenml/{new/steps → steps}/decorated_step.py +0 -0
- {zenml_nightly-0.66.0.dev20240928.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.66.0.dev20240928.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/entry_points.txt +0 -0
zenml/models/v2/core/model.py
CHANGED
@@ -82,6 +82,7 @@ class ModelRequest(WorkspaceScopedRequest):
|
|
82
82
|
)
|
83
83
|
tags: Optional[List[str]] = Field(
|
84
84
|
title="Tags associated with the model",
|
85
|
+
default=None,
|
85
86
|
)
|
86
87
|
save_models_to_registry: bool = Field(
|
87
88
|
title="Whether to save all ModelArtifacts to Model Registry",
|
@@ -367,7 +368,9 @@ class ModelFilter(WorkspaceScopedTaggableFilter):
|
|
367
368
|
user_filter = and_(
|
368
369
|
ModelSchema.user_id == UserSchema.id,
|
369
370
|
self.generate_name_or_id_query_conditions(
|
370
|
-
value=self.user,
|
371
|
+
value=self.user,
|
372
|
+
table=UserSchema,
|
373
|
+
additional_columns=["full_name"],
|
371
374
|
),
|
372
375
|
)
|
373
376
|
custom_filters.append(user_filter)
|
@@ -325,14 +325,11 @@ class ModelVersionResponse(
|
|
325
325
|
# Helper functions
|
326
326
|
def to_model_class(
|
327
327
|
self,
|
328
|
-
|
329
|
-
suppress_class_validation_warnings: bool = False,
|
328
|
+
suppress_class_validation_warnings: bool = True,
|
330
329
|
) -> "Model":
|
331
330
|
"""Convert response model to Model object.
|
332
331
|
|
333
332
|
Args:
|
334
|
-
was_created_in_this_run: Whether model version was created during
|
335
|
-
the current run.
|
336
333
|
suppress_class_validation_warnings: internally used to suppress
|
337
334
|
repeated warnings.
|
338
335
|
|
@@ -352,7 +349,6 @@ class ModelVersionResponse(
|
|
352
349
|
ethics=self.model.ethics,
|
353
350
|
tags=[t.name for t in self.tags],
|
354
351
|
version=self.name,
|
355
|
-
was_created_in_this_run=was_created_in_this_run,
|
356
352
|
suppress_class_validation_warnings=suppress_class_validation_warnings,
|
357
353
|
model_version_id=self.id,
|
358
354
|
)
|
@@ -664,7 +660,9 @@ class ModelVersionFilter(WorkspaceScopedTaggableFilter):
|
|
664
660
|
user_filter = and_(
|
665
661
|
ModelVersionSchema.user_id == UserSchema.id,
|
666
662
|
self.generate_name_or_id_query_conditions(
|
667
|
-
value=self.user,
|
663
|
+
value=self.user,
|
664
|
+
table=UserSchema,
|
665
|
+
additional_columns=["full_name"],
|
668
666
|
),
|
669
667
|
)
|
670
668
|
custom_filters.append(user_filter)
|
@@ -294,7 +294,9 @@ class ModelVersionArtifactFilter(WorkspaceScopedFilter):
|
|
294
294
|
== ArtifactVersionSchema.id,
|
295
295
|
ArtifactVersionSchema.user_id == UserSchema.id,
|
296
296
|
self.generate_name_or_id_query_conditions(
|
297
|
-
value=self.user,
|
297
|
+
value=self.user,
|
298
|
+
table=UserSchema,
|
299
|
+
additional_columns=["full_name"],
|
298
300
|
),
|
299
301
|
)
|
300
302
|
custom_filters.append(user_filter)
|
@@ -218,7 +218,9 @@ class ModelVersionPipelineRunFilter(WorkspaceScopedFilter):
|
|
218
218
|
== PipelineRunSchema.id,
|
219
219
|
PipelineRunSchema.user_id == UserSchema.id,
|
220
220
|
self.generate_name_or_id_query_conditions(
|
221
|
-
value=self.user,
|
221
|
+
value=self.user,
|
222
|
+
table=UserSchema,
|
223
|
+
additional_columns=["full_name"],
|
222
224
|
),
|
223
225
|
)
|
224
226
|
custom_filters.append(user_filter)
|
zenml/models/v2/core/pipeline.py
CHANGED
@@ -364,7 +364,9 @@ class PipelineFilter(WorkspaceScopedTaggableFilter):
|
|
364
364
|
user_filter = and_(
|
365
365
|
PipelineSchema.user_id == UserSchema.id,
|
366
366
|
self.generate_name_or_id_query_conditions(
|
367
|
-
value=self.user,
|
367
|
+
value=self.user,
|
368
|
+
table=UserSchema,
|
369
|
+
additional_columns=["full_name"],
|
368
370
|
),
|
369
371
|
)
|
370
372
|
custom_filters.append(user_filter)
|
@@ -31,7 +31,6 @@ from zenml.config.pipeline_configurations import PipelineConfiguration
|
|
31
31
|
from zenml.constants import STR_FIELD_MAX_LENGTH
|
32
32
|
from zenml.enums import ExecutionStatus
|
33
33
|
from zenml.models.v2.base.scoped import (
|
34
|
-
WorkspaceScopedFilter,
|
35
34
|
WorkspaceScopedRequest,
|
36
35
|
WorkspaceScopedResponse,
|
37
36
|
WorkspaceScopedResponseBody,
|
@@ -575,7 +574,7 @@ class PipelineRunFilter(WorkspaceScopedTaggableFilter):
|
|
575
574
|
"""Model to enable advanced filtering of all Workspaces."""
|
576
575
|
|
577
576
|
FILTER_EXCLUDE_FIELDS: ClassVar[List[str]] = [
|
578
|
-
*
|
577
|
+
*WorkspaceScopedTaggableFilter.FILTER_EXCLUDE_FIELDS,
|
579
578
|
"unlisted",
|
580
579
|
"code_repository_id",
|
581
580
|
"build_id",
|
@@ -587,6 +586,7 @@ class PipelineRunFilter(WorkspaceScopedTaggableFilter):
|
|
587
586
|
"stack",
|
588
587
|
"code_repository",
|
589
588
|
"model",
|
589
|
+
"stack_component",
|
590
590
|
"pipeline_name",
|
591
591
|
"templatable",
|
592
592
|
]
|
@@ -689,6 +689,10 @@ class PipelineRunFilter(WorkspaceScopedTaggableFilter):
|
|
689
689
|
default=None,
|
690
690
|
description="Name/ID of the model associated with the run.",
|
691
691
|
)
|
692
|
+
stack_component: Optional[Union[UUID, str]] = Field(
|
693
|
+
default=None,
|
694
|
+
description="Name/ID of the stack component associated with the run.",
|
695
|
+
)
|
692
696
|
templatable: Optional[bool] = Field(
|
693
697
|
default=None, description="Whether the run is templatable."
|
694
698
|
)
|
@@ -717,6 +721,8 @@ class PipelineRunFilter(WorkspaceScopedTaggableFilter):
|
|
717
721
|
PipelineRunSchema,
|
718
722
|
PipelineSchema,
|
719
723
|
ScheduleSchema,
|
724
|
+
StackComponentSchema,
|
725
|
+
StackCompositionSchema,
|
720
726
|
StackSchema,
|
721
727
|
UserSchema,
|
722
728
|
)
|
@@ -773,7 +779,9 @@ class PipelineRunFilter(WorkspaceScopedTaggableFilter):
|
|
773
779
|
user_filter = and_(
|
774
780
|
PipelineRunSchema.user_id == UserSchema.id,
|
775
781
|
self.generate_name_or_id_query_conditions(
|
776
|
-
value=self.user,
|
782
|
+
value=self.user,
|
783
|
+
table=UserSchema,
|
784
|
+
additional_columns=["full_name"],
|
777
785
|
),
|
778
786
|
)
|
779
787
|
custom_filters.append(user_filter)
|
@@ -822,6 +830,19 @@ class PipelineRunFilter(WorkspaceScopedTaggableFilter):
|
|
822
830
|
)
|
823
831
|
custom_filters.append(model_filter)
|
824
832
|
|
833
|
+
if self.stack_component:
|
834
|
+
component_filter = and_(
|
835
|
+
PipelineRunSchema.deployment_id == PipelineDeploymentSchema.id,
|
836
|
+
PipelineDeploymentSchema.stack_id == StackSchema.id,
|
837
|
+
StackSchema.id == StackCompositionSchema.stack_id,
|
838
|
+
StackCompositionSchema.component_id == StackComponentSchema.id,
|
839
|
+
self.generate_name_or_id_query_conditions(
|
840
|
+
value=self.stack_component,
|
841
|
+
table=StackComponentSchema,
|
842
|
+
),
|
843
|
+
)
|
844
|
+
custom_filters.append(component_filter)
|
845
|
+
|
825
846
|
if self.pipeline_name:
|
826
847
|
pipeline_name_filter = and_(
|
827
848
|
PipelineRunSchema.pipeline_id == PipelineSchema.id,
|
@@ -21,7 +21,6 @@ from pydantic import Field, field_validator
|
|
21
21
|
from zenml.constants import STR_FIELD_MAX_LENGTH, TEXT_FIELD_MAX_LENGTH
|
22
22
|
from zenml.enums import MetadataResourceTypes
|
23
23
|
from zenml.metadata.metadata_types import MetadataType, MetadataTypeEnum
|
24
|
-
from zenml.model.model import Model
|
25
24
|
from zenml.models.v2.base.scoped import (
|
26
25
|
WorkspaceScopedFilter,
|
27
26
|
WorkspaceScopedRequest,
|
@@ -239,7 +238,8 @@ class LazyRunMetadataResponse(RunMetadataResponse):
|
|
239
238
|
lazy_load_artifact_name: Optional[str] = None
|
240
239
|
lazy_load_artifact_version: Optional[str] = None
|
241
240
|
lazy_load_metadata_name: Optional[str] = None
|
242
|
-
|
241
|
+
lazy_load_model_name: str
|
242
|
+
lazy_load_model_version: Optional[str] = None
|
243
243
|
|
244
244
|
def get_body(self) -> None: # type: ignore[override]
|
245
245
|
"""Protects from misuse of the lazy loader.
|
@@ -413,7 +413,9 @@ class RunTemplateFilter(WorkspaceScopedTaggableFilter):
|
|
413
413
|
user_filter = and_(
|
414
414
|
RunTemplateSchema.user_id == UserSchema.id,
|
415
415
|
self.generate_name_or_id_query_conditions(
|
416
|
-
value=self.user,
|
416
|
+
value=self.user,
|
417
|
+
table=UserSchema,
|
418
|
+
additional_columns=["full_name"],
|
417
419
|
),
|
418
420
|
)
|
419
421
|
custom_filters.append(user_filter)
|
zenml/models/v2/core/stack.py
CHANGED
@@ -228,7 +228,7 @@ class StackResponse(
|
|
228
228
|
component_dict = dict(
|
229
229
|
name=component.name,
|
230
230
|
type=str(component.type),
|
231
|
-
flavor=component.
|
231
|
+
flavor=component.flavor_name,
|
232
232
|
)
|
233
233
|
configuration = json.loads(
|
234
234
|
component.get_metadata().model_dump_json(
|
@@ -255,7 +255,9 @@ class StackResponse(
|
|
255
255
|
Dict of analytics metadata.
|
256
256
|
"""
|
257
257
|
metadata = super().get_analytics_metadata()
|
258
|
-
metadata.update(
|
258
|
+
metadata.update(
|
259
|
+
{ct: c[0].flavor_name for ct, c in self.components.items()}
|
260
|
+
)
|
259
261
|
|
260
262
|
if self.labels is not None:
|
261
263
|
metadata.update(
|
@@ -381,7 +383,9 @@ class StackFilter(WorkspaceScopedFilter):
|
|
381
383
|
user_filter = and_(
|
382
384
|
StackSchema.user_id == UserSchema.id,
|
383
385
|
self.generate_name_or_id_query_conditions(
|
384
|
-
value=self.user,
|
386
|
+
value=self.user,
|
387
|
+
table=UserSchema,
|
388
|
+
additional_columns=["full_name"],
|
385
389
|
),
|
386
390
|
)
|
387
391
|
custom_filters.append(user_filter)
|
zenml/models/v2/core/step_run.py
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
"""Models representing steps runs."""
|
15
15
|
|
16
16
|
from datetime import datetime
|
17
|
-
from typing import TYPE_CHECKING, Dict, List, Optional, Union
|
17
|
+
from typing import TYPE_CHECKING, ClassVar, Dict, List, Optional, Union
|
18
18
|
from uuid import UUID
|
19
19
|
|
20
20
|
from pydantic import BaseModel, ConfigDict, Field
|
@@ -33,6 +33,8 @@ from zenml.models.v2.base.scoped import (
|
|
33
33
|
from zenml.models.v2.core.model_version import ModelVersionResponse
|
34
34
|
|
35
35
|
if TYPE_CHECKING:
|
36
|
+
from sqlalchemy.sql.elements import ColumnElement
|
37
|
+
|
36
38
|
from zenml.models.v2.core.artifact_version import ArtifactVersionResponse
|
37
39
|
from zenml.models.v2.core.logs import (
|
38
40
|
LogsRequest,
|
@@ -156,6 +158,14 @@ class StepRunResponseBody(WorkspaceScopedResponseBody):
|
|
156
158
|
"""Response body for step runs."""
|
157
159
|
|
158
160
|
status: ExecutionStatus = Field(title="The status of the step.")
|
161
|
+
start_time: Optional[datetime] = Field(
|
162
|
+
title="The start time of the step run.",
|
163
|
+
default=None,
|
164
|
+
)
|
165
|
+
end_time: Optional[datetime] = Field(
|
166
|
+
title="The end time of the step run.",
|
167
|
+
default=None,
|
168
|
+
)
|
159
169
|
inputs: Dict[str, "ArtifactVersionResponse"] = Field(
|
160
170
|
title="The input artifact versions of the step run.",
|
161
171
|
default={},
|
@@ -201,16 +211,6 @@ class StepRunResponseMetadata(WorkspaceScopedResponseMetadata):
|
|
201
211
|
max_length=TEXT_FIELD_MAX_LENGTH,
|
202
212
|
)
|
203
213
|
|
204
|
-
# Timestamps
|
205
|
-
start_time: Optional[datetime] = Field(
|
206
|
-
title="The start time of the step run.",
|
207
|
-
default=None,
|
208
|
-
)
|
209
|
-
end_time: Optional[datetime] = Field(
|
210
|
-
title="The end time of the step run.",
|
211
|
-
default=None,
|
212
|
-
)
|
213
|
-
|
214
214
|
# References
|
215
215
|
logs: Optional["LogsResponse"] = Field(
|
216
216
|
title="Logs associated with this step run.",
|
@@ -409,7 +409,7 @@ class StepRunResponse(
|
|
409
409
|
Returns:
|
410
410
|
the value of the property.
|
411
411
|
"""
|
412
|
-
return self.
|
412
|
+
return self.get_body().start_time
|
413
413
|
|
414
414
|
@property
|
415
415
|
def end_time(self) -> Optional[datetime]:
|
@@ -418,7 +418,7 @@ class StepRunResponse(
|
|
418
418
|
Returns:
|
419
419
|
the value of the property.
|
420
420
|
"""
|
421
|
-
return self.
|
421
|
+
return self.get_body().end_time
|
422
422
|
|
423
423
|
@property
|
424
424
|
def logs(self) -> Optional["LogsResponse"]:
|
@@ -490,6 +490,11 @@ class StepRunResponse(
|
|
490
490
|
class StepRunFilter(WorkspaceScopedFilter):
|
491
491
|
"""Model to enable advanced filtering of step runs."""
|
492
492
|
|
493
|
+
FILTER_EXCLUDE_FIELDS: ClassVar[List[str]] = [
|
494
|
+
*WorkspaceScopedFilter.FILTER_EXCLUDE_FIELDS,
|
495
|
+
"model",
|
496
|
+
]
|
497
|
+
|
493
498
|
name: Optional[str] = Field(
|
494
499
|
default=None,
|
495
500
|
description="Name of the step run",
|
@@ -521,6 +526,11 @@ class StepRunFilter(WorkspaceScopedFilter):
|
|
521
526
|
description="Pipeline run of this step run",
|
522
527
|
union_mode="left_to_right",
|
523
528
|
)
|
529
|
+
deployment_id: Optional[Union[UUID, str]] = Field(
|
530
|
+
default=None,
|
531
|
+
description="Deployment of this step run",
|
532
|
+
union_mode="left_to_right",
|
533
|
+
)
|
524
534
|
original_step_run_id: Optional[Union[UUID, str]] = Field(
|
525
535
|
default=None,
|
526
536
|
description="Original id for this step run",
|
@@ -538,8 +548,42 @@ class StepRunFilter(WorkspaceScopedFilter):
|
|
538
548
|
)
|
539
549
|
model_version_id: Optional[Union[UUID, str]] = Field(
|
540
550
|
default=None,
|
541
|
-
description="Model version associated with the
|
551
|
+
description="Model version associated with the step run.",
|
542
552
|
union_mode="left_to_right",
|
543
553
|
)
|
554
|
+
model: Optional[Union[UUID, str]] = Field(
|
555
|
+
default=None,
|
556
|
+
description="Name/ID of the model associated with the step run.",
|
557
|
+
)
|
544
558
|
|
545
559
|
model_config = ConfigDict(protected_namespaces=())
|
560
|
+
|
561
|
+
def get_custom_filters(
|
562
|
+
self,
|
563
|
+
) -> List["ColumnElement[bool]"]:
|
564
|
+
"""Get custom filters.
|
565
|
+
|
566
|
+
Returns:
|
567
|
+
A list of custom filters.
|
568
|
+
"""
|
569
|
+
custom_filters = super().get_custom_filters()
|
570
|
+
|
571
|
+
from sqlmodel import and_
|
572
|
+
|
573
|
+
from zenml.zen_stores.schemas import (
|
574
|
+
ModelSchema,
|
575
|
+
ModelVersionSchema,
|
576
|
+
StepRunSchema,
|
577
|
+
)
|
578
|
+
|
579
|
+
if self.model:
|
580
|
+
model_filter = and_(
|
581
|
+
StepRunSchema.model_version_id == ModelVersionSchema.id,
|
582
|
+
ModelVersionSchema.model_id == ModelSchema.id,
|
583
|
+
self.generate_name_or_id_query_conditions(
|
584
|
+
value=self.model, table=ModelSchema
|
585
|
+
),
|
586
|
+
)
|
587
|
+
custom_filters.append(model_filter)
|
588
|
+
|
589
|
+
return custom_filters
|
@@ -13,10 +13,10 @@
|
|
13
13
|
# permissions and limitations under the License.
|
14
14
|
"""Models representing OAuth2 requests and responses."""
|
15
15
|
|
16
|
-
from typing import Optional
|
16
|
+
from typing import Any, Dict, Optional
|
17
17
|
from uuid import UUID
|
18
18
|
|
19
|
-
from pydantic import BaseModel
|
19
|
+
from pydantic import BaseModel, ConfigDict
|
20
20
|
|
21
21
|
from zenml.enums import OAuthGrantTypes
|
22
22
|
|
@@ -29,6 +29,7 @@ class OAuthDeviceAuthorizationRequest(BaseModel):
|
|
29
29
|
"""OAuth2 device authorization grant request."""
|
30
30
|
|
31
31
|
client_id: UUID
|
32
|
+
device_id: Optional[UUID] = None
|
32
33
|
|
33
34
|
|
34
35
|
class OAuthDeviceVerificationRequest(BaseModel):
|
@@ -119,6 +120,14 @@ class OAuthTokenResponse(BaseModel):
|
|
119
120
|
expires_in: Optional[int] = None
|
120
121
|
refresh_token: Optional[str] = None
|
121
122
|
scope: Optional[str] = None
|
123
|
+
cookie_name: Optional[str] = None
|
124
|
+
device_id: Optional[UUID] = None
|
125
|
+
device_metadata: Optional[Dict[str, Any]] = None
|
126
|
+
|
127
|
+
model_config = ConfigDict(
|
128
|
+
# Allow extra attributes to allow compatibility with different versions
|
129
|
+
extra="allow",
|
130
|
+
)
|
122
131
|
|
123
132
|
|
124
133
|
class OAuthRedirectResponse(BaseModel):
|
@@ -52,6 +52,8 @@ class ServerModel(BaseModel):
|
|
52
52
|
|
53
53
|
id: UUID = Field(default_factory=uuid4, title="The unique server id.")
|
54
54
|
|
55
|
+
name: Optional[str] = Field(None, title="The name of the ZenML server.")
|
56
|
+
|
55
57
|
version: str = Field(
|
56
58
|
title="The ZenML version that the server is running.",
|
57
59
|
)
|
@@ -99,10 +101,6 @@ class ServerModel(BaseModel):
|
|
99
101
|
{},
|
100
102
|
title="The metadata associated with the server.",
|
101
103
|
)
|
102
|
-
use_legacy_dashboard: bool = Field(
|
103
|
-
False,
|
104
|
-
title="Flag to indicate whether the server is using the legacy dashboard.",
|
105
|
-
)
|
106
104
|
|
107
105
|
last_user_activity: Optional[datetime] = Field(
|
108
106
|
None,
|
@@ -18,6 +18,10 @@ from typing import TYPE_CHECKING, Any, Dict, Iterator, Optional, Type, cast
|
|
18
18
|
|
19
19
|
from pydantic import model_validator
|
20
20
|
|
21
|
+
from zenml.constants import (
|
22
|
+
ENV_ZENML_PREVENT_CLIENT_SIDE_CACHING,
|
23
|
+
handle_bool_env_var,
|
24
|
+
)
|
21
25
|
from zenml.enums import ExecutionStatus, StackComponentType
|
22
26
|
from zenml.logger import get_logger
|
23
27
|
from zenml.metadata.metadata_types import MetadataType
|
@@ -162,9 +166,8 @@ class BaseOrchestrator(StackComponent, ABC):
|
|
162
166
|
environment: Environment variables to set in the orchestration
|
163
167
|
environment. These don't need to be set if running locally.
|
164
168
|
|
165
|
-
|
166
|
-
|
167
|
-
`pipeline_instance.run()` call when someone is running a pipeline.
|
169
|
+
Yields:
|
170
|
+
Metadata for the pipeline run.
|
168
171
|
"""
|
169
172
|
|
170
173
|
def run(
|
@@ -172,7 +175,7 @@ class BaseOrchestrator(StackComponent, ABC):
|
|
172
175
|
deployment: "PipelineDeploymentResponse",
|
173
176
|
stack: "Stack",
|
174
177
|
placeholder_run: Optional["PipelineRunResponse"] = None,
|
175
|
-
) ->
|
178
|
+
) -> None:
|
176
179
|
"""Runs a pipeline on a stack.
|
177
180
|
|
178
181
|
Args:
|
@@ -185,6 +188,40 @@ class BaseOrchestrator(StackComponent, ABC):
|
|
185
188
|
|
186
189
|
environment = get_config_environment_vars(deployment=deployment)
|
187
190
|
|
191
|
+
prevent_client_side_caching = handle_bool_env_var(
|
192
|
+
ENV_ZENML_PREVENT_CLIENT_SIDE_CACHING, default=False
|
193
|
+
)
|
194
|
+
|
195
|
+
if (
|
196
|
+
placeholder_run
|
197
|
+
and not deployment.schedule
|
198
|
+
and not prevent_client_side_caching
|
199
|
+
):
|
200
|
+
from zenml.orchestrators import step_run_utils
|
201
|
+
|
202
|
+
cached_invocations = step_run_utils.create_cached_step_runs(
|
203
|
+
deployment=deployment,
|
204
|
+
pipeline_run=placeholder_run,
|
205
|
+
stack=stack,
|
206
|
+
)
|
207
|
+
|
208
|
+
for invocation_id in cached_invocations:
|
209
|
+
# Remove the cached step invocations from the deployment so
|
210
|
+
# the orchestrator does not try to run them
|
211
|
+
deployment.step_configurations.pop(invocation_id)
|
212
|
+
|
213
|
+
for step in deployment.step_configurations.values():
|
214
|
+
for invocation_id in cached_invocations:
|
215
|
+
if invocation_id in step.spec.upstream_steps:
|
216
|
+
step.spec.upstream_steps.remove(invocation_id)
|
217
|
+
|
218
|
+
if len(deployment.step_configurations) == 0:
|
219
|
+
# All steps were cached, we update the pipeline run status and
|
220
|
+
# don't actually use the orchestrator to run the pipeline
|
221
|
+
self._cleanup_run()
|
222
|
+
logger.info("All steps of the pipeline run were cached.")
|
223
|
+
return
|
224
|
+
|
188
225
|
try:
|
189
226
|
if metadata_iterator := self.prepare_or_run_pipeline(
|
190
227
|
deployment=deployment,
|
@@ -22,18 +22,18 @@ from zenml.exceptions import InputResolutionError
|
|
22
22
|
from zenml.utils import pagination_utils
|
23
23
|
|
24
24
|
if TYPE_CHECKING:
|
25
|
-
from zenml.models import ArtifactVersionResponse
|
25
|
+
from zenml.models import ArtifactVersionResponse, PipelineRunResponse
|
26
26
|
|
27
27
|
|
28
28
|
def resolve_step_inputs(
|
29
29
|
step: "Step",
|
30
|
-
|
30
|
+
pipeline_run: "PipelineRunResponse",
|
31
31
|
) -> Tuple[Dict[str, "ArtifactVersionResponse"], List[UUID]]:
|
32
32
|
"""Resolves inputs for the current step.
|
33
33
|
|
34
34
|
Args:
|
35
35
|
step: The step for which to resolve the inputs.
|
36
|
-
|
36
|
+
pipeline_run: The current pipeline run.
|
37
37
|
|
38
38
|
Raises:
|
39
39
|
InputResolutionError: If input resolving failed due to a missing
|
@@ -50,7 +50,7 @@ def resolve_step_inputs(
|
|
50
50
|
current_run_steps = {
|
51
51
|
run_step.name: run_step
|
52
52
|
for run_step in pagination_utils.depaginate(
|
53
|
-
Client().list_run_steps, pipeline_run_id=
|
53
|
+
Client().list_run_steps, pipeline_run_id=pipeline_run.id
|
54
54
|
)
|
55
55
|
}
|
56
56
|
|
@@ -83,44 +83,60 @@ def resolve_step_inputs(
|
|
83
83
|
)
|
84
84
|
|
85
85
|
for name, config_ in step.config.model_artifacts_or_metadata.items():
|
86
|
-
|
86
|
+
err_msg = ""
|
87
87
|
try:
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
].value
|
100
|
-
elif config_.metadata_name and config_.artifact_name:
|
88
|
+
context_model_version = config_._get_model_response(
|
89
|
+
pipeline_run=pipeline_run
|
90
|
+
)
|
91
|
+
except RuntimeError as e:
|
92
|
+
err_msg = str(e)
|
93
|
+
else:
|
94
|
+
if (
|
95
|
+
config_.artifact_name is None
|
96
|
+
and config_.metadata_name
|
97
|
+
and context_model_version.run_metadata is not None
|
98
|
+
):
|
101
99
|
# metadata values should go directly in parameters, as primitive types
|
102
|
-
|
103
|
-
|
104
|
-
):
|
105
|
-
step.config.parameters[name] = artifact_.run_metadata[
|
100
|
+
step.config.parameters[name] = (
|
101
|
+
context_model_version.run_metadata[
|
106
102
|
config_.metadata_name
|
107
103
|
].value
|
108
|
-
|
109
|
-
|
104
|
+
)
|
105
|
+
elif config_.artifact_name is None:
|
106
|
+
err_msg = (
|
107
|
+
"Cannot load artifact from model version, "
|
108
|
+
"no artifact name specified."
|
109
|
+
)
|
110
110
|
else:
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
111
|
+
if artifact_ := context_model_version.get_artifact(
|
112
|
+
config_.artifact_name, config_.artifact_version
|
113
|
+
):
|
114
|
+
if config_.metadata_name is None:
|
115
|
+
input_artifacts[name] = artifact_
|
116
|
+
elif config_.metadata_name:
|
117
|
+
# metadata values should go directly in parameters, as primitive types
|
118
|
+
try:
|
119
|
+
step.config.parameters[name] = (
|
120
|
+
artifact_.run_metadata[
|
121
|
+
config_.metadata_name
|
122
|
+
].value
|
123
|
+
)
|
124
|
+
except KeyError:
|
125
|
+
err_msg = (
|
126
|
+
f"Artifact run metadata `{config_.metadata_name}` "
|
127
|
+
"could not be found in artifact "
|
128
|
+
f"`{config_.artifact_name}::{config_.artifact_version}`."
|
129
|
+
)
|
130
|
+
else:
|
131
|
+
err_msg = (
|
132
|
+
f"Artifact `{config_.artifact_name}::{config_.artifact_version}` "
|
133
|
+
f"not found in model `{context_model_version.model.name}` "
|
134
|
+
f"version `{context_model_version.name}`."
|
135
|
+
)
|
136
|
+
if err_msg:
|
116
137
|
raise ValueError(
|
117
|
-
"
|
118
|
-
|
119
|
-
f"`{config_.model.version}` given artifact "
|
120
|
-
f"`{config_.artifact_name}`, artifact version "
|
121
|
-
f"`{config_.artifact_version}`, and metadata "
|
122
|
-
f"key `{config_.metadata_name}` passed into "
|
123
|
-
f"the step `{step.config.name}`."
|
138
|
+
f"Failed to lazy load model version data in step `{step.config.name}`: "
|
139
|
+
+ err_msg
|
124
140
|
)
|
125
141
|
for name, cll_ in step.config.client_lazy_loaders.items():
|
126
142
|
value_ = cll_.evaluate()
|