zenml-nightly 0.67.0.dev20241002__py3-none-any.whl → 0.68.0.dev20241027__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.dev20241027.dist-info}/METADATA +4 -8
- {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241027.dist-info}/RECORD +270 -450
- {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241027.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.dev20241027.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241027.dist-info}/entry_points.txt +0 -0
README.md
CHANGED
@@ -86,7 +86,7 @@ Thank you for your support! 🌟
|
|
86
86
|
## 🤸 Quickstart
|
87
87
|
[](https://colab.research.google.com/github/zenml-io/zenml/blob/main/examples/quickstart/quickstart.ipynb)
|
88
88
|
|
89
|
-
[Install ZenML](https://docs.zenml.io/getting-started/installation) via [PyPI](https://pypi.org/project/zenml/). Python 3.
|
89
|
+
[Install ZenML](https://docs.zenml.io/getting-started/installation) via [PyPI](https://pypi.org/project/zenml/). Python 3.9 - 3.12 is required:
|
90
90
|
|
91
91
|
```bash
|
92
92
|
pip install "zenml[server]" notebook
|
@@ -327,7 +327,7 @@ the Apache License Version 2.0.
|
|
327
327
|
<a href="https://github.com/zenml-io/zenml-projects">Projects Showcase</a>
|
328
328
|
<br />
|
329
329
|
<br />
|
330
|
-
🎉 Version 0.
|
330
|
+
🎉 Version 0.68.0 is out. Check out the release notes
|
331
331
|
<a href="https://github.com/zenml-io/zenml/releases">here</a>.
|
332
332
|
<br />
|
333
333
|
🖥️ Download our VS Code Extension <a href="https://marketplace.visualstudio.com/items?itemName=ZenML.zenml-vscode">here</a>.
|
RELEASE_NOTES.md
CHANGED
@@ -1,5 +1,134 @@
|
|
1
1
|
<!-- markdown-link-check-disable -->
|
2
2
|
|
3
|
+
# 0.68.0
|
4
|
+
|
5
|
+
## Highlights
|
6
|
+
|
7
|
+
- **Stack Components on the Dashboard:** We're bringing back stack components.
|
8
|
+
With this release you will get access to the list of your stack components on
|
9
|
+
the ZenML dashboard. More functionality is going to follow in the next releases.
|
10
|
+
- **Client-Side Caching:** Implemented client-side computation for cached steps,
|
11
|
+
significantly reducing time and costs associated with remote orchestrator
|
12
|
+
spin-up.
|
13
|
+
- **Streamlined Onboarding Process:** Unified the starter and production setup
|
14
|
+
into a single sequential flow, providing a more intuitive user experience.
|
15
|
+
- **BentoML Integration:** Updated to version 1.3.5 with enhanced
|
16
|
+
containerization support.
|
17
|
+
- **Artifact Management:** Introduced `register_artifact` function enabling
|
18
|
+
direct linking of existing data in the artifact store, particularly useful
|
19
|
+
for tools like PyTorch-Lightning that manage their own checkpoints.
|
20
|
+
- **Enhanced Error Handling:** Added Error Boundary to visualization components
|
21
|
+
for improved reliability and user experience.
|
22
|
+
|
23
|
+
## Additional Features and Improvements
|
24
|
+
|
25
|
+
- Added multiple access points for deleting pipeline runs
|
26
|
+
- Improved pipeline detail view functionality
|
27
|
+
- Improved service account handling for Kaniko image builder
|
28
|
+
|
29
|
+
## Breaking Changes and Deprecations
|
30
|
+
|
31
|
+
- Discontinued Python 3.8 support
|
32
|
+
- Removed legacy pipeline and step interface
|
33
|
+
- Removed legacy post execution workflow
|
34
|
+
- Removed legacy dashboard option
|
35
|
+
- Removed `zenml stack up/down` CLI commands
|
36
|
+
- Removed `zenml deploy` and `zenml <stack-component> deploy`
|
37
|
+
- Removed `StepEnvironment` class
|
38
|
+
- Removed `ArtifactConfig` class for model version specification
|
39
|
+
- Removed `ExternalArtifact` class
|
40
|
+
- Deprecated `Client.list_runs` in favor of `Client.list_pipeline_runs`
|
41
|
+
- Deprecated `ArtifactVersionResponse.read` in favor of `ArtifactVersionResponse.load`
|
42
|
+
|
43
|
+
## Documentation Updates
|
44
|
+
|
45
|
+
Added new guides for the following topics:
|
46
|
+
|
47
|
+
- Kubernetes per-pod configuration
|
48
|
+
- Factory generation of artifact names
|
49
|
+
- Common stacks best practices
|
50
|
+
- Azure 1-click dashboard deployment
|
51
|
+
- ZenML server upgrade best practices
|
52
|
+
- Custom Dataset classes and Materializers
|
53
|
+
- Comprehensive ZenML Pro documentation
|
54
|
+
- Image building optimization during pipeline runs
|
55
|
+
- Enhanced BentoML integration documentation
|
56
|
+
|
57
|
+
## What's Changed
|
58
|
+
* Release 0.67.0 migration testing by @bcdurak in https://github.com/zenml-io/zenml/pull/3050
|
59
|
+
* Prevent too large requests by @avishniakov in https://github.com/zenml-io/zenml/pull/3048
|
60
|
+
* Fix Neptune linting after 1.12.0 release by @avishniakov in https://github.com/zenml-io/zenml/pull/3055
|
61
|
+
* Fix Lightning Orchestrator (remove -y from pip install) by @wjayesh in https://github.com/zenml-io/zenml/pull/3058
|
62
|
+
* Fix artifact pruning endpoint path by @schustmi in https://github.com/zenml-io/zenml/pull/3052
|
63
|
+
* Update python versioning in docs by @avishniakov in https://github.com/zenml-io/zenml/pull/3059
|
64
|
+
* Fix infinite loop while fetching artifact store in logs storage class by @avishniakov in https://github.com/zenml-io/zenml/pull/3061
|
65
|
+
* Make sync a setting for sagemaker/azureml orchestrator by @schustmi in https://github.com/zenml-io/zenml/pull/3062
|
66
|
+
* Remove some deprecated features by @schustmi in https://github.com/zenml-io/zenml/pull/2926
|
67
|
+
* Fix MySQL warning when filtering pipelines by latest run by @schustmi in https://github.com/zenml-io/zenml/pull/3051
|
68
|
+
* Remove more deprecated stuff by @schustmi in https://github.com/zenml-io/zenml/pull/3063
|
69
|
+
* Remove log versions from versioned buckets in S3 by @avishniakov in https://github.com/zenml-io/zenml/pull/3060
|
70
|
+
* add docs on k8s per pod settings by @wjayesh in https://github.com/zenml-io/zenml/pull/3066
|
71
|
+
* Remove Python 3.8 support by @strickvl in https://github.com/zenml-io/zenml/pull/3034
|
72
|
+
* `register_artifact ` function by @avishniakov in https://github.com/zenml-io/zenml/pull/3053
|
73
|
+
* Fix bad link in docs by @avishniakov in https://github.com/zenml-io/zenml/pull/3069
|
74
|
+
* Fix model linkage for the lazy loading scenarios by @avishniakov in https://github.com/zenml-io/zenml/pull/3054
|
75
|
+
* Updating template versions after the Python 3.8 changes by @bcdurak in https://github.com/zenml-io/zenml/pull/3070
|
76
|
+
* Add UUID materializer by @htahir1 in https://github.com/zenml-io/zenml/pull/3073
|
77
|
+
* Fix pipeline and model URLs for ZenML Pro on-prem deployments by @stefannica in https://github.com/zenml-io/zenml/pull/3083
|
78
|
+
* Update bentoml integration to 1.3.5 and add containerization by @wjayesh in https://github.com/zenml-io/zenml/pull/3045
|
79
|
+
* Fix mlflow linting by @schustmi in https://github.com/zenml-io/zenml/pull/3085
|
80
|
+
* Add docs for factory generation of artifact names by @strickvl in https://github.com/zenml-io/zenml/pull/3084
|
81
|
+
* Remove unnecessary metadata fields in UUID materializer test by @htahir1 in https://github.com/zenml-io/zenml/pull/3088
|
82
|
+
* Client-side computation of cached steps by @schustmi in https://github.com/zenml-io/zenml/pull/3068
|
83
|
+
* Fix Kaniko image builder service account passing by @schustmi in https://github.com/zenml-io/zenml/pull/3081
|
84
|
+
* Bugfix in GitLab Code Repository integration by @4gt-104 in https://github.com/zenml-io/zenml/pull/3076
|
85
|
+
* Add docs on common stacks best practices by @strickvl in https://github.com/zenml-io/zenml/pull/3092
|
86
|
+
* [docs] Update stacks page and add azure 1-click from dashboard docs by @wjayesh in https://github.com/zenml-io/zenml/pull/3082
|
87
|
+
* Local development how-to section by @strickvl in https://github.com/zenml-io/zenml/pull/3090
|
88
|
+
* [docs] best practices for upgrading zenml server by @wjayesh in https://github.com/zenml-io/zenml/pull/3087
|
89
|
+
* Fix S3 ArtifactStore auth issue by @avishniakov in https://github.com/zenml-io/zenml/pull/3086
|
90
|
+
* Reduce migration testing runtime by @avishniakov in https://github.com/zenml-io/zenml/pull/3078
|
91
|
+
* [docs] Dedicated docs on how to skip building an image on pipeline run by @wjayesh in https://github.com/zenml-io/zenml/pull/3079
|
92
|
+
* Fix filtering by tag for pipeline runs by @schustmi in https://github.com/zenml-io/zenml/pull/3097
|
93
|
+
* Remove deprecated features: `zenml deploy` and `zenml <stack-component> deploy` by @stefannica in https://github.com/zenml-io/zenml/pull/3089
|
94
|
+
* Do not tag model via `Model` class on creation by @avishniakov in https://github.com/zenml-io/zenml/pull/3098
|
95
|
+
* Sagemaker add pipeline tags by @htahir1 in https://github.com/zenml-io/zenml/pull/3080
|
96
|
+
* [docs] Add custom Dataset classes and Materializers in ZenML by @htahir1 in https://github.com/zenml-io/zenml/pull/3091
|
97
|
+
* Delete Scarf related scripts and workflow files by @htahir1 in https://github.com/zenml-io/zenml/pull/3103
|
98
|
+
* Add more detailed docs for ZenML Pro by @wjayesh in https://github.com/zenml-io/zenml/pull/3065
|
99
|
+
* Add missing code hash filter in client method by @schustmi in https://github.com/zenml-io/zenml/pull/3094
|
100
|
+
* Remove lineage graph and legacy dashboard support by @schustmi in https://github.com/zenml-io/zenml/pull/3064
|
101
|
+
* Add unittest to cover gitlab CR regex. by @4gt-104 in https://github.com/zenml-io/zenml/pull/3102
|
102
|
+
* Automating the release process using Github workflows by @bcdurak in https://github.com/zenml-io/zenml/pull/3101
|
103
|
+
* Bugfix for release automation by @bcdurak in https://github.com/zenml-io/zenml/pull/3107
|
104
|
+
* Bugfix for new version in the release automation by @bcdurak in https://github.com/zenml-io/zenml/pull/3108
|
105
|
+
* using the right parent image name by @bcdurak in https://github.com/zenml-io/zenml/pull/3109
|
106
|
+
* Making the new release automation scripts executable by @bcdurak in https://github.com/zenml-io/zenml/pull/3110
|
107
|
+
* Fixing the env variables for the release automation by @bcdurak in https://github.com/zenml-io/zenml/pull/3111
|
108
|
+
* Adding the right Github configuration before using the `gh` CLI to fetch the version by @bcdurak in https://github.com/zenml-io/zenml/pull/3112
|
109
|
+
* Fixing the outputs of the first step in the release automation by @bcdurak in https://github.com/zenml-io/zenml/pull/3113
|
110
|
+
* Handling github auth and release notes for release automation by @bcdurak in https://github.com/zenml-io/zenml/pull/3114
|
111
|
+
* Fixing the cloudbuild call for release automation by @bcdurak in https://github.com/zenml-io/zenml/pull/3116
|
112
|
+
* Fixing the update tenant call in the script by @bcdurak in https://github.com/zenml-io/zenml/pull/3118
|
113
|
+
* Release automation with the new redeploy logic by @bcdurak in https://github.com/zenml-io/zenml/pull/3120
|
114
|
+
* Fixing the automation triggers for other branches by @bcdurak in https://github.com/zenml-io/zenml/pull/3125
|
115
|
+
* Update link for `llm-complete-guide` repository.- Updated link to poi… by @htahir1 in https://github.com/zenml-io/zenml/pull/3128
|
116
|
+
* Fixing the migration testing for the release branches by @bcdurak in https://github.com/zenml-io/zenml/pull/3127
|
117
|
+
* Update pipeline deletion docs by @strickvl in https://github.com/zenml-io/zenml/pull/3123
|
118
|
+
* Disabling the cache for the quickstart tests by @bcdurak in https://github.com/zenml-io/zenml/pull/3133
|
119
|
+
* Update Argilla integration for v2.x SDK by @sdiazlor in https://github.com/zenml-io/zenml/pull/2915
|
120
|
+
* Using pip instead of `gh` CLI in the migration tests by @bcdurak in https://github.com/zenml-io/zenml/pull/3136
|
121
|
+
* Adapting tags to work with older versions of Sagemaker by @bcdurak in https://github.com/zenml-io/zenml/pull/3135
|
122
|
+
* Manual trigger for the `release_finalize` workflow by @bcdurak in https://github.com/zenml-io/zenml/pull/3137
|
123
|
+
* Fixing the prepare trigger for the release automation by @bcdurak in https://github.com/zenml-io/zenml/pull/3138
|
124
|
+
|
125
|
+
## New Contributors
|
126
|
+
* @4gt-104 made their first contribution in https://github.com/zenml-io/zenml/pull/3076
|
127
|
+
* @sdiazlor made their first contribution in https://github.com/zenml-io/zenml/pull/2915
|
128
|
+
|
129
|
+
**Full Changelog**: https://github.com/zenml-io/zenml/compare/0.67.0...0.68.0
|
130
|
+
|
131
|
+
|
3
132
|
# 0.67.0
|
4
133
|
|
5
134
|
## Highlights
|
zenml/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.68.0.dev20241027
|
zenml/__init__.py
CHANGED
@@ -13,7 +13,6 @@
|
|
13
13
|
# permissions and limitations under the License.
|
14
14
|
"""Initialization for ZenML."""
|
15
15
|
|
16
|
-
# Define ROOT_DIR
|
17
16
|
import os
|
18
17
|
|
19
18
|
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
|
@@ -37,20 +36,17 @@ from zenml.artifacts.utils import (
|
|
37
36
|
log_artifact_metadata,
|
38
37
|
save_artifact,
|
39
38
|
load_artifact,
|
39
|
+
register_artifact,
|
40
40
|
)
|
41
41
|
from zenml.model.utils import (
|
42
42
|
log_model_metadata,
|
43
43
|
link_artifact_to_model,
|
44
|
-
log_model_version_metadata,
|
45
44
|
)
|
46
45
|
from zenml.artifacts.artifact_config import ArtifactConfig
|
47
46
|
from zenml.artifacts.external_artifact import ExternalArtifact
|
48
47
|
from zenml.model.model import Model
|
49
|
-
from zenml.
|
50
|
-
from zenml.
|
51
|
-
from zenml.new.pipelines.pipeline_decorator import pipeline
|
52
|
-
from zenml.new.steps.step_decorator import step
|
53
|
-
from zenml.new.steps.step_context import get_step_context
|
48
|
+
from zenml.pipelines import get_pipeline_context, pipeline
|
49
|
+
from zenml.steps import step, get_step_context
|
54
50
|
from zenml.steps.utils import log_step_metadata
|
55
51
|
from zenml.entrypoints import entrypoint
|
56
52
|
|
@@ -62,13 +58,12 @@ __all__ = [
|
|
62
58
|
"load_artifact",
|
63
59
|
"log_artifact_metadata",
|
64
60
|
"log_model_metadata",
|
65
|
-
"log_model_version_metadata",
|
66
61
|
"log_step_metadata",
|
67
62
|
"Model",
|
68
|
-
"ModelVersion", # TODO: deprecate me
|
69
63
|
"link_artifact_to_model",
|
70
64
|
"pipeline",
|
71
65
|
"save_artifact",
|
66
|
+
"register_artifact",
|
72
67
|
"show",
|
73
68
|
"step",
|
74
69
|
"entrypoint",
|
zenml/analytics/enums.py
CHANGED
@@ -80,24 +80,11 @@ class AnalyticsEvent(str, Enum):
|
|
80
80
|
# Service account and API keys
|
81
81
|
CREATED_SERVICE_ACCOUNT = "Service account created"
|
82
82
|
|
83
|
-
# Stack recipes
|
84
|
-
RUN_STACK_RECIPE = "Stack recipe ran"
|
85
|
-
DEPLOY_STACK = "Stack deployed"
|
86
|
-
DESTROY_STACK = "Stack destroyed"
|
87
|
-
|
88
|
-
# Stack component deploy
|
89
|
-
DEPLOY_STACK_COMPONENT = "Stack component deployed"
|
90
|
-
DESTROY_STACK_COMPONENT = "Stack component destroyed"
|
91
|
-
|
92
83
|
# Full stack infrastructure deployment
|
93
84
|
DEPLOY_FULL_STACK = "Full stack deployed"
|
94
85
|
|
95
86
|
# Tag created
|
96
87
|
CREATED_TAG = "Tag created"
|
97
88
|
|
98
|
-
# ZenML server events
|
99
|
-
ZENML_SERVER_DEPLOYED = "ZenML server deployed"
|
100
|
-
ZENML_SERVER_DESTROYED = "ZenML server destroyed"
|
101
|
-
|
102
89
|
# Server Settings
|
103
90
|
SERVER_SETTINGS_UPDATED = "Server Settings Updated"
|
@@ -475,6 +475,17 @@ class BaseArtifactStore(StackComponent):
|
|
475
475
|
|
476
476
|
default_filesystem_registry.register(filesystem_class)
|
477
477
|
|
478
|
+
def _remove_previous_file_versions(self, path: PathType) -> None:
|
479
|
+
"""Remove all file versions but the latest in the given path.
|
480
|
+
|
481
|
+
Method is useful for logs stored in versioned file systems
|
482
|
+
like AWS S3.
|
483
|
+
|
484
|
+
Args:
|
485
|
+
path: The path to the file.
|
486
|
+
"""
|
487
|
+
return
|
488
|
+
|
478
489
|
|
479
490
|
class BaseArtifactStoreFlavor(Flavor):
|
480
491
|
"""Base class for artifact store flavors."""
|
@@ -13,19 +13,13 @@
|
|
13
13
|
# permissions and limitations under the License.
|
14
14
|
"""Artifact Config classes to support Model Control Plane feature."""
|
15
15
|
|
16
|
-
from typing import
|
16
|
+
from typing import Any, Dict, List, Optional, Union
|
17
17
|
|
18
|
-
from pydantic import BaseModel,
|
18
|
+
from pydantic import BaseModel, Field, model_validator
|
19
19
|
|
20
|
-
from zenml.enums import ModelStages
|
21
|
-
from zenml.exceptions import StepContextError
|
22
20
|
from zenml.logger import get_logger
|
23
21
|
from zenml.metadata.metadata_types import MetadataType
|
24
|
-
from zenml.
|
25
|
-
|
26
|
-
if TYPE_CHECKING:
|
27
|
-
from zenml.model.model import Model
|
28
|
-
|
22
|
+
from zenml.utils.pydantic_utils import before_validator_handler
|
29
23
|
|
30
24
|
logger = get_logger(__name__)
|
31
25
|
|
@@ -43,7 +37,6 @@ class ArtifactConfig(BaseModel):
|
|
43
37
|
name="my_artifact", # override the default artifact name
|
44
38
|
version=42, # set a custom version
|
45
39
|
tags=["tag1", "tag2"], # set custom tags
|
46
|
-
model_name="my_model", # link the artifact to a model
|
47
40
|
)
|
48
41
|
]:
|
49
42
|
return ...
|
@@ -53,11 +46,7 @@ class ArtifactConfig(BaseModel):
|
|
53
46
|
name: The name of the artifact.
|
54
47
|
version: The version of the artifact.
|
55
48
|
tags: The tags of the artifact.
|
56
|
-
|
57
|
-
model_version: The identifier of a version of the model to link the artifact
|
58
|
-
to. It can be an exact version ("my_version"), exact version number
|
59
|
-
(42), stage (ModelStages.PRODUCTION or "production"), or
|
60
|
-
(ModelStages.LATEST or None) for the latest version (default).
|
49
|
+
run_metadata: Metadata to add to the artifact.
|
61
50
|
is_model_artifact: Whether the artifact is a model artifact.
|
62
51
|
is_deployment_artifact: Whether the artifact is a deployment artifact.
|
63
52
|
"""
|
@@ -69,63 +58,28 @@ class ArtifactConfig(BaseModel):
|
|
69
58
|
tags: Optional[List[str]] = None
|
70
59
|
run_metadata: Optional[Dict[str, MetadataType]] = None
|
71
60
|
|
72
|
-
model_name: Optional[str] = None
|
73
|
-
model_version: Optional[Union[ModelStages, str, int]] = Field(
|
74
|
-
default=None, union_mode="smart"
|
75
|
-
)
|
76
61
|
is_model_artifact: bool = False
|
77
62
|
is_deployment_artifact: bool = False
|
78
63
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
# careful we might overwrite some fields protected by pydantic.
|
85
|
-
model_config = ConfigDict(protected_namespaces=())
|
86
|
-
|
87
|
-
@model_validator(mode="after")
|
88
|
-
def artifact_config_validator(self) -> "ArtifactConfig":
|
89
|
-
"""Model validator for the artifact config.
|
64
|
+
@model_validator(mode="before")
|
65
|
+
@classmethod
|
66
|
+
@before_validator_handler
|
67
|
+
def _remove_old_attributes(cls, data: Dict[str, Any]) -> Dict[str, Any]:
|
68
|
+
"""Remove old attributes that are not used anymore.
|
90
69
|
|
91
|
-
|
92
|
-
|
70
|
+
Args:
|
71
|
+
data: The model data.
|
93
72
|
|
94
73
|
Returns:
|
95
|
-
the
|
74
|
+
Model data without the removed attributes.
|
96
75
|
"""
|
97
|
-
|
98
|
-
|
99
|
-
f"Creation of new model version from {self.__class__.__name__} "
|
100
|
-
"is not allowed. Please either keep `model_name` and "
|
101
|
-
"`model_version` both `None` to get the model version from the "
|
102
|
-
"step context or specify both at the same time. You can use "
|
103
|
-
"`ModelStages.LATEST` as `model_version` when latest model "
|
104
|
-
"version is desired."
|
105
|
-
)
|
106
|
-
return self
|
107
|
-
|
108
|
-
@property
|
109
|
-
def _model(self) -> Optional["Model"]:
|
110
|
-
"""The model linked to this artifact.
|
76
|
+
model_name = data.pop("model_name", None)
|
77
|
+
model_version = data.pop("model_version", None)
|
111
78
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
model_ = get_step_context().model
|
117
|
-
except (StepContextError, RuntimeError):
|
118
|
-
model_ = None
|
119
|
-
# Check if another model name was specified
|
120
|
-
if (self.model_name is not None) and (
|
121
|
-
model_ is None or model_.name != self.model_name
|
122
|
-
):
|
123
|
-
# Create a new Model instance with the provided model name and version
|
124
|
-
from zenml.model.model import Model
|
125
|
-
|
126
|
-
on_the_fly_config = Model(
|
127
|
-
name=self.model_name, version=self.model_version
|
79
|
+
if model_name or model_version:
|
80
|
+
logger.warning(
|
81
|
+
"Specifying a model name or version for a step output "
|
82
|
+
"artifact is not supported anymore."
|
128
83
|
)
|
129
|
-
return on_the_fly_config
|
130
84
|
|
131
|
-
return
|
85
|
+
return data
|
@@ -40,19 +40,11 @@ class ExternalArtifact(ExternalArtifactConfiguration):
|
|
40
40
|
can be used to provide any value as input to a step without needing to
|
41
41
|
write an additional step that returns this value.
|
42
42
|
|
43
|
-
The external artifact needs to have
|
44
|
-
that will be uploaded to the artifact store
|
45
|
-
that is already registered in ZenML.
|
46
|
-
|
47
|
-
There are several ways to reference an existing artifact:
|
48
|
-
- By providing an artifact ID.
|
49
|
-
- By providing an artifact name and version. If no version is provided,
|
50
|
-
the latest version of that artifact will be used.
|
43
|
+
The external artifact needs to have a value associated with it
|
44
|
+
that will be uploaded to the artifact store.
|
51
45
|
|
52
46
|
Args:
|
53
47
|
value: The artifact value.
|
54
|
-
id: The ID of an artifact that should be referenced by this external
|
55
|
-
artifact.
|
56
48
|
materializer: The materializer to use for saving the artifact value
|
57
49
|
to the artifact store. Only used when `value` is provided.
|
58
50
|
store_artifact_metadata: Whether metadata for the artifact should
|
@@ -90,51 +82,16 @@ class ExternalArtifact(ExternalArtifactConfiguration):
|
|
90
82
|
"""Model validator for the external artifact.
|
91
83
|
|
92
84
|
Raises:
|
93
|
-
ValueError:
|
85
|
+
ValueError: If an ID was set.
|
94
86
|
|
95
87
|
Returns:
|
96
|
-
|
88
|
+
The validated instance.
|
97
89
|
"""
|
98
|
-
|
99
|
-
"Parameter `{param}` or `ExternalArtifact` will be deprecated "
|
100
|
-
"in upcoming releases. Please use `{substitute}` instead."
|
101
|
-
)
|
102
|
-
for param, substitute in [
|
103
|
-
["id", "Client().get_artifact_version(name_id_or_prefix=<id>)"],
|
104
|
-
[
|
105
|
-
"name",
|
106
|
-
"Client().get_artifact_version(name_id_or_prefix=<name>)",
|
107
|
-
],
|
108
|
-
[
|
109
|
-
"version",
|
110
|
-
"Client().get_artifact_version(name_id_or_prefix=<name>,version=<version>)",
|
111
|
-
],
|
112
|
-
[
|
113
|
-
"model",
|
114
|
-
"Client().get_model_version(<model_name>,<model_version>).get_artifact(name)",
|
115
|
-
],
|
116
|
-
]:
|
117
|
-
if getattr(self, param, None):
|
118
|
-
logger.warning(
|
119
|
-
deprecation_msg.format(
|
120
|
-
param=param,
|
121
|
-
substitute=substitute,
|
122
|
-
)
|
123
|
-
)
|
124
|
-
options = [
|
125
|
-
getattr(self, field, None) is not None
|
126
|
-
for field in ["value", "id", "name"]
|
127
|
-
]
|
128
|
-
if sum(options) > 1:
|
90
|
+
if self.id:
|
129
91
|
raise ValueError(
|
130
|
-
"
|
131
|
-
"creating an external artifact."
|
132
|
-
)
|
133
|
-
elif sum(options) == 0:
|
134
|
-
raise ValueError(
|
135
|
-
"Either `value`, `id`, or `name` must be provided when "
|
136
|
-
"creating an external artifact."
|
92
|
+
"External artifacts can only be initialized with a value."
|
137
93
|
)
|
94
|
+
|
138
95
|
return self
|
139
96
|
|
140
97
|
def upload_by_value(self) -> UUID:
|
@@ -177,7 +134,4 @@ class ExternalArtifact(ExternalArtifactConfiguration):
|
|
177
134
|
"""
|
178
135
|
return ExternalArtifactConfiguration(
|
179
136
|
id=self.id,
|
180
|
-
name=self.name,
|
181
|
-
version=self.version,
|
182
|
-
model=self.model,
|
183
137
|
)
|
@@ -13,14 +13,13 @@
|
|
13
13
|
# permissions and limitations under the License.
|
14
14
|
"""External artifact definition."""
|
15
15
|
|
16
|
-
from typing import Optional
|
16
|
+
from typing import Any, Dict, Optional
|
17
17
|
from uuid import UUID
|
18
18
|
|
19
19
|
from pydantic import BaseModel, model_validator
|
20
20
|
|
21
21
|
from zenml.logger import get_logger
|
22
|
-
from zenml.
|
23
|
-
from zenml.models.v2.core.artifact_version import ArtifactVersionResponse
|
22
|
+
from zenml.utils.pydantic_utils import before_validator_handler
|
24
23
|
|
25
24
|
logger = get_logger(__name__)
|
26
25
|
|
@@ -32,26 +31,23 @@ class ExternalArtifactConfiguration(BaseModel):
|
|
32
31
|
"""
|
33
32
|
|
34
33
|
id: Optional[UUID] = None
|
35
|
-
name: Optional[str] = None
|
36
|
-
version: Optional[str] = None
|
37
|
-
model: Optional[Model] = None
|
38
34
|
|
39
|
-
@model_validator(mode="
|
40
|
-
|
41
|
-
|
35
|
+
@model_validator(mode="before")
|
36
|
+
@classmethod
|
37
|
+
@before_validator_handler
|
38
|
+
def _remove_old_attributes(cls, data: Dict[str, Any]) -> Dict[str, Any]:
|
39
|
+
"""Remove old attributes that are not used anymore.
|
42
40
|
|
43
|
-
|
44
|
-
|
41
|
+
Args:
|
42
|
+
data: The model data.
|
45
43
|
|
46
44
|
Returns:
|
47
|
-
the
|
45
|
+
Model data without the removed attributes.
|
48
46
|
"""
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
)
|
54
|
-
return self
|
47
|
+
data.pop("name", None)
|
48
|
+
data.pop("version", None)
|
49
|
+
data.pop("model", None)
|
50
|
+
return data
|
55
51
|
|
56
52
|
def get_artifact_version_id(self) -> UUID:
|
57
53
|
"""Get the artifact.
|
@@ -71,29 +67,16 @@ class ExternalArtifactConfiguration(BaseModel):
|
|
71
67
|
|
72
68
|
if self.id:
|
73
69
|
response = client.get_artifact_version(self.id)
|
74
|
-
elif self.name:
|
75
|
-
if self.version:
|
76
|
-
response = client.get_artifact_version(
|
77
|
-
self.name, version=self.version
|
78
|
-
)
|
79
|
-
elif self.model:
|
80
|
-
response_ = self.model.get_artifact(self.name)
|
81
|
-
if not isinstance(response_, ArtifactVersionResponse):
|
82
|
-
raise RuntimeError(
|
83
|
-
f"Failed to pull artifact `{self.name}` from the Model "
|
84
|
-
f"(name=`{self.model.name}`, version="
|
85
|
-
f"`{self.model.version}`). Please validate the "
|
86
|
-
"input and try again."
|
87
|
-
)
|
88
|
-
response = response_
|
89
|
-
else:
|
90
|
-
response = client.get_artifact_version(self.name)
|
91
70
|
else:
|
92
71
|
raise RuntimeError(
|
93
|
-
"
|
94
|
-
"If you created this ExternalArtifact from a value, please "
|
72
|
+
"The ID of the artifact must be provided. "
|
73
|
+
"- If you created this ExternalArtifact from a value, please "
|
95
74
|
"ensure that `upload_by_value` was called before trying to "
|
96
|
-
"fetch the artifact ID
|
75
|
+
"fetch the artifact ID.\n- If you specified an artifact name "
|
76
|
+
"or model name for this external artifact, this functionality "
|
77
|
+
"was removed from the ExternalArtifact class. Use Client "
|
78
|
+
"methods instead to dynamically fetch an artifact via name or "
|
79
|
+
"from a model instead."
|
97
80
|
)
|
98
81
|
|
99
82
|
artifact_store_id = client.active_stack.artifact_store.id
|
@@ -107,6 +90,4 @@ class ExternalArtifactConfiguration(BaseModel):
|
|
107
90
|
"store."
|
108
91
|
)
|
109
92
|
|
110
|
-
self.id = response.id
|
111
|
-
|
112
93
|
return self.id
|
@@ -0,0 +1,91 @@
|
|
1
|
+
# Copyright (c) ZenML GmbH 2023. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at:
|
6
|
+
#
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
12
|
+
# or implied. See the License for the specific language governing
|
13
|
+
# permissions and limitations under the License.
|
14
|
+
"""Only-load materializer for directories."""
|
15
|
+
|
16
|
+
import os
|
17
|
+
import tempfile
|
18
|
+
from pathlib import Path
|
19
|
+
from typing import Any, ClassVar, Tuple, Type
|
20
|
+
|
21
|
+
from zenml.enums import ArtifactType
|
22
|
+
from zenml.io import fileio
|
23
|
+
from zenml.materializers.base_materializer import BaseMaterializer
|
24
|
+
|
25
|
+
|
26
|
+
class PreexistingDataMaterializer(BaseMaterializer):
|
27
|
+
"""Materializer to load directories from the artifact store.
|
28
|
+
|
29
|
+
This materializer is very special, since it do not implement save
|
30
|
+
logic at all. The save of the data to some URI inside the artifact store
|
31
|
+
shall happen outside and is in user's responsibility.
|
32
|
+
|
33
|
+
This materializer solely supports the `register_artifact` function.
|
34
|
+
"""
|
35
|
+
|
36
|
+
ASSOCIATED_TYPES: ClassVar[Tuple[Type[Any], ...]] = (Path,)
|
37
|
+
ASSOCIATED_ARTIFACT_TYPE: ClassVar[ArtifactType] = ArtifactType.DATA
|
38
|
+
SKIP_REGISTRATION: ClassVar[bool] = True
|
39
|
+
|
40
|
+
def load(self, data_type: Type[Any]) -> Any:
|
41
|
+
"""Copy the artifact file(s) to a local temp directory.
|
42
|
+
|
43
|
+
Args:
|
44
|
+
data_type: Unused.
|
45
|
+
|
46
|
+
Returns:
|
47
|
+
Path to the local directory that contains the artifact files.
|
48
|
+
"""
|
49
|
+
directory = tempfile.mkdtemp(prefix="zenml-artifact")
|
50
|
+
if fileio.isdir(self.uri):
|
51
|
+
self._copy_directory(src=self.uri, dst=directory)
|
52
|
+
return Path(directory)
|
53
|
+
else:
|
54
|
+
dst = os.path.join(directory, os.path.split(self.uri)[-1])
|
55
|
+
fileio.copy(src=self.uri, dst=dst)
|
56
|
+
return Path(dst)
|
57
|
+
|
58
|
+
def save(self, data: Any) -> None:
|
59
|
+
"""Store the directory in the artifact store.
|
60
|
+
|
61
|
+
Args:
|
62
|
+
data: Path to a local directory to store.
|
63
|
+
|
64
|
+
Raises:
|
65
|
+
NotImplementedError: Always
|
66
|
+
"""
|
67
|
+
raise NotImplementedError(
|
68
|
+
"`PreexistingDataMaterializer` can only be used in the "
|
69
|
+
"context of `register_artifact` function, "
|
70
|
+
"which expects the data to be already properly saved in "
|
71
|
+
"the Artifact Store, thus `save` logic makes no sense here."
|
72
|
+
)
|
73
|
+
|
74
|
+
@staticmethod
|
75
|
+
def _copy_directory(src: str, dst: str) -> None:
|
76
|
+
"""Recursively copy a directory.
|
77
|
+
|
78
|
+
Args:
|
79
|
+
src: The directory to copy.
|
80
|
+
dst: Where to copy the directory to.
|
81
|
+
"""
|
82
|
+
for src_dir, _, files in fileio.walk(src):
|
83
|
+
src_dir_ = str(src_dir)
|
84
|
+
dst_dir = str(os.path.join(dst, os.path.relpath(src_dir_, src)))
|
85
|
+
fileio.makedirs(dst_dir)
|
86
|
+
|
87
|
+
for file in files:
|
88
|
+
file_ = str(file)
|
89
|
+
src_file = os.path.join(src_dir_, file_)
|
90
|
+
dst_file = os.path.join(dst_dir, file_)
|
91
|
+
fileio.copy(src_file, dst_file)
|