zenml-nightly 0.66.0.dev20240927__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/__init__.py +6 -2
- 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.dev20240927.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/METADATA +20 -18
- {zenml_nightly-0.66.0.dev20240927.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/RECORD +344 -506
- {zenml_nightly-0.66.0.dev20240927.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.dev20240927.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.66.0.dev20240927.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/entry_points.txt +0 -0
@@ -24,13 +24,12 @@ from typing import (
|
|
24
24
|
Type,
|
25
25
|
)
|
26
26
|
|
27
|
-
from zenml.exceptions import
|
27
|
+
from zenml.exceptions import StepContextError
|
28
28
|
from zenml.logger import get_logger
|
29
29
|
from zenml.utils.singleton import SingletonMetaClass
|
30
30
|
|
31
31
|
if TYPE_CHECKING:
|
32
32
|
from zenml.artifacts.artifact_config import ArtifactConfig
|
33
|
-
from zenml.config.step_run_info import StepRunInfo
|
34
33
|
from zenml.materializers.base_materializer import BaseMaterializer
|
35
34
|
from zenml.metadata.metadata_types import MetadataType
|
36
35
|
from zenml.model.model import Model
|
@@ -95,8 +94,6 @@ class StepContext(metaclass=SingletonMetaClass):
|
|
95
94
|
output_materializers: Mapping[str, Sequence[Type["BaseMaterializer"]]],
|
96
95
|
output_artifact_uris: Mapping[str, str],
|
97
96
|
output_artifact_configs: Mapping[str, Optional["ArtifactConfig"]],
|
98
|
-
step_run_info: "StepRunInfo",
|
99
|
-
cache_enabled: bool,
|
100
97
|
) -> None:
|
101
98
|
"""Initialize the context of the currently running step.
|
102
99
|
|
@@ -109,8 +106,6 @@ class StepContext(metaclass=SingletonMetaClass):
|
|
109
106
|
context is used in.
|
110
107
|
output_artifact_configs: The outputs' ArtifactConfigs of the step that this
|
111
108
|
context is used in.
|
112
|
-
step_run_info: (Deprecated) info about the currently running step.
|
113
|
-
cache_enabled: (Deprecated) Whether caching is enabled for the step.
|
114
109
|
|
115
110
|
Raises:
|
116
111
|
StepContextError: If the keys of the output materializers and
|
@@ -128,11 +123,9 @@ class StepContext(metaclass=SingletonMetaClass):
|
|
128
123
|
except KeyError:
|
129
124
|
pass
|
130
125
|
self.step_run = step_run
|
131
|
-
self.
|
132
|
-
|
133
|
-
|
134
|
-
# Get the stack that we are running in
|
135
|
-
self._stack = Client().active_stack
|
126
|
+
self.model_version = (
|
127
|
+
step_run.model_version or pipeline_run.model_version
|
128
|
+
)
|
136
129
|
|
137
130
|
self.step_name = self.step_run.name
|
138
131
|
|
@@ -176,45 +169,24 @@ class StepContext(metaclass=SingletonMetaClass):
|
|
176
169
|
"""Returns configured Model.
|
177
170
|
|
178
171
|
Order of resolution to search for Model is:
|
179
|
-
1. Model from
|
180
|
-
2. Model from
|
172
|
+
1. Model from the step context
|
173
|
+
2. Model from the pipeline context
|
181
174
|
|
182
175
|
Returns:
|
183
176
|
The `Model` object associated with the current step.
|
184
177
|
|
185
178
|
Raises:
|
186
|
-
StepContextError: If
|
179
|
+
StepContextError: If no `Model` object was specified for the step
|
180
|
+
or pipeline.
|
187
181
|
"""
|
188
|
-
if
|
189
|
-
self.step_run.config.model is not None
|
190
|
-
and self.step_run.model_version is not None
|
191
|
-
):
|
192
|
-
model = self.step_run.model_version.to_model_class()
|
193
|
-
elif self.pipeline_run.config.model is not None:
|
194
|
-
if self.pipeline_run.model_version:
|
195
|
-
model = self.pipeline_run.model_version.to_model_class()
|
196
|
-
else:
|
197
|
-
model = self.pipeline_run.config.model
|
198
|
-
else:
|
182
|
+
if not self.model_version:
|
199
183
|
raise StepContextError(
|
200
184
|
f"Unable to get Model in step `{self.step_name}` of pipeline "
|
201
|
-
f"run '{self.pipeline_run.id}':
|
185
|
+
f"run '{self.pipeline_run.id}': No model has been specified "
|
186
|
+
"the step or pipeline."
|
202
187
|
)
|
203
188
|
|
204
|
-
return
|
205
|
-
|
206
|
-
# TODO: deprecate me
|
207
|
-
@property
|
208
|
-
def model_version(self) -> "Model":
|
209
|
-
"""DEPRECATED, use `model` instead.
|
210
|
-
|
211
|
-
Returns:
|
212
|
-
The `Model` object associated with the current step.
|
213
|
-
"""
|
214
|
-
logger.warning(
|
215
|
-
"Step context `model_version` is deprecated. Please use `model` instead."
|
216
|
-
)
|
217
|
-
return self.model
|
189
|
+
return self.model_version.to_model_class()
|
218
190
|
|
219
191
|
@property
|
220
192
|
def inputs(self) -> Dict[str, "ArtifactVersionResponse"]:
|
@@ -409,32 +381,6 @@ class StepContext(metaclass=SingletonMetaClass):
|
|
409
381
|
output.tags = []
|
410
382
|
output.tags += tags
|
411
383
|
|
412
|
-
def _set_artifact_config(
|
413
|
-
self,
|
414
|
-
artifact_config: "ArtifactConfig",
|
415
|
-
output_name: Optional[str] = None,
|
416
|
-
) -> None:
|
417
|
-
"""Adds artifact config for a given step output.
|
418
|
-
|
419
|
-
Args:
|
420
|
-
artifact_config: The artifact config of the output to set.
|
421
|
-
output_name: Optional name of the output for which to set the
|
422
|
-
output signature. If no name is given and the step only has a single
|
423
|
-
output, the metadata of this output will be added. If the
|
424
|
-
step has multiple outputs, an exception will be raised.
|
425
|
-
|
426
|
-
Raises:
|
427
|
-
EntityExistsError: If the output already has an output signature.
|
428
|
-
"""
|
429
|
-
output = self._get_output(output_name)
|
430
|
-
|
431
|
-
if output.artifact_config is None:
|
432
|
-
output.artifact_config = artifact_config
|
433
|
-
else:
|
434
|
-
raise EntityExistsError(
|
435
|
-
f"Output with name '{output_name}' already has artifact config."
|
436
|
-
)
|
437
|
-
|
438
384
|
|
439
385
|
class StepContextOutput:
|
440
386
|
"""Represents a step output in the step context."""
|
zenml/steps/step_decorator.py
CHANGED
@@ -17,7 +17,6 @@ from typing import (
|
|
17
17
|
TYPE_CHECKING,
|
18
18
|
Any,
|
19
19
|
Callable,
|
20
|
-
ClassVar,
|
21
20
|
Dict,
|
22
21
|
Mapping,
|
23
22
|
Optional,
|
@@ -29,66 +28,32 @@ from typing import (
|
|
29
28
|
)
|
30
29
|
|
31
30
|
from zenml.logger import get_logger
|
32
|
-
from zenml.steps import BaseStep
|
33
31
|
|
34
32
|
if TYPE_CHECKING:
|
35
33
|
from zenml.config.base_settings import SettingsOrDict
|
34
|
+
from zenml.config.retry_config import StepRetryConfig
|
36
35
|
from zenml.config.source import Source
|
37
36
|
from zenml.materializers.base_materializer import BaseMaterializer
|
38
37
|
from zenml.model.model import Model
|
38
|
+
from zenml.steps import BaseStep
|
39
39
|
from zenml.types import HookSpecification
|
40
40
|
|
41
|
-
MaterializerClassOrSource = Union[str,
|
41
|
+
MaterializerClassOrSource = Union[str, Source, Type[BaseMaterializer]]
|
42
|
+
|
42
43
|
OutputMaterializersSpecification = Union[
|
43
|
-
|
44
|
-
Sequence[
|
45
|
-
Mapping[str,
|
46
|
-
Mapping[str, Sequence[
|
44
|
+
MaterializerClassOrSource,
|
45
|
+
Sequence[MaterializerClassOrSource],
|
46
|
+
Mapping[str, MaterializerClassOrSource],
|
47
|
+
Mapping[str, Sequence[MaterializerClassOrSource]],
|
47
48
|
]
|
49
|
+
F = TypeVar("F", bound=Callable[..., Any])
|
48
50
|
|
49
51
|
|
50
|
-
STEP_INNER_FUNC_NAME = "entrypoint"
|
51
|
-
PARAM_STEP_NAME = "name"
|
52
|
-
PARAM_ENABLE_CACHE = "enable_cache"
|
53
|
-
PARAM_ENABLE_ARTIFACT_METADATA = "enable_artifact_metadata"
|
54
|
-
PARAM_ENABLE_ARTIFACT_VISUALIZATION = "enable_artifact_visualization"
|
55
|
-
PARAM_ENABLE_STEP_LOGS = "enable_step_logs"
|
56
|
-
PARAM_STEP_OPERATOR = "step_operator"
|
57
|
-
PARAM_EXPERIMENT_TRACKER = "experiment_tracker"
|
58
|
-
CLASS_CONFIGURATION = "_CLASS_CONFIGURATION"
|
59
|
-
PARAM_OUTPUT_ARTIFACTS = "output_artifacts"
|
60
|
-
PARAM_OUTPUT_MATERIALIZERS = "output_materializers"
|
61
|
-
PARAM_SETTINGS = "settings"
|
62
|
-
PARAM_EXTRA_OPTIONS = "extra"
|
63
|
-
PARAM_ON_FAILURE = "on_failure"
|
64
|
-
PARAM_ON_SUCCESS = "on_success"
|
65
|
-
PARAM_MODEL = "model"
|
66
|
-
|
67
52
|
logger = get_logger(__name__)
|
68
53
|
|
69
|
-
F = TypeVar("F", bound=Callable[..., Any])
|
70
|
-
|
71
|
-
|
72
|
-
class _DecoratedStep(BaseStep):
|
73
|
-
_CLASS_CONFIGURATION: ClassVar[Optional[Dict[str, Any]]] = None
|
74
|
-
|
75
|
-
def __init__(self, *args: Any, **kwargs: Any) -> None:
|
76
|
-
class_config = self._CLASS_CONFIGURATION or {}
|
77
|
-
kwargs = {**class_config, **kwargs}
|
78
|
-
super().__init__(*args, **kwargs)
|
79
|
-
|
80
|
-
@property
|
81
|
-
def source_object(self) -> Any:
|
82
|
-
"""The source object of this step.
|
83
|
-
|
84
|
-
Returns:
|
85
|
-
The source object of this step.
|
86
|
-
"""
|
87
|
-
return self.entrypoint
|
88
|
-
|
89
54
|
|
90
55
|
@overload
|
91
|
-
def step(_func: F) ->
|
56
|
+
def step(_func: "F") -> "BaseStep": ...
|
92
57
|
|
93
58
|
|
94
59
|
@overload
|
@@ -107,11 +72,12 @@ def step(
|
|
107
72
|
on_failure: Optional["HookSpecification"] = None,
|
108
73
|
on_success: Optional["HookSpecification"] = None,
|
109
74
|
model: Optional["Model"] = None,
|
110
|
-
|
75
|
+
retry: Optional["StepRetryConfig"] = None,
|
76
|
+
) -> Callable[["F"], "BaseStep"]: ...
|
111
77
|
|
112
78
|
|
113
79
|
def step(
|
114
|
-
_func: Optional[F] = None,
|
80
|
+
_func: Optional["F"] = None,
|
115
81
|
*,
|
116
82
|
name: Optional[str] = None,
|
117
83
|
enable_cache: Optional[bool] = None,
|
@@ -126,11 +92,9 @@ def step(
|
|
126
92
|
on_failure: Optional["HookSpecification"] = None,
|
127
93
|
on_success: Optional["HookSpecification"] = None,
|
128
94
|
model: Optional["Model"] = None,
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
In order to be able to work with parameters such as `name`, it features a
|
133
|
-
nested decorator structure.
|
95
|
+
retry: Optional["StepRetryConfig"] = None,
|
96
|
+
) -> Union["BaseStep", Callable[["F"], "BaseStep"]]:
|
97
|
+
"""Decorator to create a ZenML step.
|
134
98
|
|
135
99
|
Args:
|
136
100
|
_func: The decorated function.
|
@@ -158,56 +122,45 @@ def step(
|
|
158
122
|
on_success: Callback function in event of success of the step. Can be a
|
159
123
|
function with no arguments, or a source path to such a function
|
160
124
|
(e.g. `module.my_function`).
|
161
|
-
model: configuration of the model
|
125
|
+
model: configuration of the model in the Model Control Plane.
|
126
|
+
retry: configuration of step retry in case of step failure.
|
162
127
|
|
163
128
|
Returns:
|
164
|
-
The
|
165
|
-
ZenML BaseStep
|
129
|
+
The step instance.
|
166
130
|
"""
|
167
131
|
|
168
|
-
def inner_decorator(func: F) ->
|
169
|
-
|
170
|
-
|
171
|
-
Args:
|
172
|
-
func: types.FunctionType, this function will be used as the
|
173
|
-
"process" method of the generated Step.
|
174
|
-
|
175
|
-
Returns:
|
176
|
-
The class of a newly generated ZenML Step.
|
177
|
-
"""
|
178
|
-
step_name = name or func.__name__
|
179
|
-
logger.warning(
|
180
|
-
f"The `@step` decorator that you used to define your {step_name} "
|
181
|
-
"step is deprecated. Check out the 0.40.0 migration guide for more "
|
182
|
-
"information on how to migrate your steps to the new syntax: "
|
183
|
-
"https://docs.zenml.io/reference/migration-guide/migration-zero-forty"
|
184
|
-
)
|
132
|
+
def inner_decorator(func: "F") -> "BaseStep":
|
133
|
+
from zenml.steps.decorated_step import _DecoratedStep
|
185
134
|
|
186
|
-
|
135
|
+
class_: Type["BaseStep"] = type(
|
187
136
|
func.__name__,
|
188
137
|
(_DecoratedStep,),
|
189
138
|
{
|
190
|
-
|
191
|
-
CLASS_CONFIGURATION: {
|
192
|
-
PARAM_STEP_NAME: name,
|
193
|
-
PARAM_ENABLE_CACHE: enable_cache,
|
194
|
-
PARAM_ENABLE_ARTIFACT_METADATA: enable_artifact_metadata,
|
195
|
-
PARAM_ENABLE_ARTIFACT_VISUALIZATION: enable_artifact_visualization,
|
196
|
-
PARAM_ENABLE_STEP_LOGS: enable_step_logs,
|
197
|
-
PARAM_EXPERIMENT_TRACKER: experiment_tracker,
|
198
|
-
PARAM_STEP_OPERATOR: step_operator,
|
199
|
-
PARAM_OUTPUT_MATERIALIZERS: output_materializers,
|
200
|
-
PARAM_SETTINGS: settings,
|
201
|
-
PARAM_EXTRA_OPTIONS: extra,
|
202
|
-
PARAM_ON_FAILURE: on_failure,
|
203
|
-
PARAM_ON_SUCCESS: on_success,
|
204
|
-
PARAM_MODEL: model,
|
205
|
-
},
|
139
|
+
"entrypoint": staticmethod(func),
|
206
140
|
"__module__": func.__module__,
|
207
141
|
"__doc__": func.__doc__,
|
208
142
|
},
|
209
143
|
)
|
210
144
|
|
145
|
+
step_instance = class_(
|
146
|
+
name=name or func.__name__,
|
147
|
+
enable_cache=enable_cache,
|
148
|
+
enable_artifact_metadata=enable_artifact_metadata,
|
149
|
+
enable_artifact_visualization=enable_artifact_visualization,
|
150
|
+
enable_step_logs=enable_step_logs,
|
151
|
+
experiment_tracker=experiment_tracker,
|
152
|
+
step_operator=step_operator,
|
153
|
+
output_materializers=output_materializers,
|
154
|
+
settings=settings,
|
155
|
+
extra=extra,
|
156
|
+
on_failure=on_failure,
|
157
|
+
on_success=on_success,
|
158
|
+
model=model,
|
159
|
+
retry=retry,
|
160
|
+
)
|
161
|
+
|
162
|
+
return step_instance
|
163
|
+
|
211
164
|
if _func is None:
|
212
165
|
return inner_decorator
|
213
166
|
else:
|
zenml/steps/step_invocation.py
CHANGED
@@ -13,14 +13,16 @@
|
|
13
13
|
# permissions and limitations under the License.
|
14
14
|
"""Step invocation class definition."""
|
15
15
|
|
16
|
-
from typing import TYPE_CHECKING, Any, Dict, Set
|
16
|
+
from typing import TYPE_CHECKING, Any, Dict, Set, Union
|
17
|
+
|
18
|
+
from zenml.models import ArtifactVersionResponse
|
17
19
|
|
18
20
|
if TYPE_CHECKING:
|
19
21
|
from zenml.artifacts.external_artifact import ExternalArtifact
|
20
22
|
from zenml.client_lazy_loader import ClientLazyLoader
|
21
23
|
from zenml.config.step_configurations import StepConfiguration
|
22
24
|
from zenml.model.lazy_load import ModelVersionDataLazyLoader
|
23
|
-
from zenml.
|
25
|
+
from zenml.pipelines.pipeline_definition import Pipeline
|
24
26
|
from zenml.steps import BaseStep
|
25
27
|
from zenml.steps.entrypoint_function_utils import StepArtifact
|
26
28
|
|
@@ -33,7 +35,9 @@ class StepInvocation:
|
|
33
35
|
id: str,
|
34
36
|
step: "BaseStep",
|
35
37
|
input_artifacts: Dict[str, "StepArtifact"],
|
36
|
-
external_artifacts: Dict[
|
38
|
+
external_artifacts: Dict[
|
39
|
+
str, Union["ExternalArtifact", "ArtifactVersionResponse"]
|
40
|
+
],
|
37
41
|
model_artifacts_or_metadata: Dict[str, "ModelVersionDataLazyLoader"],
|
38
42
|
client_lazy_loaders: Dict[str, "ClientLazyLoader"],
|
39
43
|
parameters: Dict[str, Any],
|
@@ -64,59 +68,9 @@ class StepInvocation:
|
|
64
68
|
self.client_lazy_loaders = client_lazy_loaders
|
65
69
|
self.parameters = parameters
|
66
70
|
self.default_parameters = default_parameters
|
67
|
-
self.
|
71
|
+
self.upstream_steps = upstream_steps
|
68
72
|
self.pipeline = pipeline
|
69
73
|
|
70
|
-
@property
|
71
|
-
def upstream_steps(self) -> Set[str]:
|
72
|
-
"""The upstream steps of the invocation.
|
73
|
-
|
74
|
-
Returns:
|
75
|
-
The upstream steps of the invocation.
|
76
|
-
"""
|
77
|
-
return self.invocation_upstream_steps.union(
|
78
|
-
self._get_and_validate_step_upstream_steps()
|
79
|
-
)
|
80
|
-
|
81
|
-
def _get_and_validate_step_upstream_steps(self) -> Set[str]:
|
82
|
-
"""Validates the upstream steps defined on the step instance.
|
83
|
-
|
84
|
-
This is only allowed in legacy pipelines when calling `step.after(...)`
|
85
|
-
and we need to make sure that both the upstream and downstream steps
|
86
|
-
of such a relationship are only invoked once inside a pipeline.
|
87
|
-
|
88
|
-
Returns:
|
89
|
-
The upstream steps defined on the step instance.
|
90
|
-
"""
|
91
|
-
|
92
|
-
def _verify_single_invocation(step: "BaseStep") -> str:
|
93
|
-
invocations = {
|
94
|
-
invocation
|
95
|
-
for invocation in self.pipeline.invocations.values()
|
96
|
-
if invocation.step is step
|
97
|
-
}
|
98
|
-
if len(invocations) > 1:
|
99
|
-
raise RuntimeError(
|
100
|
-
"Setting upstream steps for a step using "
|
101
|
-
"`step_1.after(step_2)` is not allowed in combination "
|
102
|
-
"with calling one of the two steps multiple times."
|
103
|
-
)
|
104
|
-
return invocations.pop().id
|
105
|
-
|
106
|
-
if self.step.upstream_steps:
|
107
|
-
# If the step has upstream steps, make sure it only got invoked once
|
108
|
-
_verify_single_invocation(step=self.step)
|
109
|
-
|
110
|
-
upstream_steps = set()
|
111
|
-
|
112
|
-
for upstream_step in self.step.upstream_steps:
|
113
|
-
upstream_step_invocation_id = _verify_single_invocation(
|
114
|
-
step=upstream_step
|
115
|
-
)
|
116
|
-
upstream_steps.add(upstream_step_invocation_id)
|
117
|
-
|
118
|
-
return upstream_steps
|
119
|
-
|
120
74
|
def finalize(self, parameters_to_ignore: Set[str]) -> "StepConfiguration":
|
121
75
|
"""Finalizes a step invocation.
|
122
76
|
|
@@ -134,9 +88,6 @@ class StepInvocation:
|
|
134
88
|
ExternalArtifactConfiguration,
|
135
89
|
)
|
136
90
|
|
137
|
-
# Validate the upstream steps for legacy .after() calls
|
138
|
-
self._get_and_validate_step_upstream_steps()
|
139
|
-
|
140
91
|
parameters_to_apply = {
|
141
92
|
key: value
|
142
93
|
for key, value in self.parameters.items()
|
@@ -154,9 +105,14 @@ class StepInvocation:
|
|
154
105
|
|
155
106
|
external_artifacts: Dict[str, ExternalArtifactConfiguration] = {}
|
156
107
|
for key, artifact in self.external_artifacts.items():
|
157
|
-
if artifact
|
158
|
-
|
159
|
-
|
108
|
+
if isinstance(artifact, ArtifactVersionResponse):
|
109
|
+
external_artifacts[key] = ExternalArtifactConfiguration(
|
110
|
+
id=artifact.id
|
111
|
+
)
|
112
|
+
else:
|
113
|
+
if artifact.value is not None:
|
114
|
+
artifact.upload_by_value()
|
115
|
+
external_artifacts[key] = artifact.config
|
160
116
|
|
161
117
|
return self.step._finalize_configuration(
|
162
118
|
input_artifacts=self.input_artifacts,
|
zenml/steps/utils.py
CHANGED
@@ -30,8 +30,7 @@ from zenml.enums import ExecutionStatus, MetadataResourceTypes
|
|
30
30
|
from zenml.exceptions import StepInterfaceError
|
31
31
|
from zenml.logger import get_logger
|
32
32
|
from zenml.metadata.metadata_types import MetadataType
|
33
|
-
from zenml.
|
34
|
-
from zenml.steps.step_output import Output
|
33
|
+
from zenml.steps.step_context import get_step_context
|
35
34
|
from zenml.utils import settings_utils, source_code_utils, typing_utils
|
36
35
|
|
37
36
|
if TYPE_CHECKING:
|
@@ -129,26 +128,7 @@ def parse_return_type_annotations(
|
|
129
128
|
else:
|
130
129
|
return_annotation = Any
|
131
130
|
|
132
|
-
|
133
|
-
if isinstance(return_annotation, Output):
|
134
|
-
logger.warning(
|
135
|
-
"Using the `Output` class to define the outputs of your steps is "
|
136
|
-
"deprecated. You should instead use the standard Python way of "
|
137
|
-
"type annotating your functions. Check out our documentation "
|
138
|
-
"https://docs.zenml.io/how-to/build-pipelines/step-output-typing-and-annotation "
|
139
|
-
"for more information on how to assign custom names to your step "
|
140
|
-
"outputs."
|
141
|
-
)
|
142
|
-
return {
|
143
|
-
output_name: OutputSignature(
|
144
|
-
resolved_annotation=resolve_type_annotation(output_type),
|
145
|
-
artifact_config=None,
|
146
|
-
has_custom_name=True,
|
147
|
-
)
|
148
|
-
for output_name, output_type in return_annotation.items()
|
149
|
-
}
|
150
|
-
|
151
|
-
elif typing_utils.get_origin(return_annotation) is tuple:
|
131
|
+
if typing_utils.get_origin(return_annotation) is tuple:
|
152
132
|
requires_multiple_artifacts = has_tuple_return(func)
|
153
133
|
if requires_multiple_artifacts:
|
154
134
|
output_signature: Dict[str, Any] = {}
|
@@ -517,7 +497,7 @@ def run_as_single_step_pipeline(
|
|
517
497
|
"""
|
518
498
|
from zenml import ExternalArtifact, pipeline
|
519
499
|
from zenml.config.base_settings import BaseSettings
|
520
|
-
from zenml.
|
500
|
+
from zenml.pipelines.run_utils import (
|
521
501
|
wait_for_pipeline_run_to_finish,
|
522
502
|
)
|
523
503
|
|
@@ -558,6 +538,7 @@ def run_as_single_step_pipeline(
|
|
558
538
|
__step(**inputs)
|
559
539
|
|
560
540
|
run = single_step_pipeline.with_options(unlisted=True)()
|
541
|
+
assert run
|
561
542
|
run = wait_for_pipeline_run_to_finish(run.id)
|
562
543
|
|
563
544
|
if run.status != ExecutionStatus.COMPLETED:
|
zenml/utils/dashboard_utils.py
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
# permissions and limitations under the License.
|
14
14
|
"""Utility class to help with interacting with the dashboard."""
|
15
15
|
|
16
|
-
from typing import Optional
|
16
|
+
from typing import Optional
|
17
17
|
from uuid import UUID
|
18
18
|
|
19
19
|
from zenml import constants
|
@@ -24,28 +24,13 @@ from zenml.logger import get_logger
|
|
24
24
|
from zenml.models import (
|
25
25
|
ComponentResponse,
|
26
26
|
PipelineRunResponse,
|
27
|
-
|
27
|
+
ServerDeploymentType,
|
28
28
|
StackResponse,
|
29
29
|
)
|
30
30
|
|
31
31
|
logger = get_logger(__name__)
|
32
32
|
|
33
33
|
|
34
|
-
def is_cloud_server(server_info: ServerModel) -> bool:
|
35
|
-
"""Checks whether the server info refers to a ZenML Pro server.
|
36
|
-
|
37
|
-
Args:
|
38
|
-
server_info: Info of the server.
|
39
|
-
|
40
|
-
Returns:
|
41
|
-
Whether the server info refers to a ZenML Pro server.
|
42
|
-
"""
|
43
|
-
return (
|
44
|
-
"organization_id" in server_info.metadata
|
45
|
-
and "cloud.zenml.io" in server_info.dashboard_url
|
46
|
-
)
|
47
|
-
|
48
|
-
|
49
34
|
def get_cloud_dashboard_url() -> Optional[str]:
|
50
35
|
"""Get the base url of the cloud dashboard if the server is a cloud tenant.
|
51
36
|
|
@@ -57,36 +42,31 @@ def get_cloud_dashboard_url() -> Optional[str]:
|
|
57
42
|
if client.zen_store.type == StoreType.REST:
|
58
43
|
server_info = client.zen_store.get_store_info()
|
59
44
|
|
60
|
-
if
|
45
|
+
if server_info.deployment_type == ServerDeploymentType.CLOUD:
|
61
46
|
return server_info.dashboard_url
|
62
47
|
|
63
48
|
return None
|
64
49
|
|
65
50
|
|
66
|
-
def get_server_dashboard_url() ->
|
51
|
+
def get_server_dashboard_url() -> Optional[str]:
|
67
52
|
"""Get the base url of the dashboard deployed by the server.
|
68
53
|
|
69
54
|
Returns:
|
70
|
-
The server dashboard url
|
71
|
-
dashboard or not.
|
55
|
+
The server dashboard url.
|
72
56
|
"""
|
73
57
|
client = Client()
|
74
58
|
|
75
59
|
if client.zen_store.type == StoreType.REST:
|
76
60
|
server_info = client.zen_store.get_store_info()
|
77
|
-
if server_info.use_legacy_dashboard:
|
78
|
-
suffix = f"{constants.WORKSPACES}/{client.active_workspace.name}"
|
79
|
-
else:
|
80
|
-
suffix = ""
|
81
61
|
|
82
62
|
if server_info.server_url:
|
83
63
|
url = server_info.server_url
|
84
64
|
else:
|
85
65
|
url = client.zen_store.url
|
86
66
|
|
87
|
-
return url
|
67
|
+
return url
|
88
68
|
|
89
|
-
return None
|
69
|
+
return None
|
90
70
|
|
91
71
|
|
92
72
|
def get_stack_url(stack: StackResponse) -> Optional[str]:
|
@@ -98,13 +78,10 @@ def get_stack_url(stack: StackResponse) -> Optional[str]:
|
|
98
78
|
Returns:
|
99
79
|
the URL to the stack if the dashboard is available, else None.
|
100
80
|
"""
|
101
|
-
base_url
|
81
|
+
base_url = get_server_dashboard_url()
|
102
82
|
|
103
83
|
if base_url:
|
104
|
-
|
105
|
-
return base_url + f"{constants.STACKS}/{stack.id}/configuration"
|
106
|
-
else:
|
107
|
-
return base_url + constants.STACKS
|
84
|
+
return base_url + constants.STACKS
|
108
85
|
|
109
86
|
return None
|
110
87
|
|
@@ -118,16 +95,10 @@ def get_component_url(component: ComponentResponse) -> Optional[str]:
|
|
118
95
|
Returns:
|
119
96
|
the URL to the component if the dashboard is available, else None.
|
120
97
|
"""
|
121
|
-
base_url
|
98
|
+
base_url = get_server_dashboard_url()
|
122
99
|
|
123
100
|
if base_url:
|
124
|
-
|
125
|
-
return (
|
126
|
-
base_url
|
127
|
-
+ f"{constants.STACK_COMPONENTS}/{component.type.value}/{component.id}/configuration"
|
128
|
-
)
|
129
|
-
else:
|
130
|
-
return base_url + constants.STACKS
|
101
|
+
return base_url + constants.STACKS
|
131
102
|
|
132
103
|
return None
|
133
104
|
|
@@ -145,15 +116,9 @@ def get_run_url(run: PipelineRunResponse) -> Optional[str]:
|
|
145
116
|
if cloud_url:
|
146
117
|
return f"{cloud_url}{constants.RUNS}/{run.id}"
|
147
118
|
|
148
|
-
dashboard_url
|
119
|
+
dashboard_url = get_server_dashboard_url()
|
149
120
|
if dashboard_url:
|
150
|
-
|
151
|
-
if run.pipeline:
|
152
|
-
return f"{dashboard_url}{constants.PIPELINES}/{run.pipeline.id}{constants.RUNS}/{run.id}/dag"
|
153
|
-
else:
|
154
|
-
return f"{dashboard_url}/all-runs/{run.id}/dag"
|
155
|
-
else:
|
156
|
-
return f"{dashboard_url}{constants.RUNS}/{run.id}"
|
121
|
+
return f"{dashboard_url}{constants.RUNS}/{run.id}"
|
157
122
|
|
158
123
|
return None
|
159
124
|
|
@@ -167,9 +132,9 @@ def get_model_version_url(model_version_id: UUID) -> Optional[str]:
|
|
167
132
|
Returns:
|
168
133
|
the URL to the model version if the dashboard is available, else None.
|
169
134
|
"""
|
170
|
-
|
171
|
-
if
|
172
|
-
return f"{
|
135
|
+
cloud_url = get_cloud_dashboard_url()
|
136
|
+
if cloud_url:
|
137
|
+
return f"{cloud_url}/model-versions/{str(model_version_id)}"
|
173
138
|
|
174
139
|
return None
|
175
140
|
|
@@ -41,7 +41,7 @@ def select_materializer(
|
|
41
41
|
for materializer_class in materializer_classes:
|
42
42
|
if class_ in materializer_class.ASSOCIATED_TYPES:
|
43
43
|
return materializer_class
|
44
|
-
elif not fallback and materializer_class.
|
44
|
+
elif not fallback and materializer_class.can_save_type(class_):
|
45
45
|
fallback = materializer_class
|
46
46
|
|
47
47
|
if fallback:
|