zenml-nightly 0.66.0.dev20240928__py3-none-any.whl → 0.68.1.dev20241102__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- README.md +18 -12
- RELEASE_NOTES.md +236 -0
- zenml/VERSION +1 -1
- zenml/__init__.py +5 -10
- zenml/analytics/context.py +16 -1
- zenml/analytics/enums.py +0 -13
- zenml/analytics/utils.py +18 -7
- zenml/artifact_stores/base_artifact_store.py +11 -0
- zenml/artifacts/artifact_config.py +19 -65
- zenml/artifacts/external_artifact.py +7 -53
- zenml/artifacts/external_artifact_config.py +21 -40
- zenml/artifacts/load_directory_materializer.py +91 -0
- zenml/artifacts/utils.py +204 -145
- zenml/cli/__init__.py +62 -127
- zenml/cli/base.py +8 -8
- zenml/cli/integration.py +0 -9
- zenml/cli/login.py +951 -0
- zenml/cli/pipeline.py +1 -1
- zenml/cli/served_model.py +8 -1
- zenml/cli/server.py +462 -577
- zenml/cli/service_accounts.py +4 -4
- zenml/cli/stack.py +78 -569
- zenml/cli/stack_components.py +5 -594
- zenml/cli/user_management.py +0 -12
- zenml/cli/utils.py +24 -142
- zenml/client.py +57 -40
- zenml/client_lazy_loader.py +29 -12
- zenml/config/compiler.py +7 -11
- zenml/config/global_config.py +9 -0
- zenml/config/pipeline_configurations.py +2 -1
- zenml/config/pipeline_run_configuration.py +2 -1
- zenml/config/server_config.py +7 -5
- zenml/config/step_configurations.py +2 -0
- zenml/constants.py +6 -42
- zenml/enums.py +1 -4
- zenml/environment.py +1 -315
- zenml/exceptions.py +12 -41
- zenml/hooks/hook_validators.py +1 -8
- zenml/integrations/airflow/orchestrators/airflow_orchestrator.py +2 -3
- zenml/integrations/argilla/__init__.py +1 -1
- zenml/integrations/argilla/annotators/argilla_annotator.py +234 -89
- zenml/integrations/argilla/flavors/argilla_annotator_flavor.py +10 -5
- zenml/integrations/aws/flavors/sagemaker_orchestrator_flavor.py +9 -5
- zenml/integrations/aws/orchestrators/sagemaker_orchestrator.py +15 -2
- zenml/integrations/aws/service_connectors/aws_service_connector.py +6 -0
- zenml/integrations/azure/flavors/azureml_orchestrator_flavor.py +5 -4
- zenml/integrations/azure/orchestrators/azureml_orchestrator.py +1 -1
- zenml/integrations/bentoml/model_deployers/bentoml_model_deployer.py +85 -19
- zenml/integrations/bentoml/services/__init__.py +15 -4
- zenml/integrations/bentoml/services/bentoml_container_deployment.py +399 -0
- zenml/integrations/bentoml/services/{bentoml_deployment.py → bentoml_local_deployment.py} +81 -40
- zenml/{steps/base_parameters.py → integrations/bentoml/services/deployment_type.py} +8 -5
- zenml/integrations/bentoml/steps/bento_builder.py +1 -0
- zenml/integrations/bentoml/steps/bentoml_deployer.py +93 -41
- zenml/integrations/github/code_repositories/github_code_repository.py +1 -1
- zenml/integrations/gitlab/code_repositories/gitlab_code_repository.py +6 -1
- zenml/integrations/huggingface/__init__.py +1 -6
- zenml/integrations/kaniko/image_builders/kaniko_image_builder.py +3 -3
- zenml/integrations/lightning/orchestrators/lightning_orchestrator.py +3 -3
- zenml/integrations/lightning/orchestrators/lightning_orchestrator_entrypoint.py +2 -2
- zenml/integrations/mlflow/experiment_trackers/mlflow_experiment_tracker.py +6 -3
- zenml/integrations/mlflow/model_registries/mlflow_model_registry.py +6 -0
- zenml/integrations/mlflow/services/mlflow_deployment.py +2 -2
- zenml/integrations/mlflow/steps/mlflow_deployer.py +1 -1
- zenml/integrations/mlflow/steps/mlflow_registry.py +1 -1
- zenml/integrations/neptune/experiment_trackers/run_state.py +2 -2
- zenml/integrations/pytorch/materializers/base_pytorch_materializer.py +8 -2
- zenml/integrations/pytorch/materializers/pytorch_module_materializer.py +4 -1
- zenml/integrations/s3/artifact_stores/s3_artifact_store.py +98 -0
- zenml/integrations/s3/flavors/s3_artifact_store_flavor.py +14 -0
- zenml/integrations/s3/utils.py +40 -0
- zenml/integrations/tensorflow/__init__.py +0 -9
- zenml/logging/step_logging.py +13 -15
- zenml/{new/pipelines → login}/__init__.py +4 -1
- zenml/login/credentials.py +346 -0
- zenml/login/credentials_store.py +603 -0
- zenml/{new → login/pro}/__init__.py +4 -1
- zenml/login/pro/client.py +496 -0
- zenml/login/pro/constants.py +34 -0
- zenml/{lineage_graph/edge.py → login/pro/models.py} +9 -8
- zenml/{zen_server/deploy/terraform/providers → login/pro/organization}/__init__.py +2 -2
- zenml/login/pro/organization/client.py +79 -0
- zenml/{lineage_graph/node/base_node.py → login/pro/organization/models.py} +13 -12
- zenml/{new/steps → login/pro/tenant}/__init__.py +2 -1
- zenml/login/pro/tenant/client.py +92 -0
- zenml/login/pro/tenant/models.py +174 -0
- zenml/login/pro/utils.py +121 -0
- zenml/{cli → login}/web_login.py +64 -28
- zenml/materializers/__init__.py +2 -0
- zenml/materializers/base_materializer.py +43 -9
- zenml/materializers/built_in_materializer.py +1 -1
- zenml/materializers/uuid_materializer.py +79 -0
- zenml/metadata/lazy_load.py +10 -7
- zenml/metadata/metadata_types.py +49 -0
- zenml/model/lazy_load.py +85 -4
- zenml/model/model.py +61 -83
- zenml/model/utils.py +47 -118
- zenml/models/__init__.py +6 -0
- zenml/models/v2/base/base.py +12 -8
- zenml/models/v2/base/filter.py +9 -0
- zenml/models/v2/core/artifact_version.py +53 -25
- zenml/models/v2/core/component.py +54 -19
- zenml/models/v2/core/flavor.py +13 -13
- zenml/models/v2/core/model.py +4 -1
- zenml/models/v2/core/model_version.py +4 -6
- zenml/models/v2/core/model_version_artifact.py +3 -1
- zenml/models/v2/core/model_version_pipeline_run.py +3 -1
- zenml/models/v2/core/pipeline.py +3 -1
- zenml/models/v2/core/pipeline_run.py +24 -3
- zenml/models/v2/core/run_metadata.py +2 -2
- zenml/models/v2/core/run_template.py +3 -1
- zenml/models/v2/core/stack.py +7 -3
- zenml/models/v2/core/step_run.py +58 -14
- zenml/models/v2/misc/auth_models.py +11 -2
- zenml/models/v2/misc/server_models.py +2 -4
- zenml/orchestrators/base_orchestrator.py +41 -4
- zenml/orchestrators/input_utils.py +52 -36
- zenml/orchestrators/step_launcher.py +50 -171
- zenml/orchestrators/step_run_utils.py +574 -0
- zenml/orchestrators/step_runner.py +83 -120
- zenml/orchestrators/utils.py +46 -180
- zenml/pipelines/__init__.py +3 -16
- zenml/{new/pipelines → pipelines}/pipeline_context.py +3 -18
- zenml/pipelines/pipeline_decorator.py +34 -60
- zenml/{new/pipelines/pipeline.py → pipelines/pipeline_definition.py} +210 -207
- zenml/{new/pipelines → pipelines}/run_utils.py +11 -10
- zenml/services/local/local_daemon_entrypoint.py +4 -4
- zenml/services/service.py +2 -2
- zenml/stack/stack.py +3 -108
- zenml/stack/stack_component.py +2 -78
- zenml/stack/utils.py +26 -14
- zenml/stack_deployments/aws_stack_deployment.py +3 -0
- zenml/step_operators/step_operator_entrypoint_configuration.py +1 -1
- zenml/steps/__init__.py +3 -9
- zenml/steps/base_step.py +25 -267
- zenml/steps/entrypoint_function_utils.py +2 -80
- zenml/{new/steps → steps}/step_context.py +12 -66
- zenml/steps/step_decorator.py +42 -89
- zenml/steps/step_invocation.py +16 -60
- zenml/steps/utils.py +4 -23
- zenml/utils/dashboard_utils.py +16 -51
- zenml/utils/materializer_utils.py +1 -1
- zenml/utils/requirements_utils.py +71 -0
- zenml/utils/singleton.py +15 -3
- zenml/utils/source_utils.py +39 -2
- zenml/utils/typing_utils.py +8 -28
- zenml/utils/visualization_utils.py +1 -1
- zenml/zen_server/auth.py +44 -39
- zenml/zen_server/dashboard/assets/{404-Y50hSt65.js → 404-DT4QRUqN.js} +1 -1
- zenml/zen_server/dashboard/assets/@radix-DP6vWzyx.js +85 -0
- zenml/zen_server/dashboard/assets/@react-router-BMhZulnd.js +29 -0
- zenml/zen_server/dashboard/assets/@reactflow-8U9qNlMR.js +17 -0
- zenml/zen_server/dashboard/assets/@tanstack-BUCbhJyH.js +22 -0
- zenml/zen_server/dashboard/assets/{AlertDialogDropdownItem-xLR9a1iw.js → AlertDialogDropdownItem-C6N2rGrB.js} +1 -1
- zenml/zen_server/dashboard/assets/{CodeSnippet-IxXNxUDa.js → CodeSnippet-CqybNv0k.js} +1 -1
- zenml/zen_server/dashboard/assets/{CollapsibleCard-BhutZbBL.js → CollapsibleCard-0r_8G2Lj.js} +1 -1
- zenml/zen_server/dashboard/assets/{Commands-Bf-rd1z8.js → Commands-BDjgBQKi.js} +1 -1
- zenml/zen_server/dashboard/assets/ComponentBadge-DUiEYJHu.js +1 -0
- zenml/zen_server/dashboard/assets/ComponentFallbackDialog-BFoH5K4V.js +1 -0
- zenml/zen_server/dashboard/assets/ComponentIcon-CAIoUis2.js +1 -0
- zenml/zen_server/dashboard/assets/{CopyButton-DcFHidFJ.js → CopyButton-C745BrKi.js} +1 -1
- zenml/zen_server/dashboard/assets/{CsvVizualization-QSbjrfxw.js → CsvVizualization-PpAq0CeZ.js} +5 -5
- zenml/zen_server/dashboard/assets/{DialogItem-Cd3HqST4.js → DialogItem-DcVCZEew.js} +1 -1
- zenml/zen_server/dashboard/assets/{DisplayDate-DkCy54Bp.js → DisplayDate-BeXgUG_C.js} +1 -1
- zenml/zen_server/dashboard/assets/{EmptyState-Cs3DEmso.js → EmptyState-DeK7H4pr.js} +1 -1
- zenml/zen_server/dashboard/assets/{Error-BhwdmqK7.js → Error-BMlzibXj.js} +1 -1
- zenml/zen_server/dashboard/assets/{Helpbox-0pBpTwTm.js → Helpbox-BLf40fLV.js} +1 -1
- zenml/zen_server/dashboard/assets/{Infobox-BTK_EUKT.js → Infobox-BwisKifi.js} +1 -1
- zenml/zen_server/dashboard/assets/{InlineAvatar-CA3DFMcM.js → InlineAvatar-jEgodSgX.js} +1 -1
- zenml/zen_server/dashboard/assets/{Lock-CmIn0szs.js → Lock-3lLt1ih0.js} +1 -1
- zenml/zen_server/dashboard/assets/MarkdownVisualization-8O9kTr-2.js +14 -0
- zenml/zen_server/dashboard/assets/{NumberBox-CrN0_kqI.js → NumberBox-T9eELfLZ.js} +1 -1
- zenml/zen_server/dashboard/assets/{Partials-QLOZw624.js → Partials-YPBB3V4q.js} +1 -1
- zenml/zen_server/dashboard/assets/{PasswordChecker-DE71J_3F.js → PasswordChecker-CW0kqY0W.js} +1 -1
- zenml/zen_server/dashboard/assets/{ProviderIcon-C16CCIN4.js → ProviderIcon-Bb3Xha5A.js} +1 -1
- zenml/zen_server/dashboard/assets/{ProviderRadio-D3FuCHf3.js → ProviderRadio-BROY1700.js} +1 -1
- zenml/zen_server/dashboard/assets/RunSelector-DCiL3M1c.js +1 -0
- zenml/zen_server/dashboard/assets/SearchField-DfUiGFVd.js +1 -0
- zenml/zen_server/dashboard/assets/{SecretTooltip-BaMwHF-Q.js → SecretTooltip-C_qByGWB.js} +1 -1
- zenml/zen_server/dashboard/assets/{SetPassword-DuIC65H9.js → SetPassword-7pRB00El.js} +1 -1
- zenml/zen_server/dashboard/assets/{Tick-DJTCF0Re.js → Tick-CykQFPj2.js} +1 -1
- zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-CUm-DMpw.js → UpdatePasswordSchemas-DckMEkFf.js} +1 -1
- zenml/zen_server/dashboard/assets/{UsageReason-CKw0juLF.js → UsageReason-DVceN14P.js} +1 -1
- zenml/zen_server/dashboard/assets/{WizardFooter-Cv9ApYWU.js → WizardFooter-CW0Cvd70.js} +1 -1
- zenml/zen_server/dashboard/assets/{check-circle-DOoS4yhF.js → check-circle-Dwxliy1Z.js} +1 -1
- zenml/zen_server/dashboard/assets/{chevron-down-Cwb-W_B_.js → chevron-down-8wLBS5pQ.js} +1 -1
- zenml/zen_server/dashboard/assets/{chevron-right-double-c9H46Kl8.js → chevron-right-double-DoD8iXWM.js} +1 -1
- zenml/zen_server/dashboard/assets/{cloud-only-BB4BVa6E.js → cloud-only-B-s_HMDm.js} +1 -1
- zenml/zen_server/dashboard/assets/{code-browser-BJYErIjr.js → code-browser-CZUQs3Wa.js} +1 -1
- zenml/zen_server/dashboard/assets/{copy-CaGlDsUy.js → copy-CaSMXwiU.js} +1 -1
- zenml/zen_server/dashboard/assets/{create-stack-F29xAUEx.js → create-stack-CEmaPZ4c.js} +1 -1
- zenml/zen_server/dashboard/assets/delete-run-D-LKbGyz.js +1 -0
- zenml/zen_server/dashboard/assets/{docker-BFAFXr2_.js → docker-BFNgg-z3.js} +1 -1
- zenml/zen_server/dashboard/assets/{dots-horizontal-C6K59vUm.js → dots-horizontal-DK5Duzx4.js} +1 -1
- zenml/zen_server/dashboard/assets/{form-schemas-BKXwSDK2.js → form-schemas-1AyOCx90.js} +1 -1
- zenml/zen_server/dashboard/assets/{gcp-Dj6ntk0L.js → gcp-7M2Yf3ZK.js} +1 -1
- zenml/zen_server/dashboard/assets/{help-CwN931fX.js → help-Dam461dC.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-5GJ5ysEZ.js → index-BVJ8n2-j.js} +1 -1
- zenml/zen_server/dashboard/assets/index-Bpmj40BI.js +1 -0
- zenml/zen_server/dashboard/assets/index-CbU4Ln_E.css +1 -0
- zenml/zen_server/dashboard/assets/{index-D-mtoBj3.js → index-DKPhqP2B.js} +1 -1
- zenml/zen_server/dashboard/assets/index-QQb7wQEC.js +55 -0
- zenml/zen_server/dashboard/assets/index.esm-cuVep_NJ.js +1 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-BLGc9T1a.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-ZzOtrSSW.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-D4Vwzodn.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-DH2hs3aW.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-BGBWG807.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-BuzJQFbW.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-BPnxn4xp.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-Dc4VJyIJ.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-BShVwWPj.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-CUiC4oBV.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-Bt9VVOA-.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-CaqZN2hq.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-400-normal-BZzXV7-1.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-400-normal-DxZsaF_h.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-500-normal-CeQXL5ds.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-500-normal-d_eO-yCQ.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-600-normal-CwicyhtI.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-600-normal-Dhlb-90d.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-Bput3-QP.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-DCpCPQOf.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-B6guLgqG.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-M2hEX8vc.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-C9WLioJ8.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-Cnui8OiR.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-400-normal-BOOGhInR.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-400-normal-gitzw0hO.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-500-normal-D2bGa7uu.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-500-normal-deR1Tlfd.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-600-normal-B5cFAncS.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-600-normal-D273HNI0.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-C1t-h-pH.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-hnt3BR84.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-CIS2RHJS.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-UMdmhHu2.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-BnYJhD27.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-CAF0vJDd.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-BUNmGMP1.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-DQPw2Hwd.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-Cm6aH8_k.woff +0 -0
- zenml/zen_server/dashboard/assets/{kubernetes-BjbR6D-1.js → kubernetes--g7r02Zu.js} +1 -1
- zenml/zen_server/dashboard/assets/{layout-Dru15_XR.js → layout-DCSYN7-C.js} +1 -1
- zenml/zen_server/dashboard/assets/{link-external-BT2L8hAQ.js → link-external-CBEk6kEG.js} +1 -1
- zenml/zen_server/dashboard/assets/{login-mutation-ax6iL2Mb.js → login-mutation-DTcAFP1l.js} +1 -1
- zenml/zen_server/dashboard/assets/{logs-GiDJXbLS.js → logs-D5bdJGur.js} +1 -1
- zenml/zen_server/dashboard/assets/not-found-Cc-JkRH2.js +1 -0
- zenml/zen_server/dashboard/assets/{package-DYKZ5jKW.js → package-Cs35Szwh.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-HkVBdZl6.js → page-9yplj5JT.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-uORspyRu.js → page-B-y2XKIc.js} +1 -1
- zenml/zen_server/dashboard/assets/page-BBpOxVcY.js +1 -0
- zenml/zen_server/dashboard/assets/{page-BDg1F-Ug.js → page-BQQKaabe.js} +2 -2
- zenml/zen_server/dashboard/assets/page-BRInM1Lg.js +1 -0
- zenml/zen_server/dashboard/assets/{page-CvKnNK1S.js → page-BjjlMk7s.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-BukXK1Aa.js → page-Bvd7YH2A.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DcTjHmYZ.js → page-C0N5q3l7.js} +1 -1
- zenml/zen_server/dashboard/assets/page-CT3Nep8W.js +1 -0
- zenml/zen_server/dashboard/assets/{page-DuqYMYmH.js → page-C_f47pBf.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DRfcRK1w.js → page-ClUVkl-O.js} +1 -1
- zenml/zen_server/dashboard/assets/page-Cmv8C_yM.js +3 -0
- zenml/zen_server/dashboard/assets/{page-p0BhSAWx.js → page-CyN2bdWG.js} +1 -1
- zenml/zen_server/dashboard/assets/page-CzzXH4fs.js +1 -0
- zenml/zen_server/dashboard/assets/{page-6mfzecin.js → page-DH_Z7iW1.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-8kYmrh0B.js → page-DIOXwhiD.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-BXarY9K2.js → page-DLixvR-7.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DTlGjgnG.js +1 -0
- zenml/zen_server/dashboard/assets/page-Dbpl86h0.js +1 -0
- zenml/zen_server/dashboard/assets/{page-MAXyfXBq.js → page-Ddgy6kDS.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DtCAfBLy.js +9 -0
- zenml/zen_server/dashboard/assets/{page-CKHNAq7z.js → page-Dx16z7nA.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DMSLXKGT.js → page-DzpVUZ8f.js} +1 -1
- zenml/zen_server/dashboard/assets/page-McUyYbo1.js +1 -0
- zenml/zen_server/dashboard/assets/{page-miU2rhYG.js → page-N4qoPHKb.js} +1 -1
- zenml/zen_server/dashboard/assets/page-T1P3RyAR.js +1 -0
- zenml/zen_server/dashboard/assets/{page-3qPX9WYH.js → page-bKaULTGG.js} +1 -1
- zenml/zen_server/dashboard/assets/page-sbXUJy9t.js +1 -0
- zenml/zen_server/dashboard/assets/{persist-CfJMar_k.js → persist-CP0JmYZ4.js} +1 -1
- zenml/zen_server/dashboard/assets/{persist-BxIR2XZs.js → persist-DNb5cdrU.js} +1 -1
- zenml/zen_server/dashboard/assets/{plus-Bc8eLSDM.js → plus-C9IxgN2M.js} +1 -1
- zenml/zen_server/dashboard/assets/{refresh-hfgWPeto.js → refresh-BVu22P_C.js} +1 -1
- zenml/zen_server/dashboard/assets/{rocket-SESCGQXm.js → rocket-CONEmRmB.js} +1 -1
- zenml/zen_server/dashboard/assets/{sharedSchema-vub0rii3.js → sharedSchema-TMLu-nYQ.js} +1 -1
- zenml/zen_server/dashboard/assets/stack-detail-query-xmYxSsUY.js +1 -0
- zenml/zen_server/dashboard/assets/{tick-circle-m-hJG8i9.js → tick-circle-CM1ZScbQ.js} +1 -1
- zenml/zen_server/dashboard/assets/{trash-DUWZWzse.js → trash-DkJHMOg7.js} +1 -1
- zenml/zen_server/dashboard/assets/{update-server-settings-mutation-FGVP7X2U.js → update-server-settings-mutation-DsU8cNVl.js} +1 -1
- zenml/zen_server/dashboard/assets/{url-CbAPzsmT.js → url-D5le3J4q.js} +1 -1
- zenml/zen_server/dashboard/assets/zod-D89GC_vc.js +1 -0
- zenml/zen_server/dashboard/index.html +7 -7
- zenml/zen_server/deploy/__init__.py +7 -16
- zenml/zen_server/deploy/base_provider.py +46 -73
- zenml/zen_server/deploy/{local → daemon}/__init__.py +3 -3
- zenml/zen_server/deploy/{local/local_provider.py → daemon/daemon_provider.py} +44 -63
- zenml/zen_server/deploy/{local/local_zen_server.py → daemon/daemon_zen_server.py} +50 -28
- zenml/zen_server/deploy/deployer.py +90 -171
- zenml/zen_server/deploy/deployment.py +20 -12
- zenml/zen_server/deploy/docker/docker_provider.py +9 -28
- zenml/zen_server/deploy/docker/docker_zen_server.py +19 -9
- zenml/zen_server/deploy/helm/Chart.yaml +1 -1
- zenml/zen_server/deploy/helm/README.md +2 -2
- zenml/zen_server/exceptions.py +11 -0
- zenml/zen_server/feature_gate/zenml_cloud_feature_gate.py +1 -1
- zenml/zen_server/jwt.py +9 -9
- zenml/zen_server/routers/artifact_version_endpoints.py +1 -1
- zenml/zen_server/routers/auth_endpoints.py +30 -8
- zenml/zen_server/routers/runs_endpoints.py +0 -28
- zenml/zen_server/routers/stack_components_endpoints.py +1 -1
- zenml/zen_server/routers/workspaces_endpoints.py +1 -1
- zenml/zen_server/template_execution/runner_entrypoint_configuration.py +7 -4
- zenml/zen_server/template_execution/utils.py +8 -63
- zenml/zen_server/utils.py +67 -69
- zenml/zen_server/zen_server_api.py +107 -17
- zenml/zen_stores/base_zen_store.py +4 -51
- zenml/zen_stores/migrations/versions/0.67.0_release.py +23 -0
- zenml/zen_stores/migrations/versions/0.68.0_release.py +23 -0
- zenml/zen_stores/migrations/versions/0.68.1_release.py +23 -0
- zenml/zen_stores/migrations/versions/1d8f30c54477_migrate_to_new_.py +124 -0
- zenml/zen_stores/migrations/versions/c22561cbb3a9_add_artifact_unique_constraints.py +86 -0
- zenml/zen_stores/rest_zen_store.py +325 -147
- zenml/zen_stores/schemas/api_key_schemas.py +9 -4
- zenml/zen_stores/schemas/artifact_schemas.py +21 -2
- zenml/zen_stores/schemas/artifact_visualization_schemas.py +1 -1
- zenml/zen_stores/schemas/component_schemas.py +49 -6
- zenml/zen_stores/schemas/device_schemas.py +9 -4
- zenml/zen_stores/schemas/flavor_schemas.py +1 -1
- zenml/zen_stores/schemas/model_schemas.py +1 -1
- zenml/zen_stores/schemas/pipeline_run_schemas.py +12 -4
- zenml/zen_stores/schemas/service_schemas.py +1 -1
- zenml/zen_stores/schemas/step_run_schemas.py +3 -3
- zenml/zen_stores/schemas/trigger_schemas.py +1 -1
- zenml/zen_stores/sql_zen_store.py +422 -145
- zenml/zen_stores/template_utils.py +3 -1
- {zenml_nightly-0.66.0.dev20240928.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/METADATA +20 -18
- {zenml_nightly-0.66.0.dev20240928.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/RECORD +343 -505
- {zenml_nightly-0.66.0.dev20240928.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/WHEEL +1 -1
- zenml/api.py +0 -60
- zenml/cli/stack_recipes.py +0 -469
- zenml/lineage_graph/__init__.py +0 -34
- zenml/lineage_graph/lineage_graph.py +0 -244
- zenml/lineage_graph/node/__init__.py +0 -32
- zenml/lineage_graph/node/artifact_node.py +0 -51
- zenml/lineage_graph/node/step_node.py +0 -41
- zenml/model/model_version.py +0 -38
- zenml/new/pipelines/code_archive.py +0 -157
- zenml/new/pipelines/pipeline_decorator.py +0 -118
- zenml/new/steps/step_decorator.py +0 -176
- zenml/pipelines/base_pipeline.py +0 -273
- zenml/post_execution/__init__.py +0 -30
- zenml/post_execution/pipeline.py +0 -55
- zenml/post_execution/pipeline_run.py +0 -55
- zenml/services/terraform/__init__.py +0 -14
- zenml/services/terraform/terraform_service.py +0 -441
- zenml/steps/external_artifact.py +0 -26
- zenml/steps/step_environment.py +0 -108
- zenml/steps/step_output.py +0 -36
- zenml/utils/mlstacks_utils.py +0 -635
- zenml/utils/terraform_utils.py +0 -43
- zenml/zen_server/dashboard/assets/@radix-DnFH_oo1.js +0 -85
- zenml/zen_server/dashboard/assets/@react-router-APVeuk-U.js +0 -29
- zenml/zen_server/dashboard/assets/@reactflow-ytavUpwh.js +0 -17
- zenml/zen_server/dashboard/assets/@tanstack-QbMbTrh5.js +0 -22
- zenml/zen_server/dashboard/assets/ComponentBadge-gKR1OIwG.js +0 -1
- zenml/zen_server/dashboard/assets/ExecutionStatus-D6r6aK8J.js +0 -1
- zenml/zen_server/dashboard/assets/MarkdownVisualization-DS05sfBm.js +0 -14
- zenml/zen_server/dashboard/assets/SearchField-BzmfxS0L.js +0 -1
- zenml/zen_server/dashboard/assets/all-pipeline-runs-query-BA3R2Sey.js +0 -1
- zenml/zen_server/dashboard/assets/delete-run-CP0pcJ3U.js +0 -1
- zenml/zen_server/dashboard/assets/index-BhJ6ZJxv.css +0 -1
- zenml/zen_server/dashboard/assets/index-Ci0nJ8EZ.js +0 -55
- zenml/zen_server/dashboard/assets/index.esm-BE1uqCX5.js +0 -1
- zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-Df6ckaLK.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-JrS_4yms.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-BRrLR67x.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-DskEQOpE.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-DDpWG8g5.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-iz1--dBq.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-CzG7Kr3z.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-tyfMZHQw.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-DOnSzjnx.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-Xebo2OyJ.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-DpA2xaRd.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-KAwcVx6H.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-400-normal-DQXyrmoy.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-400-normal-DvIPHDQ7.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-500-normal-BjpBGs91.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-500-normal-CmOavsDc.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-600-normal-B-l8Lzzd.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-600-normal-BLZsI-P3.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-CIdlr5YK.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-_Rr29XE2.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-2pdUafRD.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-Dtavx3qw.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-BmtRFZgT.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-CkBLDEl_.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-400-normal-BT1H-PT_.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-400-normal-Cdi8t5Mu.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-500-normal-D4I8BKCx.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-500-normal-kWhwEdDH.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-600-normal-B2Ssfs8e.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-600-normal-Dbvh0wvx.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-8tIzm-yw.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-D3W-OpO-.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-B9u8Q_zH.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-SuUkSNTU.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-Dg0Bk0Yr.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-ao35dkSb.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-Cnt0N5Vm.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-DIOGfGLL.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-0i6yoQMg.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-5IkPJ6Nk.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-BQ_dbMbg.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-DjnxGF-L.woff2 +0 -0
- zenml/zen_server/dashboard/assets/not-found-DbjllLY_.js +0 -1
- zenml/zen_server/dashboard/assets/page-B1n7_W7z.js +0 -1
- zenml/zen_server/dashboard/assets/page-BZZhLo2u.js +0 -1
- zenml/zen_server/dashboard/assets/page-Bbf_oBjn.js +0 -1
- zenml/zen_server/dashboard/assets/page-BjjuBvZG.js +0 -9
- zenml/zen_server/dashboard/assets/page-CHaQkFK5.js +0 -1
- zenml/zen_server/dashboard/assets/page-CS0SYFK8.js +0 -1
- zenml/zen_server/dashboard/assets/page-DGM1CbYT.js +0 -2
- zenml/zen_server/dashboard/assets/page-DOmIZ2ra.js +0 -1
- zenml/zen_server/dashboard/assets/page-DYVmJ9_w.js +0 -3
- zenml/zen_server/dashboard/assets/page-Dwow2doB.js +0 -1
- zenml/zen_server/dashboard/assets/stack-detail-query-DQcyzG-2.js +0 -1
- zenml/zen_server/dashboard/assets/zod-uFd1wBcd.js +0 -1
- zenml/zen_server/dashboard_legacy/_redirects +0 -1
- zenml/zen_server/dashboard_legacy/asset-manifest.json +0 -131
- zenml/zen_server/dashboard_legacy/favicon.ico +0 -0
- zenml/zen_server/dashboard_legacy/index.html +0 -1
- zenml/zen_server/dashboard_legacy/manifest.json +0 -25
- zenml/zen_server/dashboard_legacy/precache-manifest.6d320abb70db612019dda6c4948e7a90.js +0 -462
- zenml/zen_server/dashboard_legacy/robots.txt +0 -2
- zenml/zen_server/dashboard_legacy/service-worker.js +0 -39
- zenml/zen_server/dashboard_legacy/static/css/2.5b37d44a.chunk.css +0 -16
- zenml/zen_server/dashboard_legacy/static/css/2.5b37d44a.chunk.css.map +0 -1
- zenml/zen_server/dashboard_legacy/static/css/main.e79dff04.chunk.css +0 -2
- zenml/zen_server/dashboard_legacy/static/css/main.e79dff04.chunk.css.map +0 -1
- zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js +0 -3
- zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js.LICENSE.txt +0 -95
- zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js.map +0 -1
- zenml/zen_server/dashboard_legacy/static/js/main.fa9299d5.chunk.js +0 -2
- zenml/zen_server/dashboard_legacy/static/js/main.fa9299d5.chunk.js.map +0 -1
- zenml/zen_server/dashboard_legacy/static/js/runtime-main.bfca2edd.js +0 -2
- zenml/zen_server/dashboard_legacy/static/js/runtime-main.bfca2edd.js.map +0 -1
- zenml/zen_server/dashboard_legacy/static/media/AlertTriangle.28aee535.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/ArrowSquareOut.abfb9bc7.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Back.86c23a22.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/BookOpen.5cb101ff.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/BoundingBox.1eb98717.svg +0 -10
- zenml/zen_server/dashboard_legacy/static/media/Burger.9b1c67d7.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Cached.2381fb8d.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Calendar.356e11c7.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ChartBarHorizontal.0247447b.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/ChartLine.0d79e18d.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/ChatDots.2e1c9211.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Check.dad6beb2.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/CheckCircleFilled.c19566d0.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Checkbox.af50e31e.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ChevronDown.f860ce32.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ChevronDownLight.6642d756.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ChevronLeft.f6edfcdb.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/CircleCheck.f98fd6ca.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Clock.ffc9de95.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Close.74e9efbc.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/CloseWithBorder.6960930a.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/CloseWithoutBorder.cd6f71df.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/CloudArrowUp.0aecb235.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Code.ef0f33b5.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Config.0be63f8a.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Connector.9fd46ef1.svg +0 -10
- zenml/zen_server/dashboard_legacy/static/media/Copy.36e2112a.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Dashboard.d05787e0.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Data.b1c3b5f8.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Delete.3c361b28.svg +0 -8
- zenml/zen_server/dashboard_legacy/static/media/Docs.7541d478.svg +0 -7
- zenml/zen_server/dashboard_legacy/static/media/Download.fba04d87.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Edit.490eb294.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/EmptyRightArrow.23749d01.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Example.6396cd37.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Extension.1394cd4a.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Eye.d9e4ee62.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Failed.0213c1a0.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/FileText.1f15bacd.svg +0 -7
- zenml/zen_server/dashboard_legacy/static/media/Filter.ab6b9c0d.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Folders.12b29887.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/FunnelFill.6df4c143.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/GitCommit.7dd9c2aa.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/GitHub_Logo.cefc2023.png +0 -0
- zenml/zen_server/dashboard_legacy/static/media/Graph.2c63a892.svg +0 -11
- zenml/zen_server/dashboard_legacy/static/media/History.08329240.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Home.0843b0d5.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ImageBuilder.ea762d9c.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/InProgress.304a0edc.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Info.9fe10c5c.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/KeyboardReturn.491afbe3.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Link.72bbb55d.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Lock.30f5e1fe.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Lock2.a769ea52.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/LockKey.92f21621.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Logs.8bf4d005.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/MinusCircle.4188f418.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/ModelRegistry.f0de050a.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/MultiUser.a2ba7c67.svg +0 -10
- zenml/zen_server/dashboard_legacy/static/media/PaginationFirst.92628634.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/PaginationLast.00d3c732.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/PaginationNext.86158845.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/PaginationPrev.60c18a88.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Pen.f2d831d4.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/PhotoCamera.179d6d4c.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Pipeline.30d298b0.svg +0 -7
- zenml/zen_server/dashboard_legacy/static/media/Plus.5aa1c16b.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/PlusCircle.92d860dd.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Repositories.71a36b8c.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/RightArrow.f30d3871.svg +0 -29
- zenml/zen_server/dashboard_legacy/static/media/Rocket.63bf7b9d.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/RocketLaunch.1bff2b59.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Rubik-Medium.c87313aa.ttf +0 -0
- zenml/zen_server/dashboard_legacy/static/media/Rubik-Regular.b3d0902b.ttf +0 -0
- zenml/zen_server/dashboard_legacy/static/media/Run.daec4fb2.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Search.d1afcce5.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Settings.59ca73ae.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Share2.46c3ff66.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/SignOut.6aa718c5.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/SimplePlus.5cf7ec20.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/SingleUser.bef3a095.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/SourceCodePro-Regular.b484b32f.ttf +0 -0
- zenml/zen_server/dashboard_legacy/static/media/Stack.19b604ac.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/StackComponent.b1ba90b5.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Star.f0c25022.svg +0 -9
- zenml/zen_server/dashboard_legacy/static/media/StarOutline.94ca8cd9.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Storefront.4b4796fe.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Stream.543e3039.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/SupportAgent.510ddf1f.svg +0 -8
- zenml/zen_server/dashboard_legacy/static/media/Table.77033750.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Tool.d5785486.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/UserPlus.741a99d7.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Verified.0625b2a0.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/addNew.4fb6c939.svg +0 -8
- zenml/zen_server/dashboard_legacy/static/media/arrowClose.cbd53f3f.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/arrowOpen.6ceef0af.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/check_small.30bc0138.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/circleArrowSideClose.98d6013e.svg +0 -18
- zenml/zen_server/dashboard_legacy/static/media/circleArrowSideOpen.63653df6.svg +0 -18
- zenml/zen_server/dashboard_legacy/static/media/image.104fd14b.png +0 -0
- zenml/zen_server/dashboard_legacy/static/media/imageAddIcon.e83004a9.svg +0 -7
- zenml/zen_server/dashboard_legacy/static/media/logo.93333e5c.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/logo_small.4204397d.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/logo_white.d4b4414e.svg +0 -20
- zenml/zen_server/dashboard_legacy/static/media/notConnected.5e2c8ea7.svg +0 -8
- zenml/zen_server/dashboard_legacy/static/media/plugin-fallback.72c294e6.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/share.bcd998b0.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/stars.08a9b19a.svg +0 -8
- zenml/zen_server/deploy/terraform/__init__.py +0 -41
- zenml/zen_server/deploy/terraform/providers/aws_provider.py +0 -61
- zenml/zen_server/deploy/terraform/providers/azure_provider.py +0 -59
- zenml/zen_server/deploy/terraform/providers/gcp_provider.py +0 -59
- zenml/zen_server/deploy/terraform/providers/terraform_provider.py +0 -331
- zenml/zen_server/deploy/terraform/recipes/aws/.gitignore +0 -8
- zenml/zen_server/deploy/terraform/recipes/aws/helm.tf +0 -20
- zenml/zen_server/deploy/terraform/recipes/aws/ingress.tf +0 -30
- zenml/zen_server/deploy/terraform/recipes/aws/outputs.tf +0 -7
- zenml/zen_server/deploy/terraform/recipes/aws/printf.cmd +0 -2
- zenml/zen_server/deploy/terraform/recipes/aws/sql.tf +0 -62
- zenml/zen_server/deploy/terraform/recipes/aws/terraform.tf +0 -44
- zenml/zen_server/deploy/terraform/recipes/aws/variables.tf +0 -167
- zenml/zen_server/deploy/terraform/recipes/aws/vpc.tf +0 -47
- zenml/zen_server/deploy/terraform/recipes/aws/zen_server.tf +0 -103
- zenml/zen_server/deploy/terraform/recipes/azure/.gitignore +0 -8
- zenml/zen_server/deploy/terraform/recipes/azure/helm.tf +0 -20
- zenml/zen_server/deploy/terraform/recipes/azure/ingress.tf +0 -30
- zenml/zen_server/deploy/terraform/recipes/azure/key_vault.tf +0 -73
- zenml/zen_server/deploy/terraform/recipes/azure/outputs.tf +0 -7
- zenml/zen_server/deploy/terraform/recipes/azure/printf.cmd +0 -2
- zenml/zen_server/deploy/terraform/recipes/azure/rg.tf +0 -36
- zenml/zen_server/deploy/terraform/recipes/azure/sql.tf +0 -65
- zenml/zen_server/deploy/terraform/recipes/azure/terraform.tf +0 -52
- zenml/zen_server/deploy/terraform/recipes/azure/variables.tf +0 -176
- zenml/zen_server/deploy/terraform/recipes/azure/zen_server.tf +0 -103
- zenml/zen_server/deploy/terraform/recipes/gcp/.gitignore +0 -8
- zenml/zen_server/deploy/terraform/recipes/gcp/helm.tf +0 -20
- zenml/zen_server/deploy/terraform/recipes/gcp/ingress.tf +0 -30
- zenml/zen_server/deploy/terraform/recipes/gcp/outputs.tf +0 -7
- zenml/zen_server/deploy/terraform/recipes/gcp/printf.cmd +0 -2
- zenml/zen_server/deploy/terraform/recipes/gcp/sql.tf +0 -64
- zenml/zen_server/deploy/terraform/recipes/gcp/terraform.tf +0 -44
- zenml/zen_server/deploy/terraform/recipes/gcp/variables.tf +0 -171
- zenml/zen_server/deploy/terraform/recipes/gcp/zen_server.tf +0 -114
- zenml/zen_server/deploy/terraform/terraform_zen_server.py +0 -246
- /zenml/{new/pipelines → pipelines}/build_utils.py +0 -0
- /zenml/{new/steps → steps}/decorated_step.py +0 -0
- {zenml_nightly-0.66.0.dev20240928.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.66.0.dev20240928.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/entry_points.txt +0 -0
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
|
@@ -228,22 +228,28 @@ And finally, here are some other examples and use cases for inspiration:
|
|
228
228
|
5. [LLMops](https://github.com/zenml-io/zenml-projects/tree/main/llm-complete-guide): Complete guide to do LLM with ZenML
|
229
229
|
|
230
230
|
|
231
|
+
## 📚 Learn from Books
|
232
|
+
|
233
|
+
<div align="center">
|
234
|
+
<a href="https://www.amazon.com/LLM-Engineers-Handbook-engineering-production/dp/1836200072">
|
235
|
+
<img src="docs/book/.gitbook/assets/llm_engineering_handbook_cover.jpg" alt="LLM Engineer's Handbook Cover" width="200"/></img>
|
236
|
+
</a>
|
237
|
+
<a href="https://www.amazon.com/-/en/Andrew-McMahon/dp/1837631964">
|
238
|
+
<img src="docs/book/.gitbook/assets/ml_engineering_with_python.jpg" alt="Machine Learning Engineering with Python Cover" width="200"/></img>
|
239
|
+
</a>
|
240
|
+
</br></br>
|
241
|
+
</div>
|
242
|
+
|
243
|
+
ZenML is featured in these comprehensive guides to modern MLOps and LLM engineering. Learn how to build production-ready machine learning systems with real-world examples and best practices.
|
244
|
+
|
231
245
|
## 🔋 Deploy ZenML
|
232
246
|
|
233
247
|
For full functionality ZenML should be deployed on the cloud to
|
234
248
|
enable collaborative features as the central MLOps interface for teams.
|
235
249
|
|
236
|
-
|
250
|
+
Read more about various deployment options [here](https://docs.zenml.io/getting-started/deploying-zenml).
|
237
251
|
|
238
|
-
|
239
|
-
offers a SaaS version which comes with a control plane to create and manage multiple ZenML servers.
|
240
|
-
These servers are managed and maintained by ZenML’s dedicated team, alleviating
|
241
|
-
the burden of server management from your end. They also come with additional features like RBAC, a Model Control Plane
|
242
|
-
and [much more](https://zenml-io.gitbook.io/zenml-documentation/getting-started/zenml-pro.
|
243
|
-
- **Self-hosted deployment**: Alternatively, you have the flexibility to [deploy
|
244
|
-
ZenML on your own self-hosted environment](https://docs.zenml.io/getting-started/deploying-zenml#deploying-a-zenml-server).
|
245
|
-
This can be achieved through various methods, including using our CLI, Docker,
|
246
|
-
Helm, or HuggingFace Spaces.
|
252
|
+
Or, sign up for [ZenML Pro to get a fully managed server on a free trial](https://cloud.zenml.io/?utm_source=readme&utm_medium=referral_link&utm_campaign=cloud_promotion&utm_content=signup_link).
|
247
253
|
|
248
254
|
## Use ZenML with VS Code
|
249
255
|
|
@@ -327,7 +333,7 @@ the Apache License Version 2.0.
|
|
327
333
|
<a href="https://github.com/zenml-io/zenml-projects">Projects Showcase</a>
|
328
334
|
<br />
|
329
335
|
<br />
|
330
|
-
🎉 Version 0.
|
336
|
+
🎉 Version 0.68.1 is out. Check out the release notes
|
331
337
|
<a href="https://github.com/zenml-io/zenml/releases">here</a>.
|
332
338
|
<br />
|
333
339
|
🖥️ 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,241 @@
|
|
1
1
|
<!-- markdown-link-check-disable -->
|
2
2
|
|
3
|
+
# 0.68.1
|
4
|
+
|
5
|
+
Fixes an issue with some partially cached pipelines running on remote orchestrators.
|
6
|
+
|
7
|
+
## What's Changed
|
8
|
+
* Remove unavailable upstream steps during cache precomputation by @schustmi in https://github.com/zenml-io/zenml/pull/3146
|
9
|
+
|
10
|
+
**Full Changelog**: https://github.com/zenml-io/zenml/compare/0.68.0...0.68.1
|
11
|
+
|
12
|
+
# 0.68.0
|
13
|
+
|
14
|
+
## Highlights
|
15
|
+
|
16
|
+
- **Stack Components on the Dashboard:** We're bringing back stack components.
|
17
|
+
With this release you will get access to the list of your stack components on
|
18
|
+
the ZenML dashboard. More functionality is going to follow in the next releases.
|
19
|
+
- **Client-Side Caching:** Implemented client-side computation for cached steps,
|
20
|
+
significantly reducing time and costs associated with remote orchestrator
|
21
|
+
spin-up.
|
22
|
+
- **Streamlined Onboarding Process:** Unified the starter and production setup
|
23
|
+
into a single sequential flow, providing a more intuitive user experience.
|
24
|
+
- **BentoML Integration:** Updated to version 1.3.5 with enhanced
|
25
|
+
containerization support.
|
26
|
+
- **Artifact Management:** Introduced `register_artifact` function enabling
|
27
|
+
direct linking of existing data in the artifact store, particularly useful
|
28
|
+
for tools like PyTorch-Lightning that manage their own checkpoints.
|
29
|
+
- **Enhanced Error Handling:** Added Error Boundary to visualization components
|
30
|
+
for improved reliability and user experience.
|
31
|
+
|
32
|
+
## Additional Features and Improvements
|
33
|
+
|
34
|
+
- Added multiple access points for deleting pipeline runs
|
35
|
+
- Improved pipeline detail view functionality
|
36
|
+
- Improved service account handling for Kaniko image builder
|
37
|
+
|
38
|
+
## Breaking Changes and Deprecations
|
39
|
+
|
40
|
+
- Discontinued Python 3.8 support
|
41
|
+
- Removed legacy pipeline and step interface
|
42
|
+
- Removed legacy post execution workflow
|
43
|
+
- Removed legacy dashboard option
|
44
|
+
- Removed `zenml stack up/down` CLI commands
|
45
|
+
- Removed `zenml deploy` and `zenml <stack-component> deploy`
|
46
|
+
- Removed `StepEnvironment` class
|
47
|
+
- Removed `ArtifactConfig` class for model version specification
|
48
|
+
- Removed `ExternalArtifact` class
|
49
|
+
- Deprecated `Client.list_runs` in favor of `Client.list_pipeline_runs`
|
50
|
+
- Deprecated `ArtifactVersionResponse.read` in favor of `ArtifactVersionResponse.load`
|
51
|
+
|
52
|
+
## Documentation Updates
|
53
|
+
|
54
|
+
Added new guides for the following topics:
|
55
|
+
|
56
|
+
- Kubernetes per-pod configuration
|
57
|
+
- Factory generation of artifact names
|
58
|
+
- Common stacks best practices
|
59
|
+
- Azure 1-click dashboard deployment
|
60
|
+
- ZenML server upgrade best practices
|
61
|
+
- Custom Dataset classes and Materializers
|
62
|
+
- Comprehensive ZenML Pro documentation
|
63
|
+
- Image building optimization during pipeline runs
|
64
|
+
- Enhanced BentoML integration documentation
|
65
|
+
|
66
|
+
## What's Changed
|
67
|
+
* Release 0.67.0 migration testing by @bcdurak in https://github.com/zenml-io/zenml/pull/3050
|
68
|
+
* Prevent too large requests by @avishniakov in https://github.com/zenml-io/zenml/pull/3048
|
69
|
+
* Fix Neptune linting after 1.12.0 release by @avishniakov in https://github.com/zenml-io/zenml/pull/3055
|
70
|
+
* Fix Lightning Orchestrator (remove -y from pip install) by @wjayesh in https://github.com/zenml-io/zenml/pull/3058
|
71
|
+
* Fix artifact pruning endpoint path by @schustmi in https://github.com/zenml-io/zenml/pull/3052
|
72
|
+
* Update python versioning in docs by @avishniakov in https://github.com/zenml-io/zenml/pull/3059
|
73
|
+
* Fix infinite loop while fetching artifact store in logs storage class by @avishniakov in https://github.com/zenml-io/zenml/pull/3061
|
74
|
+
* Make sync a setting for sagemaker/azureml orchestrator by @schustmi in https://github.com/zenml-io/zenml/pull/3062
|
75
|
+
* Remove some deprecated features by @schustmi in https://github.com/zenml-io/zenml/pull/2926
|
76
|
+
* Fix MySQL warning when filtering pipelines by latest run by @schustmi in https://github.com/zenml-io/zenml/pull/3051
|
77
|
+
* Remove more deprecated stuff by @schustmi in https://github.com/zenml-io/zenml/pull/3063
|
78
|
+
* Remove log versions from versioned buckets in S3 by @avishniakov in https://github.com/zenml-io/zenml/pull/3060
|
79
|
+
* add docs on k8s per pod settings by @wjayesh in https://github.com/zenml-io/zenml/pull/3066
|
80
|
+
* Remove Python 3.8 support by @strickvl in https://github.com/zenml-io/zenml/pull/3034
|
81
|
+
* `register_artifact ` function by @avishniakov in https://github.com/zenml-io/zenml/pull/3053
|
82
|
+
* Fix bad link in docs by @avishniakov in https://github.com/zenml-io/zenml/pull/3069
|
83
|
+
* Fix model linkage for the lazy loading scenarios by @avishniakov in https://github.com/zenml-io/zenml/pull/3054
|
84
|
+
* Updating template versions after the Python 3.8 changes by @bcdurak in https://github.com/zenml-io/zenml/pull/3070
|
85
|
+
* Add UUID materializer by @htahir1 in https://github.com/zenml-io/zenml/pull/3073
|
86
|
+
* Fix pipeline and model URLs for ZenML Pro on-prem deployments by @stefannica in https://github.com/zenml-io/zenml/pull/3083
|
87
|
+
* Update bentoml integration to 1.3.5 and add containerization by @wjayesh in https://github.com/zenml-io/zenml/pull/3045
|
88
|
+
* Fix mlflow linting by @schustmi in https://github.com/zenml-io/zenml/pull/3085
|
89
|
+
* Add docs for factory generation of artifact names by @strickvl in https://github.com/zenml-io/zenml/pull/3084
|
90
|
+
* Remove unnecessary metadata fields in UUID materializer test by @htahir1 in https://github.com/zenml-io/zenml/pull/3088
|
91
|
+
* Client-side computation of cached steps by @schustmi in https://github.com/zenml-io/zenml/pull/3068
|
92
|
+
* Fix Kaniko image builder service account passing by @schustmi in https://github.com/zenml-io/zenml/pull/3081
|
93
|
+
* Bugfix in GitLab Code Repository integration by @4gt-104 in https://github.com/zenml-io/zenml/pull/3076
|
94
|
+
* Add docs on common stacks best practices by @strickvl in https://github.com/zenml-io/zenml/pull/3092
|
95
|
+
* [docs] Update stacks page and add azure 1-click from dashboard docs by @wjayesh in https://github.com/zenml-io/zenml/pull/3082
|
96
|
+
* Local development how-to section by @strickvl in https://github.com/zenml-io/zenml/pull/3090
|
97
|
+
* [docs] best practices for upgrading zenml server by @wjayesh in https://github.com/zenml-io/zenml/pull/3087
|
98
|
+
* Fix S3 ArtifactStore auth issue by @avishniakov in https://github.com/zenml-io/zenml/pull/3086
|
99
|
+
* Reduce migration testing runtime by @avishniakov in https://github.com/zenml-io/zenml/pull/3078
|
100
|
+
* [docs] Dedicated docs on how to skip building an image on pipeline run by @wjayesh in https://github.com/zenml-io/zenml/pull/3079
|
101
|
+
* Fix filtering by tag for pipeline runs by @schustmi in https://github.com/zenml-io/zenml/pull/3097
|
102
|
+
* Remove deprecated features: `zenml deploy` and `zenml <stack-component> deploy` by @stefannica in https://github.com/zenml-io/zenml/pull/3089
|
103
|
+
* Do not tag model via `Model` class on creation by @avishniakov in https://github.com/zenml-io/zenml/pull/3098
|
104
|
+
* Sagemaker add pipeline tags by @htahir1 in https://github.com/zenml-io/zenml/pull/3080
|
105
|
+
* [docs] Add custom Dataset classes and Materializers in ZenML by @htahir1 in https://github.com/zenml-io/zenml/pull/3091
|
106
|
+
* Delete Scarf related scripts and workflow files by @htahir1 in https://github.com/zenml-io/zenml/pull/3103
|
107
|
+
* Add more detailed docs for ZenML Pro by @wjayesh in https://github.com/zenml-io/zenml/pull/3065
|
108
|
+
* Add missing code hash filter in client method by @schustmi in https://github.com/zenml-io/zenml/pull/3094
|
109
|
+
* Remove lineage graph and legacy dashboard support by @schustmi in https://github.com/zenml-io/zenml/pull/3064
|
110
|
+
* Add unittest to cover gitlab CR regex. by @4gt-104 in https://github.com/zenml-io/zenml/pull/3102
|
111
|
+
* Automating the release process using Github workflows by @bcdurak in https://github.com/zenml-io/zenml/pull/3101
|
112
|
+
* Bugfix for release automation by @bcdurak in https://github.com/zenml-io/zenml/pull/3107
|
113
|
+
* Bugfix for new version in the release automation by @bcdurak in https://github.com/zenml-io/zenml/pull/3108
|
114
|
+
* using the right parent image name by @bcdurak in https://github.com/zenml-io/zenml/pull/3109
|
115
|
+
* Making the new release automation scripts executable by @bcdurak in https://github.com/zenml-io/zenml/pull/3110
|
116
|
+
* Fixing the env variables for the release automation by @bcdurak in https://github.com/zenml-io/zenml/pull/3111
|
117
|
+
* 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
|
118
|
+
* Fixing the outputs of the first step in the release automation by @bcdurak in https://github.com/zenml-io/zenml/pull/3113
|
119
|
+
* Handling github auth and release notes for release automation by @bcdurak in https://github.com/zenml-io/zenml/pull/3114
|
120
|
+
* Fixing the cloudbuild call for release automation by @bcdurak in https://github.com/zenml-io/zenml/pull/3116
|
121
|
+
* Fixing the update tenant call in the script by @bcdurak in https://github.com/zenml-io/zenml/pull/3118
|
122
|
+
* Release automation with the new redeploy logic by @bcdurak in https://github.com/zenml-io/zenml/pull/3120
|
123
|
+
* Fixing the automation triggers for other branches by @bcdurak in https://github.com/zenml-io/zenml/pull/3125
|
124
|
+
* Update link for `llm-complete-guide` repository.- Updated link to poi… by @htahir1 in https://github.com/zenml-io/zenml/pull/3128
|
125
|
+
* Fixing the migration testing for the release branches by @bcdurak in https://github.com/zenml-io/zenml/pull/3127
|
126
|
+
* Update pipeline deletion docs by @strickvl in https://github.com/zenml-io/zenml/pull/3123
|
127
|
+
* Disabling the cache for the quickstart tests by @bcdurak in https://github.com/zenml-io/zenml/pull/3133
|
128
|
+
* Update Argilla integration for v2.x SDK by @sdiazlor in https://github.com/zenml-io/zenml/pull/2915
|
129
|
+
* Using pip instead of `gh` CLI in the migration tests by @bcdurak in https://github.com/zenml-io/zenml/pull/3136
|
130
|
+
* Adapting tags to work with older versions of Sagemaker by @bcdurak in https://github.com/zenml-io/zenml/pull/3135
|
131
|
+
* Manual trigger for the `release_finalize` workflow by @bcdurak in https://github.com/zenml-io/zenml/pull/3137
|
132
|
+
* Fixing the prepare trigger for the release automation by @bcdurak in https://github.com/zenml-io/zenml/pull/3138
|
133
|
+
|
134
|
+
## New Contributors
|
135
|
+
* @4gt-104 made their first contribution in https://github.com/zenml-io/zenml/pull/3076
|
136
|
+
* @sdiazlor made their first contribution in https://github.com/zenml-io/zenml/pull/2915
|
137
|
+
|
138
|
+
**Full Changelog**: https://github.com/zenml-io/zenml/compare/0.67.0...0.68.0
|
139
|
+
|
140
|
+
|
141
|
+
# 0.67.0
|
142
|
+
|
143
|
+
## Highlights
|
144
|
+
|
145
|
+
- **Improved Sagemaker Orchestrator:** Now supports warm pools for AWS Sagemaker, enhancing performance and reducing startup times for TrainingJobs.
|
146
|
+
- **New DAG Visualizer:** Shipped major enhancements to the DAG Visualizer for Pipeline Runs:
|
147
|
+
- Preview of the actual DAG before pipeline completion
|
148
|
+
- Visual adjustments for improved clarity
|
149
|
+
- Real-time updates during pipeline execution
|
150
|
+
- **Environment Variable References in Configurations:** Introduced the ability to reference environment variables in both code and configuration files using the syntax ${ENV_VARIABLE_NAME}, increasing flexibility in setups.
|
151
|
+
- **Enhanced UX for Major Cloud Providers:** Displaying direct pipeline/log URL when working with major cloud platforms.
|
152
|
+
- **Skypilot with Kubernetes Support:** Added compatibility for running Skypilot orchestrator on Kubernetes clusters.
|
153
|
+
- **Updated Deepchecks Integration:** The Deepchecks integration has been refreshed with the latest features and improvements.
|
154
|
+
|
155
|
+
|
156
|
+
## Features and Improvements
|
157
|
+
|
158
|
+
- **AWS Integration:**
|
159
|
+
- Added permissions to workflow to enable assuming AWS role.
|
160
|
+
- Fixed expired credentials error when using the docker service connector.
|
161
|
+
- **Error Handling:** Improved error messages for stack components of uninstalled integrations.
|
162
|
+
- **API Key Management:** Added an option to write API keys to a file instead of using the CLI.
|
163
|
+
|
164
|
+
## Pipeline Execution:
|
165
|
+
|
166
|
+
- Implemented fixes for executing steps as single step pipelines.
|
167
|
+
- Added filter option for templatable runs.
|
168
|
+
- Added additional filtering options for pipeline runs.
|
169
|
+
- MLflow Integration: Linked registered models in MLflow with the corresponding MLflow run.
|
170
|
+
- Analytics: Added missing analytics event to improve user insights.
|
171
|
+
|
172
|
+
## Documentation Updates
|
173
|
+
|
174
|
+
- Updated documentation for various integrations including:
|
175
|
+
- Lightning AI orchestrator
|
176
|
+
- Kubeflow
|
177
|
+
- Comet experiment tracker
|
178
|
+
- Neptune
|
179
|
+
- Hugging Face deployer
|
180
|
+
- Weights & Biases (wandb)
|
181
|
+
- Added documentation for run templates.
|
182
|
+
- Fixed incorrect method name in Pigeon docs.
|
183
|
+
- Various small documentation fixes and improvements.
|
184
|
+
|
185
|
+
## Bug Fixes
|
186
|
+
|
187
|
+
- Fixed YAML formatting issues.
|
188
|
+
- Resolved RBAC issues for subpages in response models.
|
189
|
+
- Fixed step output annotation in Discord test.
|
190
|
+
- Addressed MLFlow integration requirements duplication.
|
191
|
+
- Fixed Lightning orchestrator functionality.
|
192
|
+
|
193
|
+
## What's Changed
|
194
|
+
* Error message for stack components of uninstalled integrations by @bcdurak in https://github.com/zenml-io/zenml/pull/2996
|
195
|
+
* Enable migration testing for version 0.66.0 by @schustmi in https://github.com/zenml-io/zenml/pull/2998
|
196
|
+
* Add permissions to workflow to enable assuming AWS role by @schustmi in https://github.com/zenml-io/zenml/pull/2999
|
197
|
+
* Add option to write api key to file instead of CLI by @schustmi in https://github.com/zenml-io/zenml/pull/3001
|
198
|
+
* Fix yaml formatting by @schustmi in https://github.com/zenml-io/zenml/pull/3004
|
199
|
+
* Update ZenML Pro links for consistency.- Update ZenML Pro links for c… by @htahir1 in https://github.com/zenml-io/zenml/pull/3007
|
200
|
+
* Fix incorrect method name in Pigeon docs by @strickvl in https://github.com/zenml-io/zenml/pull/3008
|
201
|
+
* Fixes for executing steps as single step pipelines by @schustmi in https://github.com/zenml-io/zenml/pull/3006
|
202
|
+
* Add filter option for templatable runs by @schustmi in https://github.com/zenml-io/zenml/pull/3000
|
203
|
+
* Add missing analytics event by @schustmi in https://github.com/zenml-io/zenml/pull/3009
|
204
|
+
* Fix expired credentials error when using the docker service connector by @schustmi in https://github.com/zenml-io/zenml/pull/3002
|
205
|
+
* Fix Lightning docs by @strickvl in https://github.com/zenml-io/zenml/pull/3013
|
206
|
+
* Remove image builder warning by @htahir1 in https://github.com/zenml-io/zenml/pull/3014
|
207
|
+
* Fixed kubeflow docs by @AlexejPenner in https://github.com/zenml-io/zenml/pull/3018
|
208
|
+
* Update Comet experiment tracker docs by @htahir1 in https://github.com/zenml-io/zenml/pull/3019
|
209
|
+
* Small docs fixes by @strickvl in https://github.com/zenml-io/zenml/pull/3022
|
210
|
+
* Feature/cleanup unused file by @AlexejPenner in https://github.com/zenml-io/zenml/pull/3023
|
211
|
+
* MLFlow integration requirements duplicate fix by @bcdurak in https://github.com/zenml-io/zenml/pull/3011
|
212
|
+
* Fix Neptune docs by @htahir1 in https://github.com/zenml-io/zenml/pull/3026
|
213
|
+
* Fix huggingface deployer docs by @htahir1 in https://github.com/zenml-io/zenml/pull/3024
|
214
|
+
* Fix step output annotation in Discord test by @wjayesh in https://github.com/zenml-io/zenml/pull/3029
|
215
|
+
* Fix RBAC for subpages in response models by @schustmi in https://github.com/zenml-io/zenml/pull/3031
|
216
|
+
* Allow env variable placeholders in configurations by @schustmi in https://github.com/zenml-io/zenml/pull/3003
|
217
|
+
* Leverage warm pools for AWS Sagemaker by @avishniakov in https://github.com/zenml-io/zenml/pull/3027
|
218
|
+
* Updated wandb docs by @htahir1 in https://github.com/zenml-io/zenml/pull/3030
|
219
|
+
* Add hyperlint by @htahir1 in https://github.com/zenml-io/zenml/pull/3035
|
220
|
+
* Bump NLP template by @avishniakov in https://github.com/zenml-io/zenml/pull/3036
|
221
|
+
* Add additional filtering options by @schustmi in https://github.com/zenml-io/zenml/pull/2951
|
222
|
+
* Bump starter template version by @schustmi in https://github.com/zenml-io/zenml/pull/3038
|
223
|
+
* Docs for run templates by @bcdurak in https://github.com/zenml-io/zenml/pull/3028
|
224
|
+
* Update Lightning AI orchestrator documentation by @strickvl in https://github.com/zenml-io/zenml/pull/3016
|
225
|
+
* Add default value for PipelineRun.is_templatable by @schustmi in https://github.com/zenml-io/zenml/pull/3040
|
226
|
+
* Use a generic OAuth2 client credentials flow to login to the Cloud API by @stefannica in https://github.com/zenml-io/zenml/pull/3041
|
227
|
+
* fix lightning orchestrator by @safoinme in https://github.com/zenml-io/zenml/pull/3010
|
228
|
+
* Linking registered models in MLflow with the corresponding MLflow run by @aiakide in https://github.com/zenml-io/zenml/pull/3020
|
229
|
+
* Bugfixing mlflow registry linting issue by @bcdurak in https://github.com/zenml-io/zenml/pull/3043
|
230
|
+
* Enhancing the orchestrator UX for major cloud providers by @bcdurak in https://github.com/zenml-io/zenml/pull/3005
|
231
|
+
* Skypilot with Kubernetes by @safoinme in https://github.com/zenml-io/zenml/pull/3033
|
232
|
+
* Update deepchecks integration by @wjayesh in https://github.com/zenml-io/zenml/pull/2987
|
233
|
+
|
234
|
+
## New Contributors
|
235
|
+
* @aiakide made their first contribution in https://github.com/zenml-io/zenml/pull/3020
|
236
|
+
|
237
|
+
**Full Changelog**: https://github.com/zenml-io/zenml/compare/0.66.0...0.67.0
|
238
|
+
|
3
239
|
# 0.66.0
|
4
240
|
|
5
241
|
## New Features and Improvements
|
zenml/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.68.1.dev20241102
|
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__))
|
@@ -32,25 +31,22 @@ init_logging()
|
|
32
31
|
from zenml.models import * # noqa: F401
|
33
32
|
|
34
33
|
# Define public Python API
|
35
|
-
from zenml.
|
34
|
+
from zenml.zen_server.utils import show_dashboard as show
|
36
35
|
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/context.py
CHANGED
@@ -25,6 +25,7 @@ from uuid import UUID
|
|
25
25
|
|
26
26
|
from zenml import __version__
|
27
27
|
from zenml.analytics.client import default_client
|
28
|
+
from zenml.analytics.utils import is_analytics_disabled_internally
|
28
29
|
from zenml.constants import (
|
29
30
|
ENV_ZENML_SERVER,
|
30
31
|
handle_bool_env_var,
|
@@ -73,14 +74,28 @@ class AnalyticsContext:
|
|
73
74
|
Returns:
|
74
75
|
The analytics context.
|
75
76
|
"""
|
77
|
+
if is_analytics_disabled_internally():
|
78
|
+
self.analytics_opt_in = False
|
79
|
+
return self
|
80
|
+
|
76
81
|
# Fetch the analytics opt-in setting
|
77
82
|
from zenml.config.global_config import GlobalConfiguration
|
78
83
|
|
79
84
|
try:
|
80
85
|
gc = GlobalConfiguration()
|
86
|
+
|
87
|
+
if not gc.is_initialized:
|
88
|
+
# If the global configuration is not initialized, using the
|
89
|
+
# zen store can lead to multiple initialization issues, because
|
90
|
+
# the analytics are triggered during the initialization of the
|
91
|
+
# zen store.
|
92
|
+
return self
|
93
|
+
|
81
94
|
store_info = gc.zen_store.get_store_info()
|
82
95
|
|
83
|
-
|
96
|
+
# For local ZenML servers, we always use the client's analytics
|
97
|
+
# opt-in configuration.
|
98
|
+
if self.in_server and not store_info.is_local():
|
84
99
|
self.analytics_opt_in = store_info.analytics_enabled
|
85
100
|
else:
|
86
101
|
self.analytics_opt_in = gc.analytics_opt_in
|
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"
|
zenml/analytics/utils.py
CHANGED
@@ -14,7 +14,6 @@
|
|
14
14
|
"""Utility functions and classes for ZenML analytics."""
|
15
15
|
|
16
16
|
import json
|
17
|
-
import os
|
18
17
|
from functools import wraps
|
19
18
|
from typing import Any, Callable, Dict, Optional, TypeVar, cast
|
20
19
|
from uuid import UUID
|
@@ -22,13 +21,15 @@ from uuid import UUID
|
|
22
21
|
from zenml.analytics import identify, track
|
23
22
|
from zenml.analytics.enums import AnalyticsEvent
|
24
23
|
from zenml.analytics.models import AnalyticsTrackedModelMixin
|
25
|
-
from zenml.constants import ENV_ZENML_ANALYTICS_OPT_IN
|
26
24
|
from zenml.logger import get_logger
|
27
25
|
|
28
26
|
logger = get_logger(__name__)
|
29
27
|
F = TypeVar("F", bound=Callable[..., Any])
|
30
28
|
|
31
29
|
|
30
|
+
_INTERNAL_DISABLE_ANALYTICS = False
|
31
|
+
|
32
|
+
|
32
33
|
class AnalyticsEncoder(json.JSONEncoder):
|
33
34
|
"""Helper encoder class for JSON serialization."""
|
34
35
|
|
@@ -101,11 +102,13 @@ class analytics_disabler:
|
|
101
102
|
|
102
103
|
def __init__(self) -> None:
|
103
104
|
"""Initialization of the context manager."""
|
104
|
-
self.original_value =
|
105
|
+
self.original_value: Optional[bool] = None
|
105
106
|
|
106
107
|
def __enter__(self) -> None:
|
107
108
|
"""Disable the analytics."""
|
108
|
-
|
109
|
+
global _INTERNAL_DISABLE_ANALYTICS
|
110
|
+
self.original_value = _INTERNAL_DISABLE_ANALYTICS
|
111
|
+
_INTERNAL_DISABLE_ANALYTICS = True
|
109
112
|
|
110
113
|
def __exit__(
|
111
114
|
self,
|
@@ -120,10 +123,18 @@ class analytics_disabler:
|
|
120
123
|
exc_value: The instance of the exception
|
121
124
|
traceback: The traceback of the exception
|
122
125
|
"""
|
126
|
+
global _INTERNAL_DISABLE_ANALYTICS
|
123
127
|
if self.original_value is not None:
|
124
|
-
|
125
|
-
|
126
|
-
|
128
|
+
_INTERNAL_DISABLE_ANALYTICS = self.original_value
|
129
|
+
|
130
|
+
|
131
|
+
def is_analytics_disabled_internally() -> bool:
|
132
|
+
"""Whether analytics are disabled by an internal helper function.
|
133
|
+
|
134
|
+
Returns:
|
135
|
+
Whether analytics are disabled by an internal helper function.
|
136
|
+
"""
|
137
|
+
return _INTERNAL_DISABLE_ANALYTICS
|
127
138
|
|
128
139
|
|
129
140
|
def track_decorator(event: AnalyticsEvent) -> Callable[[F], F]:
|
@@ -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
|