zenml-nightly 0.67.0.dev20241002__py3-none-any.whl → 0.68.0.dev20241026__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 +2 -2
- RELEASE_NOTES.md +129 -0
- zenml/VERSION +1 -1
- zenml/__init__.py +4 -9
- zenml/analytics/enums.py +0 -13
- 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 +320 -85
- zenml/cli/__init__.py +1 -39
- zenml/cli/base.py +5 -5
- zenml/cli/integration.py +0 -9
- zenml/cli/pipeline.py +1 -1
- zenml/cli/served_model.py +8 -1
- zenml/cli/server.py +8 -232
- zenml/cli/stack.py +1 -567
- zenml/cli/stack_components.py +0 -578
- zenml/cli/utils.py +0 -65
- zenml/client.py +11 -26
- zenml/client_lazy_loader.py +29 -12
- zenml/config/compiler.py +6 -11
- zenml/config/server_config.py +7 -5
- zenml/config/step_configurations.py +2 -0
- zenml/constants.py +3 -33
- zenml/enums.py +0 -3
- zenml/environment.py +1 -315
- zenml/exceptions.py +1 -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/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/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/materializers/__init__.py +2 -0
- zenml/materializers/uuid_materializer.py +79 -0
- zenml/metadata/lazy_load.py +10 -7
- zenml/model/lazy_load.py +85 -4
- zenml/model/model.py +61 -45
- zenml/model/utils.py +47 -118
- zenml/models/__init__.py +3 -0
- zenml/models/v2/core/artifact_version.py +4 -15
- zenml/models/v2/core/model.py +1 -0
- zenml/models/v2/core/model_version.py +1 -1
- zenml/models/v2/core/pipeline_run.py +1 -2
- zenml/models/v2/core/run_metadata.py +2 -2
- zenml/models/v2/core/step_run.py +15 -12
- zenml/models/v2/misc/server_models.py +0 -4
- zenml/orchestrators/base_orchestrator.py +33 -0
- zenml/orchestrators/input_utils.py +52 -36
- zenml/orchestrators/step_launcher.py +49 -171
- zenml/orchestrators/step_run_utils.py +566 -0
- zenml/orchestrators/step_runner.py +102 -151
- zenml/orchestrators/utils.py +1 -158
- zenml/pipelines/__init__.py +3 -16
- zenml/{new/pipelines → pipelines}/pipeline_context.py +3 -18
- zenml/pipelines/pipeline_decorator.py +29 -60
- zenml/{new/pipelines/pipeline.py → pipelines/pipeline_definition.py} +4 -47
- zenml/stack/stack.py +1 -102
- zenml/stack/stack_component.py +0 -71
- 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 +17 -265
- zenml/steps/entrypoint_function_utils.py +2 -80
- zenml/{new/steps → steps}/step_context.py +12 -63
- zenml/steps/step_decorator.py +42 -89
- zenml/steps/step_invocation.py +2 -55
- zenml/steps/utils.py +3 -23
- zenml/utils/dashboard_utils.py +16 -51
- zenml/utils/typing_utils.py +8 -28
- 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 +0 -9
- zenml/zen_server/deploy/docker/docker_zen_server.py +0 -6
- zenml/zen_server/deploy/helm/Chart.yaml +1 -1
- zenml/zen_server/deploy/helm/README.md +2 -2
- zenml/zen_server/deploy/local/local_zen_server.py +0 -6
- zenml/zen_server/feature_gate/zenml_cloud_feature_gate.py +1 -1
- zenml/zen_server/routers/artifact_version_endpoints.py +1 -1
- zenml/zen_server/routers/runs_endpoints.py +0 -28
- zenml/zen_server/template_execution/runner_entrypoint_configuration.py +1 -1
- zenml/zen_server/template_execution/utils.py +2 -2
- zenml/zen_server/utils.py +10 -40
- zenml/zen_server/zen_server_api.py +107 -17
- zenml/zen_stores/base_zen_store.py +0 -2
- zenml/zen_stores/migrations/versions/0.68.0_release.py +23 -0
- zenml/zen_stores/migrations/versions/1d8f30c54477_migrate_to_new_.py +124 -0
- zenml/zen_stores/schemas/pipeline_run_schemas.py +12 -4
- zenml/zen_stores/schemas/step_run_schemas.py +2 -2
- zenml/zen_stores/sql_zen_store.py +29 -5
- {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241026.dist-info}/METADATA +4 -8
- {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241026.dist-info}/RECORD +270 -450
- {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241026.dist-info}/WHEEL +1 -1
- zenml/cli/stack_recipes.py +0 -469
- zenml/lineage_graph/__init__.py +0 -34
- zenml/lineage_graph/edge.py +0 -24
- 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/base_node.py +0 -31
- zenml/lineage_graph/node/step_node.py +0 -41
- zenml/model/model_version.py +0 -38
- zenml/new/__init__.py +0 -13
- zenml/new/pipelines/__init__.py +0 -13
- zenml/new/pipelines/code_archive.py +0 -157
- zenml/new/pipelines/pipeline_decorator.py +0 -118
- zenml/new/steps/__init__.py +0 -13
- 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/__init__.py +0 -14
- 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/pipelines → pipelines}/run_utils.py +0 -0
- /zenml/{new/steps → steps}/decorated_step.py +0 -0
- {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241026.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241026.dist-info}/entry_points.txt +0 -0
zenml/artifacts/utils.py
CHANGED
@@ -19,15 +19,30 @@ import tempfile
|
|
19
19
|
import time
|
20
20
|
import zipfile
|
21
21
|
from pathlib import Path
|
22
|
-
from typing import
|
22
|
+
from typing import (
|
23
|
+
TYPE_CHECKING,
|
24
|
+
Any,
|
25
|
+
Callable,
|
26
|
+
Dict,
|
27
|
+
List,
|
28
|
+
Optional,
|
29
|
+
Type,
|
30
|
+
Union,
|
31
|
+
cast,
|
32
|
+
)
|
23
33
|
from uuid import UUID, uuid4
|
24
34
|
|
35
|
+
from zenml.artifacts.artifact_config import ArtifactConfig
|
36
|
+
from zenml.artifacts.load_directory_materializer import (
|
37
|
+
PreexistingDataMaterializer,
|
38
|
+
)
|
25
39
|
from zenml.client import Client
|
26
40
|
from zenml.constants import (
|
27
41
|
MAX_RETRIES_FOR_VERSIONED_ENTITY_CREATION,
|
28
42
|
MODEL_METADATA_YAML_FILE_NAME,
|
29
43
|
)
|
30
44
|
from zenml.enums import (
|
45
|
+
ArtifactType,
|
31
46
|
ExecutionStatus,
|
32
47
|
MetadataResourceTypes,
|
33
48
|
StackComponentType,
|
@@ -50,8 +65,9 @@ from zenml.models import (
|
|
50
65
|
StepRunResponse,
|
51
66
|
StepRunUpdate,
|
52
67
|
)
|
53
|
-
from zenml.
|
68
|
+
from zenml.models.v2.core.artifact import ArtifactResponse
|
54
69
|
from zenml.stack import StackComponent
|
70
|
+
from zenml.steps.step_context import get_step_context
|
55
71
|
from zenml.utils import source_utils
|
56
72
|
from zenml.utils.yaml_utils import read_yaml, write_yaml
|
57
73
|
|
@@ -111,10 +127,6 @@ def save_artifact(
|
|
111
127
|
|
112
128
|
Returns:
|
113
129
|
The saved artifact response.
|
114
|
-
|
115
|
-
Raises:
|
116
|
-
RuntimeError: If artifact URI already exists.
|
117
|
-
EntityExistsError: If artifact version already exists.
|
118
130
|
"""
|
119
131
|
from zenml.materializers.materializer_registry import (
|
120
132
|
materializer_registry,
|
@@ -123,24 +135,11 @@ def save_artifact(
|
|
123
135
|
|
124
136
|
client = Client()
|
125
137
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
name_id_or_prefix=artifact.id, has_custom_name=has_custom_name
|
132
|
-
)
|
133
|
-
except IndexError:
|
134
|
-
try:
|
135
|
-
artifact = client.zen_store.create_artifact(
|
136
|
-
ArtifactRequest(
|
137
|
-
name=name,
|
138
|
-
has_custom_name=has_custom_name,
|
139
|
-
tags=tags,
|
140
|
-
)
|
141
|
-
)
|
142
|
-
except EntityExistsError:
|
143
|
-
artifact = client.list_artifacts(name=name)[0]
|
138
|
+
artifact = _get_or_create_artifact(
|
139
|
+
name=name,
|
140
|
+
has_custom_name=has_custom_name,
|
141
|
+
tags=tags,
|
142
|
+
)
|
144
143
|
|
145
144
|
# Get the current artifact store
|
146
145
|
artifact_store = client.active_stack.artifact_store
|
@@ -151,16 +150,14 @@ def save_artifact(
|
|
151
150
|
if not uri.startswith(artifact_store.path):
|
152
151
|
uri = os.path.join(artifact_store.path, uri)
|
153
152
|
|
154
|
-
if manual_save
|
153
|
+
if manual_save:
|
155
154
|
# This check is only necessary for manual saves as we already check
|
156
155
|
# it when creating the directory for step output artifacts
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
f"{other_artifact.name} (version {other_artifact.version})."
|
163
|
-
)
|
156
|
+
_check_if_artifact_with_given_uri_already_registered(
|
157
|
+
artifact_store=artifact_store,
|
158
|
+
uri=uri,
|
159
|
+
name=name,
|
160
|
+
)
|
164
161
|
artifact_store.makedirs(uri)
|
165
162
|
|
166
163
|
# Find and initialize the right materializer class
|
@@ -211,7 +208,9 @@ def save_artifact(
|
|
211
208
|
)
|
212
209
|
|
213
210
|
# Create the artifact version
|
214
|
-
def _create_version(
|
211
|
+
def _create_version(
|
212
|
+
version: Union[int, str],
|
213
|
+
) -> Optional[ArtifactVersionResponse]:
|
215
214
|
artifact_version = ArtifactVersionRequest(
|
216
215
|
artifact_id=artifact.id,
|
217
216
|
version=version,
|
@@ -233,37 +232,12 @@ def save_artifact(
|
|
233
232
|
except EntityExistsError:
|
234
233
|
return None
|
235
234
|
|
236
|
-
response =
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
if response := _create_version():
|
243
|
-
break
|
244
|
-
# smoothed exponential back-off, it will go as 0.2, 0.3,
|
245
|
-
# 0.45, 0.68, 1.01, 1.52, 2.28, 3.42, 5.13, 7.69, ...
|
246
|
-
sleep = 0.2 * 1.5**i
|
247
|
-
logger.debug(
|
248
|
-
f"Failed to create artifact version `{version}` for "
|
249
|
-
f"artifact `{name}`. Retrying in {sleep}..."
|
250
|
-
)
|
251
|
-
time.sleep(sleep)
|
252
|
-
retries_made += 1
|
253
|
-
if not response:
|
254
|
-
raise EntityExistsError(
|
255
|
-
f"Failed to create new artifact version for artifact "
|
256
|
-
f"`{name}`. Retried {retries_made} times. "
|
257
|
-
"This could be driven by exceptionally high concurrency of "
|
258
|
-
"pipeline runs. Please, reach out to us on ZenML Slack for support."
|
259
|
-
)
|
260
|
-
else:
|
261
|
-
response = _create_version()
|
262
|
-
if not response:
|
263
|
-
raise EntityExistsError(
|
264
|
-
f"Failed to create artifact version `{version}` for artifact "
|
265
|
-
f"`{name}`. Given version already exists."
|
266
|
-
)
|
235
|
+
response = _create_artifact_version_with_retries(
|
236
|
+
name=name,
|
237
|
+
version=version,
|
238
|
+
create_version_fn=_create_version,
|
239
|
+
)
|
240
|
+
|
267
241
|
if artifact_metadata:
|
268
242
|
client.create_run_metadata(
|
269
243
|
metadata=artifact_metadata,
|
@@ -272,29 +246,112 @@ def save_artifact(
|
|
272
246
|
)
|
273
247
|
|
274
248
|
if manual_save:
|
249
|
+
_link_artifact_version_to_the_step_and_model(
|
250
|
+
artifact_version=response,
|
251
|
+
is_model_artifact=is_model_artifact,
|
252
|
+
is_deployment_artifact=is_deployment_artifact,
|
253
|
+
)
|
254
|
+
|
255
|
+
return response
|
256
|
+
|
257
|
+
|
258
|
+
def register_artifact(
|
259
|
+
folder_or_file_uri: str,
|
260
|
+
name: str,
|
261
|
+
version: Optional[Union[int, str]] = None,
|
262
|
+
tags: Optional[List[str]] = None,
|
263
|
+
has_custom_name: bool = True,
|
264
|
+
is_model_artifact: bool = False,
|
265
|
+
is_deployment_artifact: bool = False,
|
266
|
+
artifact_metadata: Dict[str, "MetadataType"] = {},
|
267
|
+
) -> "ArtifactVersionResponse":
|
268
|
+
"""Register existing data stored in the artifact store as a ZenML Artifact.
|
269
|
+
|
270
|
+
Args:
|
271
|
+
folder_or_file_uri: The full URI within the artifact store to the folder
|
272
|
+
or to the file.
|
273
|
+
name: The name of the artifact.
|
274
|
+
version: The version of the artifact. If not provided, a new
|
275
|
+
auto-incremented version will be used.
|
276
|
+
tags: Tags to associate with the artifact.
|
277
|
+
has_custom_name: If the artifact name is custom and should be listed in
|
278
|
+
the dashboard "Artifacts" tab.
|
279
|
+
is_model_artifact: If the artifact is a model artifact.
|
280
|
+
is_deployment_artifact: If the artifact is a deployment artifact.
|
281
|
+
artifact_metadata: Metadata dictionary to attach to the artifact version.
|
282
|
+
|
283
|
+
Returns:
|
284
|
+
The saved artifact response.
|
285
|
+
|
286
|
+
Raises:
|
287
|
+
FileNotFoundError: If the folder URI is outside of the artifact store
|
288
|
+
bounds.
|
289
|
+
"""
|
290
|
+
client = Client()
|
291
|
+
|
292
|
+
# Get the current artifact store
|
293
|
+
artifact_store = client.active_stack.artifact_store
|
294
|
+
|
295
|
+
if not folder_or_file_uri.startswith(artifact_store.path):
|
296
|
+
raise FileNotFoundError(
|
297
|
+
f"Folder `{folder_or_file_uri}` is outside of "
|
298
|
+
f"artifact store bounds `{artifact_store.path}`"
|
299
|
+
)
|
300
|
+
|
301
|
+
_check_if_artifact_with_given_uri_already_registered(
|
302
|
+
artifact_store=artifact_store,
|
303
|
+
uri=folder_or_file_uri,
|
304
|
+
name=name,
|
305
|
+
)
|
306
|
+
|
307
|
+
artifact = _get_or_create_artifact(
|
308
|
+
name=name,
|
309
|
+
has_custom_name=has_custom_name,
|
310
|
+
tags=tags,
|
311
|
+
)
|
312
|
+
|
313
|
+
# Create the artifact version
|
314
|
+
def _create_version(
|
315
|
+
version: Union[int, str],
|
316
|
+
) -> Optional[ArtifactVersionResponse]:
|
317
|
+
artifact_version = ArtifactVersionRequest(
|
318
|
+
artifact_id=artifact.id,
|
319
|
+
version=version,
|
320
|
+
tags=tags,
|
321
|
+
type=ArtifactType.DATA,
|
322
|
+
uri=folder_or_file_uri,
|
323
|
+
materializer=source_utils.resolve(PreexistingDataMaterializer),
|
324
|
+
data_type=source_utils.resolve(Path),
|
325
|
+
user=Client().active_user.id,
|
326
|
+
workspace=Client().active_workspace.id,
|
327
|
+
artifact_store_id=artifact_store.id,
|
328
|
+
has_custom_name=has_custom_name,
|
329
|
+
)
|
275
330
|
try:
|
276
|
-
|
277
|
-
|
278
|
-
step_run = step_context.step_run
|
279
|
-
client.zen_store.update_run_step(
|
280
|
-
step_run_id=step_run.id,
|
281
|
-
step_run_update=StepRunUpdate(
|
282
|
-
saved_artifact_versions={name: response.id}
|
283
|
-
),
|
331
|
+
return client.zen_store.create_artifact_version(
|
332
|
+
artifact_version=artifact_version
|
284
333
|
)
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
334
|
+
except EntityExistsError:
|
335
|
+
return None
|
336
|
+
|
337
|
+
response = _create_artifact_version_with_retries(
|
338
|
+
name=name,
|
339
|
+
version=version,
|
340
|
+
create_version_fn=_create_version,
|
341
|
+
)
|
342
|
+
|
343
|
+
if artifact_metadata:
|
344
|
+
client.create_run_metadata(
|
345
|
+
metadata=artifact_metadata,
|
346
|
+
resource_id=response.id,
|
347
|
+
resource_type=MetadataResourceTypes.ARTIFACT_VERSION,
|
348
|
+
)
|
349
|
+
|
350
|
+
_link_artifact_version_to_the_step_and_model(
|
351
|
+
artifact_version=response,
|
352
|
+
is_model_artifact=is_model_artifact,
|
353
|
+
is_deployment_artifact=is_deployment_artifact,
|
354
|
+
)
|
298
355
|
|
299
356
|
return response
|
300
357
|
|
@@ -577,6 +634,184 @@ def get_artifacts_versions_of_pipeline_run(
|
|
577
634
|
# -------------------------
|
578
635
|
|
579
636
|
|
637
|
+
def _check_if_artifact_with_given_uri_already_registered(
|
638
|
+
artifact_store: "BaseArtifactStore",
|
639
|
+
uri: str,
|
640
|
+
name: str,
|
641
|
+
) -> None:
|
642
|
+
"""Check if the given artifact store already contains an artifact with the given URI.
|
643
|
+
|
644
|
+
Args:
|
645
|
+
artifact_store: The artifact store to check.
|
646
|
+
uri: The uri of the artifact.
|
647
|
+
name: The name of the artifact.
|
648
|
+
|
649
|
+
Raises:
|
650
|
+
RuntimeError: If the artifact store already contains an artifact with
|
651
|
+
the given URI.
|
652
|
+
"""
|
653
|
+
if artifact_store.exists(uri):
|
654
|
+
# This check is only necessary for manual saves as we already check
|
655
|
+
# it when creating the directory for step output artifacts
|
656
|
+
other_artifacts = Client().list_artifact_versions(uri=uri, size=1)
|
657
|
+
if other_artifacts and (other_artifact := other_artifacts[0]):
|
658
|
+
raise RuntimeError(
|
659
|
+
f"Cannot create new artifact {name} version with URI "
|
660
|
+
f"{uri} because the URI is already used by artifact "
|
661
|
+
f"{other_artifact.name} (version {other_artifact.version})."
|
662
|
+
)
|
663
|
+
|
664
|
+
|
665
|
+
def _get_or_create_artifact(
|
666
|
+
name: str, has_custom_name: bool, tags: Optional[List[str]] = None
|
667
|
+
) -> ArtifactResponse:
|
668
|
+
"""Get or create an artifact with the given name.
|
669
|
+
|
670
|
+
Args:
|
671
|
+
name: The name of the artifact.
|
672
|
+
has_custom_name: If the artifact name is custom and should be listed in
|
673
|
+
the dashboard "Artifacts" tab.
|
674
|
+
tags: Tags to associate with the artifact.
|
675
|
+
|
676
|
+
Returns:
|
677
|
+
The artifact.
|
678
|
+
"""
|
679
|
+
client = Client()
|
680
|
+
# Get or create the artifact
|
681
|
+
try:
|
682
|
+
artifact = client.list_artifacts(name=name)[0]
|
683
|
+
if artifact.has_custom_name != has_custom_name:
|
684
|
+
client.update_artifact(
|
685
|
+
name_id_or_prefix=artifact.id, has_custom_name=has_custom_name
|
686
|
+
)
|
687
|
+
except IndexError:
|
688
|
+
try:
|
689
|
+
artifact = client.zen_store.create_artifact(
|
690
|
+
ArtifactRequest(
|
691
|
+
name=name,
|
692
|
+
has_custom_name=has_custom_name,
|
693
|
+
tags=tags,
|
694
|
+
)
|
695
|
+
)
|
696
|
+
except EntityExistsError:
|
697
|
+
artifact = client.list_artifacts(name=name)[0]
|
698
|
+
return artifact
|
699
|
+
|
700
|
+
|
701
|
+
def _create_artifact_version_with_retries(
|
702
|
+
name: str,
|
703
|
+
version: Optional[Union[int, str]],
|
704
|
+
create_version_fn: Callable[
|
705
|
+
[
|
706
|
+
Union[int, str],
|
707
|
+
],
|
708
|
+
Optional[ArtifactVersionResponse],
|
709
|
+
],
|
710
|
+
) -> ArtifactVersionResponse:
|
711
|
+
"""Create an artifact version with some retries.
|
712
|
+
|
713
|
+
This function will retry the creation of an artifact version up to
|
714
|
+
MAX_RETRIES_FOR_VERSIONED_ENTITY_CREATION times if it fails.
|
715
|
+
It can fail in high-concurrency environments.
|
716
|
+
|
717
|
+
Args:
|
718
|
+
name: The name of the artifact.
|
719
|
+
version: The version of the artifact. If not provided, a new
|
720
|
+
auto-incremented version will be used.
|
721
|
+
create_version_fn: The function to create the artifact version.
|
722
|
+
|
723
|
+
Returns:
|
724
|
+
The created artifact version.
|
725
|
+
|
726
|
+
Raises:
|
727
|
+
EntityExistsError: If the artifact version could not be created
|
728
|
+
after MAX_RETRIES_FOR_VERSIONED_ENTITY_CREATION attempts due
|
729
|
+
to collisions.
|
730
|
+
|
731
|
+
"""
|
732
|
+
response = None
|
733
|
+
if not version:
|
734
|
+
retries_made = 0
|
735
|
+
for i in range(MAX_RETRIES_FOR_VERSIONED_ENTITY_CREATION):
|
736
|
+
# Get new artifact version
|
737
|
+
version = _get_new_artifact_version(name)
|
738
|
+
if response := create_version_fn(version):
|
739
|
+
break
|
740
|
+
# smoothed exponential back-off, it will go as 0.2, 0.3,
|
741
|
+
# 0.45, 0.68, 1.01, 1.52, 2.28, 3.42, 5.13, 7.69, ...
|
742
|
+
sleep = 0.2 * 1.5**i
|
743
|
+
logger.debug(
|
744
|
+
f"Failed to create artifact version `{version}` for "
|
745
|
+
f"artifact `{name}`. Retrying in {sleep}..."
|
746
|
+
)
|
747
|
+
time.sleep(sleep)
|
748
|
+
retries_made += 1
|
749
|
+
if not response:
|
750
|
+
raise EntityExistsError(
|
751
|
+
f"Failed to create new artifact version for artifact "
|
752
|
+
f"`{name}`. Retried {retries_made} times. "
|
753
|
+
"This could be driven by exceptionally high concurrency of "
|
754
|
+
"pipeline runs. Please, reach out to us on ZenML Slack for support."
|
755
|
+
)
|
756
|
+
else:
|
757
|
+
response = create_version_fn(version)
|
758
|
+
if not response:
|
759
|
+
raise EntityExistsError(
|
760
|
+
f"Failed to create artifact version `{version}` for artifact "
|
761
|
+
f"`{name}`. Given version already exists."
|
762
|
+
)
|
763
|
+
return response
|
764
|
+
|
765
|
+
|
766
|
+
def _link_artifact_version_to_the_step_and_model(
|
767
|
+
artifact_version: ArtifactVersionResponse,
|
768
|
+
is_model_artifact: bool,
|
769
|
+
is_deployment_artifact: bool,
|
770
|
+
) -> None:
|
771
|
+
"""Link an artifact version to the step and its' context model.
|
772
|
+
|
773
|
+
This function links the AV to:
|
774
|
+
- the step run
|
775
|
+
- the MV from the step context
|
776
|
+
|
777
|
+
Args:
|
778
|
+
artifact_version: The artifact version to link.
|
779
|
+
is_model_artifact: Whether the artifact is a model artifact.
|
780
|
+
is_deployment_artifact: Whether the artifact is a deployment artifact.
|
781
|
+
"""
|
782
|
+
client = Client()
|
783
|
+
try:
|
784
|
+
error_message = "step run"
|
785
|
+
step_context = get_step_context()
|
786
|
+
step_run = step_context.step_run
|
787
|
+
client.zen_store.update_run_step(
|
788
|
+
step_run_id=step_run.id,
|
789
|
+
step_run_update=StepRunUpdate(
|
790
|
+
saved_artifact_versions={
|
791
|
+
artifact_version.artifact.name: artifact_version.id
|
792
|
+
}
|
793
|
+
),
|
794
|
+
)
|
795
|
+
error_message = "model"
|
796
|
+
|
797
|
+
if step_context.model_version:
|
798
|
+
from zenml.model.utils import (
|
799
|
+
link_artifact_version_to_model_version,
|
800
|
+
)
|
801
|
+
|
802
|
+
artifact_config = ArtifactConfig(
|
803
|
+
is_model_artifact=is_model_artifact,
|
804
|
+
is_deployment_artifact=is_deployment_artifact,
|
805
|
+
)
|
806
|
+
link_artifact_version_to_model_version(
|
807
|
+
artifact_version=artifact_version,
|
808
|
+
model_version=step_context.model_version,
|
809
|
+
artifact_config=artifact_config,
|
810
|
+
)
|
811
|
+
except (RuntimeError, StepContextError):
|
812
|
+
logger.debug(f"Unable to link saved artifact to {error_message}.")
|
813
|
+
|
814
|
+
|
580
815
|
def _load_artifact_from_uri(
|
581
816
|
materializer: Union["Source", str],
|
582
817
|
data_type: Union["Source", str],
|
zenml/cli/__init__.py
CHANGED
@@ -1870,13 +1870,7 @@ Connecting to a ZenML Server
|
|
1870
1870
|
|
1871
1871
|
The ZenML client can be [configured to connect to a remote database or ZenML
|
1872
1872
|
server](https://docs.zenml.io/how-to/connecting-to-zenml)
|
1873
|
-
with the `zenml connect` command.
|
1874
|
-
will attempt to connect to the last ZenML server deployed from the local host
|
1875
|
-
using the 'zenml deploy' command:
|
1876
|
-
|
1877
|
-
```bash
|
1878
|
-
zenml connect
|
1879
|
-
```
|
1873
|
+
with the `zenml connect` command.
|
1880
1874
|
|
1881
1875
|
To connect to a ZenML server, you can either pass the configuration as command
|
1882
1876
|
line arguments or as a YAML file:
|
@@ -2517,37 +2511,6 @@ The verbosity of the ZenML client output can be configured using the
|
|
2517
2511
|
```bash
|
2518
2512
|
zenml logging set-verbosity DEBUG
|
2519
2513
|
```
|
2520
|
-
|
2521
|
-
Deploying ZenML to the cloud
|
2522
|
-
----------------------------
|
2523
|
-
|
2524
|
-
The ZenML CLI provides a simple way to deploy ZenML to the cloud. Simply run
|
2525
|
-
|
2526
|
-
```bash
|
2527
|
-
zenml deploy
|
2528
|
-
```
|
2529
|
-
|
2530
|
-
You will be prompted to provide a name for your deployment and details like what
|
2531
|
-
cloud provider you want to deploy to — and that's it! It creates the
|
2532
|
-
database and any VPCs, permissions, and more that are needed.
|
2533
|
-
|
2534
|
-
In order to be able to run the deploy command, you should have your cloud
|
2535
|
-
provider's CLI configured locally with permissions to create resources like
|
2536
|
-
MySQL databases and networks.
|
2537
|
-
|
2538
|
-
Deploying Stack Components
|
2539
|
-
--------------------------
|
2540
|
-
|
2541
|
-
Stack components can be deployed directly via the CLI. You can use the `deploy`
|
2542
|
-
subcommand for this. For example, you could deploy a GCP artifact store using
|
2543
|
-
the following command:
|
2544
|
-
|
2545
|
-
```shell
|
2546
|
-
zenml artifact-store deploy -f gcp -p gcp -r us-east1 -x project_id=zenml-core basic_gcp_artifact_store
|
2547
|
-
```
|
2548
|
-
|
2549
|
-
For full documentation on this functionality, please refer to [the dedicated
|
2550
|
-
documentation on stack component deploy](https://docs.zenml.io/how-to/stack-deployment/deploy-a-stack-component).
|
2551
2514
|
"""
|
2552
2515
|
|
2553
2516
|
from zenml.cli.version import * # noqa
|
@@ -2570,7 +2533,6 @@ from zenml.cli.service_accounts import * # noqa
|
|
2570
2533
|
from zenml.cli.service_connectors import * # noqa
|
2571
2534
|
from zenml.cli.stack import * # noqa
|
2572
2535
|
from zenml.cli.stack_components import * # noqa
|
2573
|
-
from zenml.cli.stack_recipes import * # noqa
|
2574
2536
|
from zenml.cli.user_management import * # noqa
|
2575
2537
|
from zenml.cli.workspace import * # noqa
|
2576
2538
|
from zenml.cli.tag import * # noqa
|
zenml/cli/base.py
CHANGED
@@ -50,7 +50,7 @@ from zenml.io import fileio
|
|
50
50
|
from zenml.logger import get_logger
|
51
51
|
from zenml.utils.io_utils import copy_dir, get_global_config_directory
|
52
52
|
from zenml.utils.yaml_utils import write_yaml
|
53
|
-
from zenml.zen_server.utils import
|
53
|
+
from zenml.zen_server.utils import get_local_server
|
54
54
|
|
55
55
|
logger = get_logger(__name__)
|
56
56
|
# WT_SESSION is a Windows Terminal specific environment variable. If it
|
@@ -79,11 +79,11 @@ class ZenMLProjectTemplateLocation(BaseModel):
|
|
79
79
|
ZENML_PROJECT_TEMPLATES = dict(
|
80
80
|
e2e_batch=ZenMLProjectTemplateLocation(
|
81
81
|
github_url="zenml-io/template-e2e-batch",
|
82
|
-
github_tag="2024.
|
82
|
+
github_tag="2024.10.10", # Make sure it is aligned with .github/workflows/update-templates-to-examples.yml
|
83
83
|
),
|
84
84
|
starter=ZenMLProjectTemplateLocation(
|
85
85
|
github_url="zenml-io/template-starter",
|
86
|
-
github_tag="2024.09.
|
86
|
+
github_tag="2024.09.24", # Make sure it is aligned with .github/workflows/update-templates-to-examples.yml
|
87
87
|
),
|
88
88
|
nlp=ZenMLProjectTemplateLocation(
|
89
89
|
github_url="zenml-io/template-nlp",
|
@@ -91,7 +91,7 @@ ZENML_PROJECT_TEMPLATES = dict(
|
|
91
91
|
),
|
92
92
|
llm_finetuning=ZenMLProjectTemplateLocation(
|
93
93
|
github_url="zenml-io/template-llm-finetuning",
|
94
|
-
github_tag="2024.
|
94
|
+
github_tag="2024.09.24", # Make sure it is aligned with .github/workflows/update-templates-to-examples.yml
|
95
95
|
),
|
96
96
|
)
|
97
97
|
|
@@ -358,7 +358,7 @@ def clean(yes: bool = False, local: bool = False) -> None:
|
|
358
358
|
)
|
359
359
|
|
360
360
|
if yes or confirm:
|
361
|
-
server =
|
361
|
+
server = get_local_server()
|
362
362
|
|
363
363
|
if server:
|
364
364
|
from zenml.zen_server.deploy.deployer import ServerDeployer
|
zenml/cli/integration.py
CHANGED
@@ -282,15 +282,6 @@ def install(
|
|
282
282
|
else:
|
283
283
|
integration_set = set(integrations)
|
284
284
|
|
285
|
-
# TODO: remove once python 3.8 is deprecated
|
286
|
-
if sys.version_info.minor == 8 and "tensorflow" in integration_set:
|
287
|
-
warning(
|
288
|
-
"Python 3.8 with TensorFlow is not fully compatible with "
|
289
|
-
"Pydantic 2 requirements. Consider upgrading to a "
|
290
|
-
"higher Python version if you would like to use the "
|
291
|
-
"Tensorflow integration."
|
292
|
-
)
|
293
|
-
|
294
285
|
if sys.version_info.minor == 12 and "tensorflow" in integration_set:
|
295
286
|
warning(
|
296
287
|
"The TensorFlow integration is not yet compatible with Python "
|
zenml/cli/pipeline.py
CHANGED
@@ -33,7 +33,7 @@ from zenml.models import (
|
|
33
33
|
PipelineRunFilter,
|
34
34
|
ScheduleFilter,
|
35
35
|
)
|
36
|
-
from zenml.
|
36
|
+
from zenml.pipelines.pipeline_definition import Pipeline
|
37
37
|
from zenml.utils import source_utils, uuid_utils
|
38
38
|
from zenml.utils.yaml_utils import write_yaml
|
39
39
|
|
zenml/cli/served_model.py
CHANGED
@@ -215,11 +215,18 @@ def register_model_deployer_subcommands() -> None: # noqa: C901
|
|
215
215
|
)
|
216
216
|
or "No hostname specified for this service"
|
217
217
|
)
|
218
|
+
prediction_apis_urls = (
|
219
|
+
model_deployer.get_model_server_info(served_models[0]).get(
|
220
|
+
"PREDICTION_APIS_URLS"
|
221
|
+
)
|
222
|
+
or "No prediction APIs URLs specified for this service"
|
223
|
+
)
|
218
224
|
declare(
|
219
225
|
f" Prediction URL of Served Model {served_model_uuid} "
|
220
226
|
f"is:\n"
|
221
227
|
f" {prediction_url}\n"
|
222
|
-
f" and the hostname is: {prediction_hostname}"
|
228
|
+
f" and the hostname is: {prediction_hostname}\n"
|
229
|
+
f" and the prediction APIs URLs are: {prediction_apis_urls}\n"
|
223
230
|
)
|
224
231
|
except KeyError:
|
225
232
|
warning("The deployed model instance has no 'prediction_url'.")
|