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
@@ -37,6 +37,7 @@ from uuid import UUID
|
|
37
37
|
|
38
38
|
import yaml
|
39
39
|
from pydantic import ConfigDict, ValidationError
|
40
|
+
from typing_extensions import Self
|
40
41
|
|
41
42
|
from zenml import constants
|
42
43
|
from zenml.analytics.enums import AnalyticsEvent
|
@@ -65,10 +66,11 @@ from zenml.models import (
|
|
65
66
|
PipelineRequest,
|
66
67
|
PipelineResponse,
|
67
68
|
PipelineRunResponse,
|
69
|
+
RunTemplateResponse,
|
68
70
|
ScheduleRequest,
|
69
71
|
)
|
70
|
-
from zenml.
|
71
|
-
from zenml.
|
72
|
+
from zenml.pipelines import build_utils
|
73
|
+
from zenml.pipelines.run_utils import (
|
72
74
|
create_placeholder_run,
|
73
75
|
deploy_pipeline,
|
74
76
|
upload_notebook_cell_code_if_necessary,
|
@@ -99,6 +101,7 @@ if TYPE_CHECKING:
|
|
99
101
|
from zenml.config.source import Source
|
100
102
|
from zenml.model.lazy_load import ModelVersionDataLazyLoader
|
101
103
|
from zenml.model.model import Model
|
104
|
+
from zenml.models import ArtifactVersionResponse
|
102
105
|
from zenml.types import HookSpecification
|
103
106
|
|
104
107
|
StepConfigurationUpdateOrDict = Union[
|
@@ -107,7 +110,6 @@ if TYPE_CHECKING:
|
|
107
110
|
|
108
111
|
logger = get_logger(__name__)
|
109
112
|
|
110
|
-
T = TypeVar("T", bound="Pipeline")
|
111
113
|
F = TypeVar("F", bound=Callable[..., None])
|
112
114
|
|
113
115
|
|
@@ -128,6 +130,7 @@ class Pipeline:
|
|
128
130
|
enable_artifact_visualization: Optional[bool] = None,
|
129
131
|
enable_step_logs: Optional[bool] = None,
|
130
132
|
settings: Optional[Mapping[str, "SettingsOrDict"]] = None,
|
133
|
+
tags: Optional[List[str]] = None,
|
131
134
|
extra: Optional[Dict[str, Any]] = None,
|
132
135
|
on_failure: Optional["HookSpecification"] = None,
|
133
136
|
on_success: Optional["HookSpecification"] = None,
|
@@ -144,7 +147,8 @@ class Pipeline:
|
|
144
147
|
enable_artifact_visualization: If artifact visualization should be
|
145
148
|
enabled for this pipeline.
|
146
149
|
enable_step_logs: If step logs should be enabled for this pipeline.
|
147
|
-
settings:
|
150
|
+
settings: Settings for this pipeline.
|
151
|
+
tags: Tags to apply to runs of this pipeline.
|
148
152
|
extra: Extra configurations for this pipeline.
|
149
153
|
on_failure: Callback function in event of failure of the step. Can
|
150
154
|
be a function with a single argument of type `BaseException`, or
|
@@ -168,6 +172,7 @@ class Pipeline:
|
|
168
172
|
enable_artifact_visualization=enable_artifact_visualization,
|
169
173
|
enable_step_logs=enable_step_logs,
|
170
174
|
settings=settings,
|
175
|
+
tags=tags,
|
171
176
|
extra=extra,
|
172
177
|
on_failure=on_failure,
|
173
178
|
on_success=on_success,
|
@@ -279,19 +284,20 @@ class Pipeline:
|
|
279
284
|
self.__suppress_warnings_flag__ = False
|
280
285
|
|
281
286
|
def configure(
|
282
|
-
self
|
287
|
+
self,
|
283
288
|
enable_cache: Optional[bool] = None,
|
284
289
|
enable_artifact_metadata: Optional[bool] = None,
|
285
290
|
enable_artifact_visualization: Optional[bool] = None,
|
286
291
|
enable_step_logs: Optional[bool] = None,
|
287
292
|
settings: Optional[Mapping[str, "SettingsOrDict"]] = None,
|
293
|
+
tags: Optional[List[str]] = None,
|
288
294
|
extra: Optional[Dict[str, Any]] = None,
|
289
295
|
on_failure: Optional["HookSpecification"] = None,
|
290
296
|
on_success: Optional["HookSpecification"] = None,
|
291
297
|
model: Optional["Model"] = None,
|
292
298
|
parameters: Optional[Dict[str, Any]] = None,
|
293
299
|
merge: bool = True,
|
294
|
-
) ->
|
300
|
+
) -> Self:
|
295
301
|
"""Configures the pipeline.
|
296
302
|
|
297
303
|
Configuration merging example:
|
@@ -312,6 +318,7 @@ class Pipeline:
|
|
312
318
|
enabled for this pipeline.
|
313
319
|
enable_step_logs: If step logs should be enabled for this pipeline.
|
314
320
|
settings: settings for this pipeline.
|
321
|
+
tags: Tags to apply to runs of this pipeline.
|
315
322
|
extra: Extra configurations for this pipeline.
|
316
323
|
on_failure: Callback function in event of failure of the step. Can
|
317
324
|
be a function with a single argument of type `BaseException`, or
|
@@ -340,6 +347,11 @@ class Pipeline:
|
|
340
347
|
# string of on_success hook function to be used for this pipeline
|
341
348
|
success_hook_source = resolve_and_validate_hook(on_success)
|
342
349
|
|
350
|
+
if merge and tags and self._configuration.tags:
|
351
|
+
# Merge tags explicitly here as the recursive update later only
|
352
|
+
# merges dicts
|
353
|
+
tags = self._configuration.tags + tags
|
354
|
+
|
343
355
|
values = dict_utils.remove_none_values(
|
344
356
|
{
|
345
357
|
"enable_cache": enable_cache,
|
@@ -347,6 +359,7 @@ class Pipeline:
|
|
347
359
|
"enable_artifact_visualization": enable_artifact_visualization,
|
348
360
|
"enable_step_logs": enable_step_logs,
|
349
361
|
"settings": settings,
|
362
|
+
"tags": tags,
|
350
363
|
"extra": extra,
|
351
364
|
"failure_hook_source": failure_hook_source,
|
352
365
|
"success_hook_source": success_hook_source,
|
@@ -539,7 +552,7 @@ To avoid this consider setting pipeline parameters only in one place (config or
|
|
539
552
|
code_repository=code_repository,
|
540
553
|
)
|
541
554
|
|
542
|
-
def
|
555
|
+
def _create_deployment(
|
543
556
|
self,
|
544
557
|
*,
|
545
558
|
run_name: Optional[str] = None,
|
@@ -557,8 +570,8 @@ To avoid this consider setting pipeline parameters only in one place (config or
|
|
557
570
|
config_path: Optional[str] = None,
|
558
571
|
unlisted: bool = False,
|
559
572
|
prevent_build_reuse: bool = False,
|
560
|
-
) ->
|
561
|
-
"""
|
573
|
+
) -> PipelineDeploymentResponse:
|
574
|
+
"""Create a pipeline deployment.
|
562
575
|
|
563
576
|
Args:
|
564
577
|
run_name: Name of the pipeline run.
|
@@ -585,175 +598,182 @@ To avoid this consider setting pipeline parameters only in one place (config or
|
|
585
598
|
`DockerSettings.prevent_build_reuse` instead.
|
586
599
|
|
587
600
|
Returns:
|
588
|
-
|
589
|
-
running with a schedule.
|
601
|
+
The pipeline deployment.
|
590
602
|
|
591
603
|
Raises:
|
592
|
-
ValueError:
|
604
|
+
ValueError: If the orchestrator doesn't support scheduling, but a
|
605
|
+
schedule was given
|
593
606
|
"""
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
607
|
+
deployment, schedule, build = self._compile(
|
608
|
+
config_path=config_path,
|
609
|
+
run_name=run_name,
|
610
|
+
enable_cache=enable_cache,
|
611
|
+
enable_artifact_metadata=enable_artifact_metadata,
|
612
|
+
enable_artifact_visualization=enable_artifact_visualization,
|
613
|
+
enable_step_logs=enable_step_logs,
|
614
|
+
steps=step_configurations,
|
615
|
+
settings=settings,
|
616
|
+
schedule=schedule,
|
617
|
+
build=build,
|
618
|
+
extra=extra,
|
619
|
+
)
|
606
620
|
|
607
|
-
|
621
|
+
skip_pipeline_registration = constants.handle_bool_env_var(
|
622
|
+
constants.ENV_ZENML_SKIP_PIPELINE_REGISTRATION,
|
623
|
+
default=False,
|
624
|
+
)
|
608
625
|
|
609
|
-
|
610
|
-
deployment, schedule, build = self._compile(
|
611
|
-
config_path=config_path,
|
612
|
-
run_name=run_name,
|
613
|
-
enable_cache=enable_cache,
|
614
|
-
enable_artifact_metadata=enable_artifact_metadata,
|
615
|
-
enable_artifact_visualization=enable_artifact_visualization,
|
616
|
-
enable_step_logs=enable_step_logs,
|
617
|
-
steps=step_configurations,
|
618
|
-
settings=settings,
|
619
|
-
schedule=schedule,
|
620
|
-
build=build,
|
621
|
-
extra=extra,
|
622
|
-
)
|
626
|
+
register_pipeline = not (skip_pipeline_registration or unlisted)
|
623
627
|
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
)
|
628
|
+
pipeline_id = None
|
629
|
+
if register_pipeline:
|
630
|
+
pipeline_id = self._register().id
|
628
631
|
|
629
|
-
|
632
|
+
else:
|
633
|
+
logger.debug(f"Pipeline {self.name} is unlisted.")
|
634
|
+
|
635
|
+
stack = Client().active_stack
|
636
|
+
stack.validate()
|
637
|
+
|
638
|
+
schedule_id = None
|
639
|
+
if schedule:
|
640
|
+
if not stack.orchestrator.config.is_schedulable:
|
641
|
+
raise ValueError(
|
642
|
+
f"Stack {stack.name} does not support scheduling. "
|
643
|
+
"Not all orchestrator types support scheduling, "
|
644
|
+
"kindly consult with "
|
645
|
+
"https://docs.zenml.io/how-to/build-pipelines/schedule-a-pipeline "
|
646
|
+
"for details."
|
647
|
+
)
|
648
|
+
if schedule.name:
|
649
|
+
schedule_name = schedule.name
|
650
|
+
else:
|
651
|
+
schedule_name = format_name_template(
|
652
|
+
deployment.run_name_template
|
653
|
+
)
|
654
|
+
components = Client().active_stack_model.components
|
655
|
+
orchestrator = components[StackComponentType.ORCHESTRATOR][0]
|
656
|
+
schedule_model = ScheduleRequest(
|
657
|
+
workspace=Client().active_workspace.id,
|
658
|
+
user=Client().active_user.id,
|
659
|
+
pipeline_id=pipeline_id,
|
660
|
+
orchestrator_id=orchestrator.id,
|
661
|
+
name=schedule_name,
|
662
|
+
active=True,
|
663
|
+
cron_expression=schedule.cron_expression,
|
664
|
+
start_time=schedule.start_time,
|
665
|
+
end_time=schedule.end_time,
|
666
|
+
interval_second=schedule.interval_second,
|
667
|
+
catchup=schedule.catchup,
|
668
|
+
run_once_start_time=schedule.run_once_start_time,
|
669
|
+
)
|
670
|
+
schedule_id = Client().zen_store.create_schedule(schedule_model).id
|
671
|
+
logger.info(
|
672
|
+
f"Created schedule `{schedule_name}` for pipeline "
|
673
|
+
f"`{deployment.pipeline_configuration.name}`."
|
674
|
+
)
|
630
675
|
|
631
|
-
|
632
|
-
|
633
|
-
|
676
|
+
stack = Client().active_stack
|
677
|
+
stack.validate()
|
678
|
+
upload_notebook_cell_code_if_necessary(
|
679
|
+
deployment=deployment, stack=stack
|
680
|
+
)
|
634
681
|
|
635
|
-
|
636
|
-
|
682
|
+
local_repo_context = (
|
683
|
+
code_repository_utils.find_active_code_repository()
|
684
|
+
)
|
685
|
+
code_repository = build_utils.verify_local_repository_context(
|
686
|
+
deployment=deployment, local_repo_context=local_repo_context
|
687
|
+
)
|
637
688
|
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
raise ValueError(
|
645
|
-
f"Stack {stack.name} does not support scheduling. "
|
646
|
-
"Not all orchestrator types support scheduling, "
|
647
|
-
"kindly consult with "
|
648
|
-
"https://docs.zenml.io/how-to/build-pipelines/schedule-a-pipeline "
|
649
|
-
"for details."
|
650
|
-
)
|
651
|
-
if schedule.name:
|
652
|
-
schedule_name = schedule.name
|
653
|
-
else:
|
654
|
-
schedule_name = format_name_template(
|
655
|
-
deployment.run_name_template
|
656
|
-
)
|
657
|
-
components = Client().active_stack_model.components
|
658
|
-
orchestrator = components[StackComponentType.ORCHESTRATOR][0]
|
659
|
-
schedule_model = ScheduleRequest(
|
660
|
-
workspace=Client().active_workspace.id,
|
661
|
-
user=Client().active_user.id,
|
662
|
-
pipeline_id=pipeline_id,
|
663
|
-
orchestrator_id=orchestrator.id,
|
664
|
-
name=schedule_name,
|
665
|
-
active=True,
|
666
|
-
cron_expression=schedule.cron_expression,
|
667
|
-
start_time=schedule.start_time,
|
668
|
-
end_time=schedule.end_time,
|
669
|
-
interval_second=schedule.interval_second,
|
670
|
-
catchup=schedule.catchup,
|
671
|
-
run_once_start_time=schedule.run_once_start_time,
|
672
|
-
)
|
673
|
-
schedule_id = (
|
674
|
-
Client().zen_store.create_schedule(schedule_model).id
|
675
|
-
)
|
676
|
-
logger.info(
|
677
|
-
f"Created schedule `{schedule_name}` for pipeline "
|
678
|
-
f"`{deployment.pipeline_configuration.name}`."
|
679
|
-
)
|
689
|
+
if prevent_build_reuse:
|
690
|
+
logger.warning(
|
691
|
+
"Passing `prevent_build_reuse=True` to "
|
692
|
+
"`pipeline.with_opitions(...)` is deprecated. Use "
|
693
|
+
"`DockerSettings.prevent_build_reuse` instead."
|
694
|
+
)
|
680
695
|
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
696
|
+
build_model = build_utils.reuse_or_create_pipeline_build(
|
697
|
+
deployment=deployment,
|
698
|
+
pipeline_id=pipeline_id,
|
699
|
+
allow_build_reuse=not prevent_build_reuse,
|
700
|
+
build=build,
|
701
|
+
code_repository=code_repository,
|
702
|
+
)
|
703
|
+
build_id = build_model.id if build_model else None
|
704
|
+
|
705
|
+
code_reference = None
|
706
|
+
if local_repo_context and not local_repo_context.is_dirty:
|
707
|
+
source_root = source_utils.get_source_root()
|
708
|
+
subdirectory = (
|
709
|
+
Path(source_root)
|
710
|
+
.resolve()
|
711
|
+
.relative_to(local_repo_context.root)
|
685
712
|
)
|
686
713
|
|
687
|
-
|
688
|
-
|
714
|
+
code_reference = CodeReferenceRequest(
|
715
|
+
commit=local_repo_context.current_commit,
|
716
|
+
subdirectory=subdirectory.as_posix(),
|
717
|
+
code_repository=local_repo_context.code_repository_id,
|
689
718
|
)
|
690
|
-
|
691
|
-
|
719
|
+
|
720
|
+
code_path = None
|
721
|
+
if build_utils.should_upload_code(
|
722
|
+
deployment=deployment,
|
723
|
+
build=build_model,
|
724
|
+
code_reference=code_reference,
|
725
|
+
):
|
726
|
+
code_archive = code_utils.CodeArchive(
|
727
|
+
root=source_utils.get_source_root()
|
692
728
|
)
|
729
|
+
logger.info("Archiving pipeline code...")
|
730
|
+
code_path = code_utils.upload_code_if_necessary(code_archive)
|
731
|
+
|
732
|
+
request = PipelineDeploymentRequest(
|
733
|
+
user=Client().active_user.id,
|
734
|
+
workspace=Client().active_workspace.id,
|
735
|
+
stack=stack.id,
|
736
|
+
pipeline=pipeline_id,
|
737
|
+
build=build_id,
|
738
|
+
schedule=schedule_id,
|
739
|
+
code_reference=code_reference,
|
740
|
+
code_path=code_path,
|
741
|
+
**deployment.model_dump(),
|
742
|
+
)
|
743
|
+
return Client().zen_store.create_deployment(deployment=request)
|
693
744
|
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
"`DockerSettings.prevent_build_reuse` instead."
|
699
|
-
)
|
745
|
+
def _run(
|
746
|
+
self,
|
747
|
+
) -> Optional[PipelineRunResponse]:
|
748
|
+
"""Runs the pipeline on the active stack.
|
700
749
|
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
750
|
+
Returns:
|
751
|
+
The pipeline run or `None` if running with a schedule.
|
752
|
+
"""
|
753
|
+
if constants.SHOULD_PREVENT_PIPELINE_EXECUTION:
|
754
|
+
# An environment variable was set to stop the execution of
|
755
|
+
# pipelines. This is done to prevent execution of module-level
|
756
|
+
# pipeline.run() calls when importing modules needed to run a step.
|
757
|
+
logger.info(
|
758
|
+
"Preventing execution of pipeline '%s'. If this is not "
|
759
|
+
"intended behavior, make sure to unset the environment "
|
760
|
+
"variable '%s'.",
|
761
|
+
self.name,
|
762
|
+
constants.ENV_ZENML_PREVENT_PIPELINE_EXECUTION,
|
707
763
|
)
|
708
|
-
|
709
|
-
|
710
|
-
code_reference = None
|
711
|
-
if local_repo_context and not local_repo_context.is_dirty:
|
712
|
-
source_root = source_utils.get_source_root()
|
713
|
-
subdirectory = (
|
714
|
-
Path(source_root)
|
715
|
-
.resolve()
|
716
|
-
.relative_to(local_repo_context.root)
|
717
|
-
)
|
718
|
-
|
719
|
-
code_reference = CodeReferenceRequest(
|
720
|
-
commit=local_repo_context.current_commit,
|
721
|
-
subdirectory=subdirectory.as_posix(),
|
722
|
-
code_repository=local_repo_context.code_repository_id,
|
723
|
-
)
|
764
|
+
return None
|
724
765
|
|
725
|
-
|
726
|
-
if build_utils.should_upload_code(
|
727
|
-
deployment=deployment,
|
728
|
-
build=build_model,
|
729
|
-
code_reference=code_reference,
|
730
|
-
):
|
731
|
-
code_archive = code_utils.CodeArchive(
|
732
|
-
root=source_utils.get_source_root()
|
733
|
-
)
|
734
|
-
logger.info("Archiving pipeline code...")
|
735
|
-
code_path = code_utils.upload_code_if_necessary(code_archive)
|
766
|
+
logger.info(f"Initiating a new run for the pipeline: `{self.name}`.")
|
736
767
|
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
stack=stack.id,
|
741
|
-
pipeline=pipeline_id,
|
742
|
-
build=build_id,
|
743
|
-
schedule=schedule_id,
|
744
|
-
code_reference=code_reference,
|
745
|
-
code_path=code_path,
|
746
|
-
**deployment.model_dump(),
|
747
|
-
)
|
748
|
-
deployment_model = Client().zen_store.create_deployment(
|
749
|
-
deployment=deployment_request
|
750
|
-
)
|
768
|
+
with track_handler(AnalyticsEvent.RUN_PIPELINE) as analytics_handler:
|
769
|
+
stack = Client().active_stack
|
770
|
+
deployment = self._create_deployment(**self._run_args)
|
751
771
|
|
752
|
-
self.log_pipeline_deployment_metadata(
|
753
|
-
run = create_placeholder_run(deployment=
|
772
|
+
self.log_pipeline_deployment_metadata(deployment)
|
773
|
+
run = create_placeholder_run(deployment=deployment)
|
754
774
|
|
755
775
|
analytics_handler.metadata = self._get_pipeline_analytics_metadata(
|
756
|
-
deployment=
|
776
|
+
deployment=deployment,
|
757
777
|
stack=stack,
|
758
778
|
run_id=run.id if run else None,
|
759
779
|
)
|
@@ -766,11 +786,11 @@ To avoid this consider setting pipeline parameters only in one place (config or
|
|
766
786
|
logger.info(
|
767
787
|
"You can visualize your pipeline runs in the `ZenML "
|
768
788
|
"Dashboard`. In order to try it locally, please run "
|
769
|
-
"`zenml
|
789
|
+
"`zenml login --local`."
|
770
790
|
)
|
771
791
|
|
772
792
|
deploy_pipeline(
|
773
|
-
deployment=
|
793
|
+
deployment=deployment, stack=stack, placeholder_run=run
|
774
794
|
)
|
775
795
|
if run:
|
776
796
|
return Client().get_pipeline_run(run.id)
|
@@ -786,15 +806,6 @@ To avoid this consider setting pipeline parameters only in one place (config or
|
|
786
806
|
deployment_model: The model for the pipeline deployment
|
787
807
|
"""
|
788
808
|
try:
|
789
|
-
# Log about the schedule/run
|
790
|
-
if deployment_model.schedule:
|
791
|
-
logger.info(
|
792
|
-
"Scheduling a run with the schedule: "
|
793
|
-
f"`{deployment_model.schedule.name}`"
|
794
|
-
)
|
795
|
-
else:
|
796
|
-
logger.info("Executing a new run.")
|
797
|
-
|
798
809
|
# Log about the caching status
|
799
810
|
if deployment_model.pipeline_configuration.enable_cache is False:
|
800
811
|
logger.info(
|
@@ -847,22 +858,6 @@ To avoid this consider setting pipeline parameters only in one place (config or
|
|
847
858
|
except Exception as e:
|
848
859
|
logger.debug(f"Logging pipeline deployment metadata failed: {e}")
|
849
860
|
|
850
|
-
def get_runs(self, **kwargs: Any) -> List["PipelineRunResponse"]:
|
851
|
-
"""(Deprecated) Get runs of this pipeline.
|
852
|
-
|
853
|
-
Args:
|
854
|
-
**kwargs: Further arguments for filtering or pagination that are
|
855
|
-
passed to `client.list_pipeline_runs()`.
|
856
|
-
|
857
|
-
Returns:
|
858
|
-
List of runs of this pipeline.
|
859
|
-
"""
|
860
|
-
logger.warning(
|
861
|
-
"`Pipeline.get_runs()` is deprecated and will be removed in a "
|
862
|
-
"future version. Please use `Pipeline.model.get_runs()` instead."
|
863
|
-
)
|
864
|
-
return self.model.get_runs(**kwargs)
|
865
|
-
|
866
861
|
def write_run_configuration_template(
|
867
862
|
self, path: str, stack: Optional["Stack"] = None
|
868
863
|
) -> None:
|
@@ -897,19 +892,12 @@ To avoid this consider setting pipeline parameters only in one place (config or
|
|
897
892
|
steps = {}
|
898
893
|
for step_name, invocation in self.invocations.items():
|
899
894
|
step = invocation.step
|
900
|
-
parameters = (
|
901
|
-
pydantic_utils.TemplateGenerator(
|
902
|
-
step.entrypoint_definition.legacy_params.annotation
|
903
|
-
).run()
|
904
|
-
if step.entrypoint_definition.legacy_params
|
905
|
-
else {}
|
906
|
-
)
|
907
895
|
outputs = {
|
908
896
|
name: PartialArtifactConfiguration()
|
909
897
|
for name in step.entrypoint_definition.outputs
|
910
898
|
}
|
911
899
|
step_template = StepConfigurationUpdate(
|
912
|
-
parameters=
|
900
|
+
parameters={},
|
913
901
|
settings=step_settings,
|
914
902
|
outputs=outputs,
|
915
903
|
)
|
@@ -1112,7 +1100,9 @@ To avoid this consider setting pipeline parameters only in one place (config or
|
|
1112
1100
|
self,
|
1113
1101
|
step: "BaseStep",
|
1114
1102
|
input_artifacts: Dict[str, StepArtifact],
|
1115
|
-
external_artifacts: Dict[
|
1103
|
+
external_artifacts: Dict[
|
1104
|
+
str, Union["ExternalArtifact", "ArtifactVersionResponse"]
|
1105
|
+
],
|
1116
1106
|
model_artifacts_or_metadata: Dict[str, "ModelVersionDataLazyLoader"],
|
1117
1107
|
client_lazy_loaders: Dict[str, "ClientLazyLoader"],
|
1118
1108
|
parameters: Dict[str, Any],
|
@@ -1213,7 +1203,7 @@ To avoid this consider setting pipeline parameters only in one place (config or
|
|
1213
1203
|
|
1214
1204
|
raise RuntimeError("Unable to find step ID")
|
1215
1205
|
|
1216
|
-
def __enter__(self
|
1206
|
+
def __enter__(self) -> Self:
|
1217
1207
|
"""Activate the pipeline context.
|
1218
1208
|
|
1219
1209
|
Raises:
|
@@ -1260,14 +1250,6 @@ To avoid this consider setting pipeline parameters only in one place (config or
|
|
1260
1250
|
{k: v for k, v in _from_config_file.items() if k in matcher}
|
1261
1251
|
)
|
1262
1252
|
|
1263
|
-
# TODO: deprecate me
|
1264
|
-
if "model_version" in _from_config_file:
|
1265
|
-
logger.warning(
|
1266
|
-
"YAML config option `model_version` is deprecated. Please use `model`."
|
1267
|
-
)
|
1268
|
-
_from_config_file["model"] = _from_config_file["model_version"]
|
1269
|
-
del _from_config_file["model_version"]
|
1270
|
-
|
1271
1253
|
if "model" in _from_config_file:
|
1272
1254
|
if "model" in self._from_config_file:
|
1273
1255
|
_from_config_file["model"] = self._from_config_file[
|
@@ -1356,7 +1338,9 @@ To avoid this consider setting pipeline parameters only in one place (config or
|
|
1356
1338
|
"""
|
1357
1339
|
return copy.deepcopy(self)
|
1358
1340
|
|
1359
|
-
def __call__(
|
1341
|
+
def __call__(
|
1342
|
+
self, *args: Any, **kwargs: Any
|
1343
|
+
) -> Optional[PipelineRunResponse]:
|
1360
1344
|
"""Handle a call of the pipeline.
|
1361
1345
|
|
1362
1346
|
This method does one of two things:
|
@@ -1371,7 +1355,9 @@ To avoid this consider setting pipeline parameters only in one place (config or
|
|
1371
1355
|
**kwargs: Entrypoint function keyword arguments.
|
1372
1356
|
|
1373
1357
|
Returns:
|
1374
|
-
|
1358
|
+
If called within another pipeline, returns the outputs of the
|
1359
|
+
`entrypoint` method. Otherwise, returns the pipeline run or `None`
|
1360
|
+
if running with a schedule.
|
1375
1361
|
"""
|
1376
1362
|
if Pipeline.ACTIVE_PIPELINE:
|
1377
1363
|
# Calling a pipeline inside a pipeline, we return the potential
|
@@ -1383,7 +1369,7 @@ To avoid this consider setting pipeline parameters only in one place (config or
|
|
1383
1369
|
return self.entrypoint(*args, **kwargs)
|
1384
1370
|
|
1385
1371
|
self.prepare(*args, **kwargs)
|
1386
|
-
return self._run(
|
1372
|
+
return self._run()
|
1387
1373
|
|
1388
1374
|
def _call_entrypoint(self, *args: Any, **kwargs: Any) -> None:
|
1389
1375
|
"""Calls the pipeline entrypoint function with the given arguments.
|
@@ -1431,6 +1417,26 @@ To avoid this consider setting pipeline parameters only in one place (config or
|
|
1431
1417
|
else:
|
1432
1418
|
self.prepare()
|
1433
1419
|
|
1420
|
+
def create_run_template(
|
1421
|
+
self, name: str, **kwargs: Any
|
1422
|
+
) -> RunTemplateResponse:
|
1423
|
+
"""Create a run template for the pipeline.
|
1424
|
+
|
1425
|
+
Args:
|
1426
|
+
name: The name of the run template.
|
1427
|
+
**kwargs: Keyword arguments for the client method to create a run
|
1428
|
+
template.
|
1429
|
+
|
1430
|
+
Returns:
|
1431
|
+
The created run template.
|
1432
|
+
"""
|
1433
|
+
self._prepare_if_possible()
|
1434
|
+
deployment = self._create_deployment(**self._run_args)
|
1435
|
+
|
1436
|
+
return Client().create_run_template(
|
1437
|
+
name=name, deployment_id=deployment.id, **kwargs
|
1438
|
+
)
|
1439
|
+
|
1434
1440
|
def _reconfigure_from_file_with_overrides(
|
1435
1441
|
self,
|
1436
1442
|
config_path: Optional[str] = None,
|
@@ -1454,10 +1460,7 @@ To avoid this consider setting pipeline parameters only in one place (config or
|
|
1454
1460
|
if config_path:
|
1455
1461
|
self._from_config_file = self._parse_config_file(
|
1456
1462
|
config_path=config_path,
|
1457
|
-
matcher=inspect.getfullargspec(self.configure)[0]
|
1458
|
-
+ [
|
1459
|
-
"model_version"
|
1460
|
-
], # TODO: deprecate `model_version` later on
|
1463
|
+
matcher=inspect.getfullargspec(self.configure)[0],
|
1461
1464
|
)
|
1462
1465
|
|
1463
1466
|
_from_config_file = dict_utils.recursive_update(
|