zenml-nightly 0.66.0.dev20240930__py3-none-any.whl → 0.68.0.dev20241026__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- README.md +2 -2
- RELEASE_NOTES.md +227 -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/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/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.67.0_release.py +23 -0
- 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.66.0.dev20240930.dist-info → zenml_nightly-0.68.0.dev20241026.dist-info}/METADATA +4 -8
- {zenml_nightly-0.66.0.dev20240930.dist-info → zenml_nightly-0.68.0.dev20241026.dist-info}/RECORD +273 -452
- {zenml_nightly-0.66.0.dev20240930.dist-info → zenml_nightly-0.68.0.dev20241026.dist-info}/WHEEL +1 -1
- zenml/cli/stack_recipes.py +0 -469
- zenml/lineage_graph/__init__.py +0 -34
- zenml/lineage_graph/edge.py +0 -24
- zenml/lineage_graph/lineage_graph.py +0 -244
- zenml/lineage_graph/node/__init__.py +0 -32
- zenml/lineage_graph/node/artifact_node.py +0 -51
- zenml/lineage_graph/node/base_node.py +0 -31
- zenml/lineage_graph/node/step_node.py +0 -41
- zenml/model/model_version.py +0 -38
- zenml/new/__init__.py +0 -13
- zenml/new/pipelines/__init__.py +0 -13
- zenml/new/pipelines/code_archive.py +0 -157
- zenml/new/pipelines/pipeline_decorator.py +0 -118
- zenml/new/steps/__init__.py +0 -13
- zenml/new/steps/step_decorator.py +0 -176
- zenml/pipelines/base_pipeline.py +0 -273
- zenml/post_execution/__init__.py +0 -30
- zenml/post_execution/pipeline.py +0 -55
- zenml/post_execution/pipeline_run.py +0 -55
- zenml/services/terraform/__init__.py +0 -14
- zenml/services/terraform/terraform_service.py +0 -441
- zenml/steps/external_artifact.py +0 -26
- zenml/steps/step_environment.py +0 -108
- zenml/steps/step_output.py +0 -36
- zenml/utils/mlstacks_utils.py +0 -635
- zenml/utils/terraform_utils.py +0 -43
- zenml/zen_server/dashboard/assets/@radix-DnFH_oo1.js +0 -85
- zenml/zen_server/dashboard/assets/@react-router-APVeuk-U.js +0 -29
- zenml/zen_server/dashboard/assets/@reactflow-ytavUpwh.js +0 -17
- zenml/zen_server/dashboard/assets/@tanstack-QbMbTrh5.js +0 -22
- zenml/zen_server/dashboard/assets/ComponentBadge-gKR1OIwG.js +0 -1
- zenml/zen_server/dashboard/assets/ExecutionStatus-D6r6aK8J.js +0 -1
- zenml/zen_server/dashboard/assets/MarkdownVisualization-DS05sfBm.js +0 -14
- zenml/zen_server/dashboard/assets/SearchField-BzmfxS0L.js +0 -1
- zenml/zen_server/dashboard/assets/all-pipeline-runs-query-BA3R2Sey.js +0 -1
- zenml/zen_server/dashboard/assets/delete-run-CP0pcJ3U.js +0 -1
- zenml/zen_server/dashboard/assets/index-BhJ6ZJxv.css +0 -1
- zenml/zen_server/dashboard/assets/index-Ci0nJ8EZ.js +0 -55
- zenml/zen_server/dashboard/assets/index.esm-BE1uqCX5.js +0 -1
- zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-Df6ckaLK.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-JrS_4yms.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-BRrLR67x.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-DskEQOpE.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-DDpWG8g5.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-iz1--dBq.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-CzG7Kr3z.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-tyfMZHQw.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-DOnSzjnx.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-Xebo2OyJ.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-DpA2xaRd.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-KAwcVx6H.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-400-normal-DQXyrmoy.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-400-normal-DvIPHDQ7.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-500-normal-BjpBGs91.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-500-normal-CmOavsDc.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-600-normal-B-l8Lzzd.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-600-normal-BLZsI-P3.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-CIdlr5YK.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-_Rr29XE2.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-2pdUafRD.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-Dtavx3qw.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-BmtRFZgT.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-CkBLDEl_.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-400-normal-BT1H-PT_.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-400-normal-Cdi8t5Mu.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-500-normal-D4I8BKCx.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-500-normal-kWhwEdDH.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-600-normal-B2Ssfs8e.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-600-normal-Dbvh0wvx.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-8tIzm-yw.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-D3W-OpO-.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-B9u8Q_zH.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-SuUkSNTU.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-Dg0Bk0Yr.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-ao35dkSb.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-Cnt0N5Vm.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-DIOGfGLL.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-0i6yoQMg.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-5IkPJ6Nk.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-BQ_dbMbg.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-DjnxGF-L.woff2 +0 -0
- zenml/zen_server/dashboard/assets/not-found-DbjllLY_.js +0 -1
- zenml/zen_server/dashboard/assets/page-B1n7_W7z.js +0 -1
- zenml/zen_server/dashboard/assets/page-BZZhLo2u.js +0 -1
- zenml/zen_server/dashboard/assets/page-Bbf_oBjn.js +0 -1
- zenml/zen_server/dashboard/assets/page-BjjuBvZG.js +0 -9
- zenml/zen_server/dashboard/assets/page-CHaQkFK5.js +0 -1
- zenml/zen_server/dashboard/assets/page-CS0SYFK8.js +0 -1
- zenml/zen_server/dashboard/assets/page-DGM1CbYT.js +0 -2
- zenml/zen_server/dashboard/assets/page-DOmIZ2ra.js +0 -1
- zenml/zen_server/dashboard/assets/page-DYVmJ9_w.js +0 -3
- zenml/zen_server/dashboard/assets/page-Dwow2doB.js +0 -1
- zenml/zen_server/dashboard/assets/stack-detail-query-DQcyzG-2.js +0 -1
- zenml/zen_server/dashboard/assets/zod-uFd1wBcd.js +0 -1
- zenml/zen_server/dashboard_legacy/_redirects +0 -1
- zenml/zen_server/dashboard_legacy/asset-manifest.json +0 -131
- zenml/zen_server/dashboard_legacy/favicon.ico +0 -0
- zenml/zen_server/dashboard_legacy/index.html +0 -1
- zenml/zen_server/dashboard_legacy/manifest.json +0 -25
- zenml/zen_server/dashboard_legacy/precache-manifest.6d320abb70db612019dda6c4948e7a90.js +0 -462
- zenml/zen_server/dashboard_legacy/robots.txt +0 -2
- zenml/zen_server/dashboard_legacy/service-worker.js +0 -39
- zenml/zen_server/dashboard_legacy/static/css/2.5b37d44a.chunk.css +0 -16
- zenml/zen_server/dashboard_legacy/static/css/2.5b37d44a.chunk.css.map +0 -1
- zenml/zen_server/dashboard_legacy/static/css/main.e79dff04.chunk.css +0 -2
- zenml/zen_server/dashboard_legacy/static/css/main.e79dff04.chunk.css.map +0 -1
- zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js +0 -3
- zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js.LICENSE.txt +0 -95
- zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js.map +0 -1
- zenml/zen_server/dashboard_legacy/static/js/main.fa9299d5.chunk.js +0 -2
- zenml/zen_server/dashboard_legacy/static/js/main.fa9299d5.chunk.js.map +0 -1
- zenml/zen_server/dashboard_legacy/static/js/runtime-main.bfca2edd.js +0 -2
- zenml/zen_server/dashboard_legacy/static/js/runtime-main.bfca2edd.js.map +0 -1
- zenml/zen_server/dashboard_legacy/static/media/AlertTriangle.28aee535.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/ArrowSquareOut.abfb9bc7.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Back.86c23a22.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/BookOpen.5cb101ff.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/BoundingBox.1eb98717.svg +0 -10
- zenml/zen_server/dashboard_legacy/static/media/Burger.9b1c67d7.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Cached.2381fb8d.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Calendar.356e11c7.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ChartBarHorizontal.0247447b.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/ChartLine.0d79e18d.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/ChatDots.2e1c9211.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Check.dad6beb2.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/CheckCircleFilled.c19566d0.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Checkbox.af50e31e.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ChevronDown.f860ce32.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ChevronDownLight.6642d756.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ChevronLeft.f6edfcdb.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/CircleCheck.f98fd6ca.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Clock.ffc9de95.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Close.74e9efbc.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/CloseWithBorder.6960930a.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/CloseWithoutBorder.cd6f71df.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/CloudArrowUp.0aecb235.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Code.ef0f33b5.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Config.0be63f8a.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Connector.9fd46ef1.svg +0 -10
- zenml/zen_server/dashboard_legacy/static/media/Copy.36e2112a.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Dashboard.d05787e0.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Data.b1c3b5f8.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Delete.3c361b28.svg +0 -8
- zenml/zen_server/dashboard_legacy/static/media/Docs.7541d478.svg +0 -7
- zenml/zen_server/dashboard_legacy/static/media/Download.fba04d87.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Edit.490eb294.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/EmptyRightArrow.23749d01.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Example.6396cd37.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Extension.1394cd4a.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Eye.d9e4ee62.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Failed.0213c1a0.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/FileText.1f15bacd.svg +0 -7
- zenml/zen_server/dashboard_legacy/static/media/Filter.ab6b9c0d.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Folders.12b29887.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/FunnelFill.6df4c143.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/GitCommit.7dd9c2aa.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/GitHub_Logo.cefc2023.png +0 -0
- zenml/zen_server/dashboard_legacy/static/media/Graph.2c63a892.svg +0 -11
- zenml/zen_server/dashboard_legacy/static/media/History.08329240.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Home.0843b0d5.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ImageBuilder.ea762d9c.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/InProgress.304a0edc.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Info.9fe10c5c.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/KeyboardReturn.491afbe3.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Link.72bbb55d.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Lock.30f5e1fe.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Lock2.a769ea52.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/LockKey.92f21621.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Logs.8bf4d005.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/MinusCircle.4188f418.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/ModelRegistry.f0de050a.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/MultiUser.a2ba7c67.svg +0 -10
- zenml/zen_server/dashboard_legacy/static/media/PaginationFirst.92628634.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/PaginationLast.00d3c732.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/PaginationNext.86158845.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/PaginationPrev.60c18a88.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Pen.f2d831d4.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/PhotoCamera.179d6d4c.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Pipeline.30d298b0.svg +0 -7
- zenml/zen_server/dashboard_legacy/static/media/Plus.5aa1c16b.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/PlusCircle.92d860dd.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Repositories.71a36b8c.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/RightArrow.f30d3871.svg +0 -29
- zenml/zen_server/dashboard_legacy/static/media/Rocket.63bf7b9d.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/RocketLaunch.1bff2b59.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Rubik-Medium.c87313aa.ttf +0 -0
- zenml/zen_server/dashboard_legacy/static/media/Rubik-Regular.b3d0902b.ttf +0 -0
- zenml/zen_server/dashboard_legacy/static/media/Run.daec4fb2.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Search.d1afcce5.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Settings.59ca73ae.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Share2.46c3ff66.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/SignOut.6aa718c5.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/SimplePlus.5cf7ec20.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/SingleUser.bef3a095.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/SourceCodePro-Regular.b484b32f.ttf +0 -0
- zenml/zen_server/dashboard_legacy/static/media/Stack.19b604ac.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/StackComponent.b1ba90b5.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Star.f0c25022.svg +0 -9
- zenml/zen_server/dashboard_legacy/static/media/StarOutline.94ca8cd9.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Storefront.4b4796fe.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Stream.543e3039.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/SupportAgent.510ddf1f.svg +0 -8
- zenml/zen_server/dashboard_legacy/static/media/Table.77033750.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Tool.d5785486.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/UserPlus.741a99d7.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Verified.0625b2a0.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/addNew.4fb6c939.svg +0 -8
- zenml/zen_server/dashboard_legacy/static/media/arrowClose.cbd53f3f.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/arrowOpen.6ceef0af.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/check_small.30bc0138.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/circleArrowSideClose.98d6013e.svg +0 -18
- zenml/zen_server/dashboard_legacy/static/media/circleArrowSideOpen.63653df6.svg +0 -18
- zenml/zen_server/dashboard_legacy/static/media/image.104fd14b.png +0 -0
- zenml/zen_server/dashboard_legacy/static/media/imageAddIcon.e83004a9.svg +0 -7
- zenml/zen_server/dashboard_legacy/static/media/logo.93333e5c.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/logo_small.4204397d.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/logo_white.d4b4414e.svg +0 -20
- zenml/zen_server/dashboard_legacy/static/media/notConnected.5e2c8ea7.svg +0 -8
- zenml/zen_server/dashboard_legacy/static/media/plugin-fallback.72c294e6.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/share.bcd998b0.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/stars.08a9b19a.svg +0 -8
- zenml/zen_server/deploy/terraform/__init__.py +0 -41
- zenml/zen_server/deploy/terraform/providers/__init__.py +0 -14
- zenml/zen_server/deploy/terraform/providers/aws_provider.py +0 -61
- zenml/zen_server/deploy/terraform/providers/azure_provider.py +0 -59
- zenml/zen_server/deploy/terraform/providers/gcp_provider.py +0 -59
- zenml/zen_server/deploy/terraform/providers/terraform_provider.py +0 -331
- zenml/zen_server/deploy/terraform/recipes/aws/.gitignore +0 -8
- zenml/zen_server/deploy/terraform/recipes/aws/helm.tf +0 -20
- zenml/zen_server/deploy/terraform/recipes/aws/ingress.tf +0 -30
- zenml/zen_server/deploy/terraform/recipes/aws/outputs.tf +0 -7
- zenml/zen_server/deploy/terraform/recipes/aws/printf.cmd +0 -2
- zenml/zen_server/deploy/terraform/recipes/aws/sql.tf +0 -62
- zenml/zen_server/deploy/terraform/recipes/aws/terraform.tf +0 -44
- zenml/zen_server/deploy/terraform/recipes/aws/variables.tf +0 -167
- zenml/zen_server/deploy/terraform/recipes/aws/vpc.tf +0 -47
- zenml/zen_server/deploy/terraform/recipes/aws/zen_server.tf +0 -103
- zenml/zen_server/deploy/terraform/recipes/azure/.gitignore +0 -8
- zenml/zen_server/deploy/terraform/recipes/azure/helm.tf +0 -20
- zenml/zen_server/deploy/terraform/recipes/azure/ingress.tf +0 -30
- zenml/zen_server/deploy/terraform/recipes/azure/key_vault.tf +0 -73
- zenml/zen_server/deploy/terraform/recipes/azure/outputs.tf +0 -7
- zenml/zen_server/deploy/terraform/recipes/azure/printf.cmd +0 -2
- zenml/zen_server/deploy/terraform/recipes/azure/rg.tf +0 -36
- zenml/zen_server/deploy/terraform/recipes/azure/sql.tf +0 -65
- zenml/zen_server/deploy/terraform/recipes/azure/terraform.tf +0 -52
- zenml/zen_server/deploy/terraform/recipes/azure/variables.tf +0 -176
- zenml/zen_server/deploy/terraform/recipes/azure/zen_server.tf +0 -103
- zenml/zen_server/deploy/terraform/recipes/gcp/.gitignore +0 -8
- zenml/zen_server/deploy/terraform/recipes/gcp/helm.tf +0 -20
- zenml/zen_server/deploy/terraform/recipes/gcp/ingress.tf +0 -30
- zenml/zen_server/deploy/terraform/recipes/gcp/outputs.tf +0 -7
- zenml/zen_server/deploy/terraform/recipes/gcp/printf.cmd +0 -2
- zenml/zen_server/deploy/terraform/recipes/gcp/sql.tf +0 -64
- zenml/zen_server/deploy/terraform/recipes/gcp/terraform.tf +0 -44
- zenml/zen_server/deploy/terraform/recipes/gcp/variables.tf +0 -171
- zenml/zen_server/deploy/terraform/recipes/gcp/zen_server.tf +0 -114
- zenml/zen_server/deploy/terraform/terraform_zen_server.py +0 -246
- /zenml/{new/pipelines → pipelines}/build_utils.py +0 -0
- /zenml/{new/pipelines → pipelines}/run_utils.py +0 -0
- /zenml/{new/steps → steps}/decorated_step.py +0 -0
- {zenml_nightly-0.66.0.dev20240930.dist-info → zenml_nightly-0.68.0.dev20241026.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.66.0.dev20240930.dist-info → zenml_nightly-0.68.0.dev20241026.dist-info}/entry_points.txt +0 -0
zenml/steps/base_step.py
CHANGED
@@ -26,12 +26,10 @@ from typing import (
|
|
26
26
|
Mapping,
|
27
27
|
Optional,
|
28
28
|
Sequence,
|
29
|
-
Set,
|
30
29
|
Tuple,
|
31
30
|
Type,
|
32
31
|
TypeVar,
|
33
32
|
Union,
|
34
|
-
cast,
|
35
33
|
)
|
36
34
|
|
37
35
|
from pydantic import BaseModel, ConfigDict, ValidationError
|
@@ -40,18 +38,16 @@ from zenml.client_lazy_loader import ClientLazyLoader
|
|
40
38
|
from zenml.config.retry_config import StepRetryConfig
|
41
39
|
from zenml.config.source import Source
|
42
40
|
from zenml.constants import (
|
41
|
+
CODE_HASH_PARAMETER_NAME,
|
43
42
|
ENV_ZENML_RUN_SINGLE_STEPS_WITHOUT_STACK,
|
44
|
-
STEP_SOURCE_PARAMETER_NAME,
|
45
43
|
handle_bool_env_var,
|
46
44
|
)
|
47
|
-
from zenml.exceptions import
|
45
|
+
from zenml.exceptions import StepInterfaceError
|
48
46
|
from zenml.logger import get_logger
|
49
47
|
from zenml.materializers.base_materializer import BaseMaterializer
|
50
48
|
from zenml.materializers.materializer_registry import materializer_registry
|
51
|
-
from zenml.steps.base_parameters import BaseParameters
|
52
49
|
from zenml.steps.entrypoint_function_utils import (
|
53
50
|
StepArtifact,
|
54
|
-
get_step_entrypoint_signature,
|
55
51
|
validate_entrypoint_function,
|
56
52
|
)
|
57
53
|
from zenml.steps.utils import (
|
@@ -84,7 +80,6 @@ if TYPE_CHECKING:
|
|
84
80
|
from zenml.model.model import Model
|
85
81
|
from zenml.types import HookSpecification
|
86
82
|
|
87
|
-
ParametersOrDict = Union["BaseParameters", Dict[str, Any]]
|
88
83
|
MaterializerClassOrSource = Union[str, Source, Type["BaseMaterializer"]]
|
89
84
|
OutputMaterializersSpecification = Union[
|
90
85
|
"MaterializerClassOrSource",
|
@@ -95,43 +90,14 @@ if TYPE_CHECKING:
|
|
95
90
|
|
96
91
|
logger = get_logger(__name__)
|
97
92
|
|
98
|
-
|
99
|
-
class BaseStepMeta(type):
|
100
|
-
"""Metaclass for `BaseStep`.
|
101
|
-
|
102
|
-
Makes sure that the entrypoint function has valid parameters and type
|
103
|
-
annotations.
|
104
|
-
"""
|
105
|
-
|
106
|
-
def __new__(
|
107
|
-
mcs, name: str, bases: Tuple[Type[Any], ...], dct: Dict[str, Any]
|
108
|
-
) -> "BaseStepMeta":
|
109
|
-
"""Set up a new class with a qualified spec.
|
110
|
-
|
111
|
-
Args:
|
112
|
-
name: The name of the class.
|
113
|
-
bases: The base classes of the class.
|
114
|
-
dct: The attributes of the class.
|
115
|
-
|
116
|
-
Returns:
|
117
|
-
The new class.
|
118
|
-
"""
|
119
|
-
cls = cast(Type["BaseStep"], super().__new__(mcs, name, bases, dct))
|
120
|
-
if name not in {"BaseStep", "_DecoratedStep"}:
|
121
|
-
validate_entrypoint_function(cls.entrypoint)
|
122
|
-
|
123
|
-
return cls
|
124
|
-
|
125
|
-
|
126
93
|
T = TypeVar("T", bound="BaseStep")
|
127
94
|
|
128
95
|
|
129
|
-
class BaseStep
|
96
|
+
class BaseStep:
|
130
97
|
"""Abstract base class for all ZenML steps."""
|
131
98
|
|
132
99
|
def __init__(
|
133
100
|
self,
|
134
|
-
*args: Any,
|
135
101
|
name: Optional[str] = None,
|
136
102
|
enable_cache: Optional[bool] = None,
|
137
103
|
enable_artifact_metadata: Optional[bool] = None,
|
@@ -139,7 +105,7 @@ class BaseStep(metaclass=BaseStepMeta):
|
|
139
105
|
enable_step_logs: Optional[bool] = None,
|
140
106
|
experiment_tracker: Optional[str] = None,
|
141
107
|
step_operator: Optional[str] = None,
|
142
|
-
parameters: Optional[
|
108
|
+
parameters: Optional[Dict[str, Any]] = None,
|
143
109
|
output_materializers: Optional[
|
144
110
|
"OutputMaterializersSpecification"
|
145
111
|
] = None,
|
@@ -149,12 +115,10 @@ class BaseStep(metaclass=BaseStepMeta):
|
|
149
115
|
on_success: Optional["HookSpecification"] = None,
|
150
116
|
model: Optional["Model"] = None,
|
151
117
|
retry: Optional[StepRetryConfig] = None,
|
152
|
-
**kwargs: Any,
|
153
118
|
) -> None:
|
154
119
|
"""Initializes a step.
|
155
120
|
|
156
121
|
Args:
|
157
|
-
*args: Positional arguments passed to the step.
|
158
122
|
name: The name of the step.
|
159
123
|
enable_cache: If caching should be enabled for this step.
|
160
124
|
enable_artifact_metadata: If artifact metadata should be enabled
|
@@ -179,30 +143,15 @@ class BaseStep(metaclass=BaseStepMeta):
|
|
179
143
|
function (e.g. `module.my_function`).
|
180
144
|
model: configuration of the model version in the Model Control Plane.
|
181
145
|
retry: Configuration for retrying the step in case of failure.
|
182
|
-
**kwargs: Keyword arguments passed to the step.
|
183
146
|
"""
|
184
147
|
from zenml.config.step_configurations import PartialStepConfiguration
|
185
148
|
|
186
|
-
self._upstream_steps: Set["BaseStep"] = set()
|
187
149
|
self.entrypoint_definition = validate_entrypoint_function(
|
188
150
|
self.entrypoint, reserved_arguments=["after", "id"]
|
189
151
|
)
|
190
152
|
|
191
153
|
name = name or self.__class__.__name__
|
192
154
|
|
193
|
-
requires_context = self.entrypoint_definition.context is not None
|
194
|
-
if enable_cache is None:
|
195
|
-
if requires_context:
|
196
|
-
# Using the StepContext inside a step provides access to
|
197
|
-
# external resources which might influence the step execution.
|
198
|
-
# We therefore disable caching unless it is explicitly enabled
|
199
|
-
enable_cache = False
|
200
|
-
logger.debug(
|
201
|
-
"Step `%s`: Step context required and caching not "
|
202
|
-
"explicitly enabled.",
|
203
|
-
name,
|
204
|
-
)
|
205
|
-
|
206
155
|
logger.debug(
|
207
156
|
"Step `%s`: Caching %s.",
|
208
157
|
name,
|
@@ -254,7 +203,6 @@ class BaseStep(metaclass=BaseStepMeta):
|
|
254
203
|
model=model,
|
255
204
|
retry=retry,
|
256
205
|
)
|
257
|
-
self._verify_and_apply_init_params(*args, **kwargs)
|
258
206
|
|
259
207
|
notebook_utils.try_to_save_notebook_cell_code(self.source_object)
|
260
208
|
|
@@ -300,45 +248,6 @@ class BaseStep(metaclass=BaseStepMeta):
|
|
300
248
|
"""
|
301
249
|
return source_utils.resolve(self.__class__)
|
302
250
|
|
303
|
-
@property
|
304
|
-
def upstream_steps(self) -> Set["BaseStep"]:
|
305
|
-
"""Names of the upstream steps of this step.
|
306
|
-
|
307
|
-
This property will only contain the full set of upstream steps once
|
308
|
-
it's parent pipeline `connect(...)` method was called.
|
309
|
-
|
310
|
-
Returns:
|
311
|
-
Set of upstream step names.
|
312
|
-
"""
|
313
|
-
return self._upstream_steps
|
314
|
-
|
315
|
-
def after(self, step: "BaseStep") -> None:
|
316
|
-
"""Adds an upstream step to this step.
|
317
|
-
|
318
|
-
Calling this method makes sure this step only starts running once the
|
319
|
-
given step has successfully finished executing.
|
320
|
-
|
321
|
-
**Note**: This can only be called inside the pipeline connect function
|
322
|
-
which is decorated with the `@pipeline` decorator. Any calls outside
|
323
|
-
this function will be ignored.
|
324
|
-
|
325
|
-
Example:
|
326
|
-
The following pipeline will run its steps sequentially in the following
|
327
|
-
order: step_2 -> step_1 -> step_3
|
328
|
-
|
329
|
-
```python
|
330
|
-
@pipeline
|
331
|
-
def example_pipeline(step_1, step_2, step_3):
|
332
|
-
step_1.after(step_2)
|
333
|
-
step_3(step_1(), step_2())
|
334
|
-
```
|
335
|
-
|
336
|
-
Args:
|
337
|
-
step: A step which should finish executing before this step is
|
338
|
-
started.
|
339
|
-
"""
|
340
|
-
self._upstream_steps.add(step)
|
341
|
-
|
342
251
|
@property
|
343
252
|
def source_object(self) -> Any:
|
344
253
|
"""The source object of this step.
|
@@ -374,7 +283,7 @@ class BaseStep(metaclass=BaseStepMeta):
|
|
374
283
|
A dictionary containing the caching parameters
|
375
284
|
"""
|
376
285
|
parameters = {
|
377
|
-
|
286
|
+
CODE_HASH_PARAMETER_NAME: source_code_utils.get_hashed_source_code(
|
378
287
|
self.source_object
|
379
288
|
)
|
380
289
|
}
|
@@ -394,65 +303,6 @@ class BaseStep(metaclass=BaseStepMeta):
|
|
394
303
|
|
395
304
|
return parameters
|
396
305
|
|
397
|
-
def _verify_and_apply_init_params(self, *args: Any, **kwargs: Any) -> None:
|
398
|
-
"""Verifies the initialization args and kwargs of this step.
|
399
|
-
|
400
|
-
This method makes sure that there is only one parameters object passed
|
401
|
-
at initialization and that it was passed using the correct name and
|
402
|
-
type specified in the step declaration.
|
403
|
-
|
404
|
-
Args:
|
405
|
-
*args: The args passed to the init method of this step.
|
406
|
-
**kwargs: The kwargs passed to the init method of this step.
|
407
|
-
|
408
|
-
Raises:
|
409
|
-
StepInterfaceError: If there are too many arguments or arguments
|
410
|
-
with a wrong name/type.
|
411
|
-
"""
|
412
|
-
maximum_arg_count = (
|
413
|
-
1 if self.entrypoint_definition.legacy_params else 0
|
414
|
-
)
|
415
|
-
arg_count = len(args) + len(kwargs)
|
416
|
-
if arg_count > maximum_arg_count:
|
417
|
-
raise StepInterfaceError(
|
418
|
-
f"Too many arguments ({arg_count}, expected: "
|
419
|
-
f"{maximum_arg_count}) passed when creating a "
|
420
|
-
f"'{self.name}' step."
|
421
|
-
)
|
422
|
-
|
423
|
-
if self.entrypoint_definition.legacy_params:
|
424
|
-
if args:
|
425
|
-
config = args[0]
|
426
|
-
elif kwargs:
|
427
|
-
key, config = kwargs.popitem()
|
428
|
-
|
429
|
-
if key != self.entrypoint_definition.legacy_params.name:
|
430
|
-
raise StepInterfaceError(
|
431
|
-
f"Unknown keyword argument '{key}' when creating a "
|
432
|
-
f"'{self.name}' step, only expected a single "
|
433
|
-
"argument with key "
|
434
|
-
f"'{self.entrypoint_definition.legacy_params.name}'."
|
435
|
-
)
|
436
|
-
else:
|
437
|
-
# This step requires configuration parameters but no parameters
|
438
|
-
# object was passed as an argument. The parameters might be
|
439
|
-
# set via default values in the parameters class or in a
|
440
|
-
# configuration file, so we continue for now and verify
|
441
|
-
# that all parameters are set before running the step
|
442
|
-
return
|
443
|
-
|
444
|
-
if not isinstance(
|
445
|
-
config, self.entrypoint_definition.legacy_params.annotation
|
446
|
-
):
|
447
|
-
raise StepInterfaceError(
|
448
|
-
f"`{config}` object passed when creating a "
|
449
|
-
f"'{self.name}' step is not a "
|
450
|
-
f"`{self.entrypoint_definition.legacy_params.annotation.__name__} "
|
451
|
-
"` instance."
|
452
|
-
)
|
453
|
-
|
454
|
-
self.configure(parameters=config)
|
455
|
-
|
456
306
|
def _parse_call_args(
|
457
307
|
self, *args: Any, **kwargs: Any
|
458
308
|
) -> Tuple[
|
@@ -482,7 +332,7 @@ class BaseStep(metaclass=BaseStepMeta):
|
|
482
332
|
)
|
483
333
|
from zenml.models.v2.core.run_metadata import LazyRunMetadataResponse
|
484
334
|
|
485
|
-
signature =
|
335
|
+
signature = inspect.signature(self.entrypoint, follow_wrapped=True)
|
486
336
|
|
487
337
|
try:
|
488
338
|
bound_args = signature.bind_partial(*args, **kwargs)
|
@@ -522,14 +372,16 @@ class BaseStep(metaclass=BaseStepMeta):
|
|
522
372
|
)
|
523
373
|
elif isinstance(value, LazyArtifactVersionResponse):
|
524
374
|
model_artifacts_or_metadata[key] = ModelVersionDataLazyLoader(
|
525
|
-
|
375
|
+
model_name=value.lazy_load_model_name,
|
376
|
+
model_version=value.lazy_load_model_version,
|
526
377
|
artifact_name=value.lazy_load_name,
|
527
378
|
artifact_version=value.lazy_load_version,
|
528
379
|
metadata_name=None,
|
529
380
|
)
|
530
381
|
elif isinstance(value, LazyRunMetadataResponse):
|
531
382
|
model_artifacts_or_metadata[key] = ModelVersionDataLazyLoader(
|
532
|
-
|
383
|
+
model_name=value.lazy_load_model_name,
|
384
|
+
model_version=value.lazy_load_model_version,
|
533
385
|
artifact_name=value.lazy_load_artifact_name,
|
534
386
|
artifact_version=value.lazy_load_artifact_version,
|
535
387
|
metadata_name=value.lazy_load_metadata_name,
|
@@ -589,7 +441,7 @@ class BaseStep(metaclass=BaseStepMeta):
|
|
589
441
|
Returns:
|
590
442
|
The outputs of the entrypoint function call.
|
591
443
|
"""
|
592
|
-
from zenml.
|
444
|
+
from zenml.pipelines.pipeline_definition import Pipeline
|
593
445
|
|
594
446
|
if not Pipeline.ACTIVE_PIPELINE:
|
595
447
|
from zenml import constants, get_step_context
|
@@ -720,14 +572,13 @@ class BaseStep(metaclass=BaseStepMeta):
|
|
720
572
|
|
721
573
|
def configure(
|
722
574
|
self: T,
|
723
|
-
name: Optional[str] = None,
|
724
575
|
enable_cache: Optional[bool] = None,
|
725
576
|
enable_artifact_metadata: Optional[bool] = None,
|
726
577
|
enable_artifact_visualization: Optional[bool] = None,
|
727
578
|
enable_step_logs: Optional[bool] = None,
|
728
579
|
experiment_tracker: Optional[str] = None,
|
729
580
|
step_operator: Optional[str] = None,
|
730
|
-
parameters: Optional[
|
581
|
+
parameters: Optional[Dict[str, Any]] = None,
|
731
582
|
output_materializers: Optional[
|
732
583
|
"OutputMaterializersSpecification"
|
733
584
|
] = None,
|
@@ -752,7 +603,6 @@ class BaseStep(metaclass=BaseStepMeta):
|
|
752
603
|
step.configuration.extra # {"key2": 2}
|
753
604
|
|
754
605
|
Args:
|
755
|
-
name: DEPRECATED: The name of the step.
|
756
606
|
enable_cache: If caching should be enabled for this step.
|
757
607
|
enable_artifact_metadata: If artifact metadata should be enabled
|
758
608
|
for this step.
|
@@ -788,9 +638,6 @@ class BaseStep(metaclass=BaseStepMeta):
|
|
788
638
|
from zenml.config.step_configurations import StepConfigurationUpdate
|
789
639
|
from zenml.hooks.hook_validators import resolve_and_validate_hook
|
790
640
|
|
791
|
-
if name:
|
792
|
-
logger.warning("Configuring the name of a step is deprecated.")
|
793
|
-
|
794
641
|
def _resolve_if_necessary(
|
795
642
|
value: Union[str, Source, Type[Any]],
|
796
643
|
) -> Source:
|
@@ -832,9 +679,6 @@ class BaseStep(metaclass=BaseStepMeta):
|
|
832
679
|
# string of on_success hook function to be used for this step
|
833
680
|
success_hook_source = resolve_and_validate_hook(on_success)
|
834
681
|
|
835
|
-
if isinstance(parameters, BaseParameters):
|
836
|
-
parameters = parameters.model_dump()
|
837
|
-
|
838
682
|
values = dict_utils.remove_none_values(
|
839
683
|
{
|
840
684
|
"enable_cache": enable_cache,
|
@@ -865,7 +709,7 @@ class BaseStep(metaclass=BaseStepMeta):
|
|
865
709
|
enable_step_logs: Optional[bool] = None,
|
866
710
|
experiment_tracker: Optional[str] = None,
|
867
711
|
step_operator: Optional[str] = None,
|
868
|
-
parameters: Optional[
|
712
|
+
parameters: Optional[Dict[str, Any]] = None,
|
869
713
|
output_materializers: Optional[
|
870
714
|
"OutputMaterializersSpecification"
|
871
715
|
] = None,
|
@@ -1006,8 +850,7 @@ class BaseStep(metaclass=BaseStepMeta):
|
|
1006
850
|
conflicting_parameters[key] = (value, runtime_value)
|
1007
851
|
if key in self.entrypoint_definition.inputs:
|
1008
852
|
self.entrypoint_definition.validate_input(key=key, value=value)
|
1009
|
-
|
1010
|
-
elif not self.entrypoint_definition.legacy_params:
|
853
|
+
else:
|
1011
854
|
raise StepInterfaceError(
|
1012
855
|
f"Unable to find parameter '{key}' in step function "
|
1013
856
|
"signature."
|
@@ -1143,9 +986,7 @@ To avoid this consider setting step parameters only in one place (config or code
|
|
1143
986
|
StepConfigurationUpdate,
|
1144
987
|
)
|
1145
988
|
|
1146
|
-
outputs: Dict[str, Dict[str,
|
1147
|
-
defaultdict(dict)
|
1148
|
-
)
|
989
|
+
outputs: Dict[str, Dict[str, Any]] = defaultdict(dict)
|
1149
990
|
|
1150
991
|
for (
|
1151
992
|
output_name,
|
@@ -1154,6 +995,8 @@ To avoid this consider setting step parameters only in one place (config or code
|
|
1154
995
|
output = self._configuration.outputs.get(
|
1155
996
|
output_name, PartialArtifactConfiguration()
|
1156
997
|
)
|
998
|
+
if artifact_config := output_annotation.artifact_config:
|
999
|
+
outputs[output_name]["artifact_config"] = artifact_config
|
1157
1000
|
|
1158
1001
|
if output.materializer_source:
|
1159
1002
|
# The materializer source was configured by the user. We
|
@@ -1264,95 +1107,4 @@ To avoid this consider setting step parameters only in one place (config or code
|
|
1264
1107
|
else:
|
1265
1108
|
params[key] = value
|
1266
1109
|
|
1267
|
-
if self.entrypoint_definition.legacy_params:
|
1268
|
-
legacy_params = self._finalize_legacy_parameters()
|
1269
|
-
params[self.entrypoint_definition.legacy_params.name] = (
|
1270
|
-
legacy_params
|
1271
|
-
)
|
1272
|
-
|
1273
1110
|
return params
|
1274
|
-
|
1275
|
-
def _finalize_legacy_parameters(self) -> Dict[str, Any]:
|
1276
|
-
"""Verifies and prepares the config parameters for running this step.
|
1277
|
-
|
1278
|
-
When the step requires config parameters, this method:
|
1279
|
-
- checks if config parameters were set via a config object or file
|
1280
|
-
- tries to set missing config parameters from default values of the
|
1281
|
-
config class
|
1282
|
-
|
1283
|
-
Returns:
|
1284
|
-
Values for the previously unconfigured function parameters.
|
1285
|
-
|
1286
|
-
Raises:
|
1287
|
-
MissingStepParameterError: If no value could be found for one or
|
1288
|
-
more config parameters.
|
1289
|
-
StepInterfaceError: If the parameter class validation failed.
|
1290
|
-
"""
|
1291
|
-
if not self.entrypoint_definition.legacy_params:
|
1292
|
-
return {}
|
1293
|
-
|
1294
|
-
logger.warning(
|
1295
|
-
"The `BaseParameters` class to define step parameters is "
|
1296
|
-
"deprecated. Check out our docs "
|
1297
|
-
"https://docs.zenml.io/how-to/use-configuration-files/how-to-use-config "
|
1298
|
-
"for information on how to parameterize your steps. As a quick "
|
1299
|
-
"fix to get rid of this warning, make sure your parameter class "
|
1300
|
-
"inherits from `pydantic.BaseModel` instead of the "
|
1301
|
-
"`BaseParameters` class."
|
1302
|
-
)
|
1303
|
-
|
1304
|
-
# parameters for the `BaseParameters` class specified in the "new" way
|
1305
|
-
# by specifying a dict of parameters for the corresponding key
|
1306
|
-
params_defined_in_new_way = (
|
1307
|
-
self.configuration.parameters.get(
|
1308
|
-
self.entrypoint_definition.legacy_params.name
|
1309
|
-
)
|
1310
|
-
or {}
|
1311
|
-
)
|
1312
|
-
|
1313
|
-
values = {}
|
1314
|
-
missing_keys = []
|
1315
|
-
for (
|
1316
|
-
name,
|
1317
|
-
field,
|
1318
|
-
) in self.entrypoint_definition.legacy_params.annotation.model_fields.items():
|
1319
|
-
if name in self.configuration.parameters:
|
1320
|
-
# a value for this parameter has been set already
|
1321
|
-
values[name] = self.configuration.parameters[name]
|
1322
|
-
elif name in params_defined_in_new_way:
|
1323
|
-
# a value for this parameter has been set in the "new" way
|
1324
|
-
# already
|
1325
|
-
values[name] = params_defined_in_new_way[name]
|
1326
|
-
elif field.is_required():
|
1327
|
-
# this field has no default value set and therefore needs
|
1328
|
-
# to be passed via an initialized config object
|
1329
|
-
missing_keys.append(name)
|
1330
|
-
else:
|
1331
|
-
# use default value from the pydantic config class
|
1332
|
-
values[name] = field.default
|
1333
|
-
|
1334
|
-
if missing_keys:
|
1335
|
-
raise MissingStepParameterError(
|
1336
|
-
self.name,
|
1337
|
-
missing_keys,
|
1338
|
-
self.entrypoint_definition.legacy_params.annotation,
|
1339
|
-
)
|
1340
|
-
|
1341
|
-
if (
|
1342
|
-
getattr(
|
1343
|
-
self.entrypoint_definition.legacy_params.annotation.model_config,
|
1344
|
-
"extra",
|
1345
|
-
None,
|
1346
|
-
)
|
1347
|
-
== "allow"
|
1348
|
-
):
|
1349
|
-
# Add all parameters for the config class for backwards
|
1350
|
-
# compatibility if the config class allows extra attributes
|
1351
|
-
values.update(self.configuration.parameters)
|
1352
|
-
|
1353
|
-
try:
|
1354
|
-
self.entrypoint_definition.legacy_params.annotation(**values)
|
1355
|
-
except ValidationError:
|
1356
|
-
raise StepInterfaceError("Failed to validate function parameters.")
|
1357
|
-
|
1358
|
-
return values
|
@@ -21,7 +21,6 @@ from typing import (
|
|
21
21
|
Dict,
|
22
22
|
NamedTuple,
|
23
23
|
NoReturn,
|
24
|
-
Optional,
|
25
24
|
Sequence,
|
26
25
|
Type,
|
27
26
|
Union,
|
@@ -42,45 +41,13 @@ from zenml.utils import yaml_utils
|
|
42
41
|
|
43
42
|
if TYPE_CHECKING:
|
44
43
|
from zenml.config.source import Source
|
45
|
-
from zenml.
|
46
|
-
from zenml.steps import BaseStep
|
44
|
+
from zenml.pipelines.pipeline_definition import Pipeline
|
47
45
|
|
48
46
|
MaterializerClassOrSource = Union[str, "Source", Type["BaseMaterializer"]]
|
49
47
|
|
50
48
|
logger = get_logger(__name__)
|
51
49
|
|
52
50
|
|
53
|
-
def get_step_entrypoint_signature(step: "BaseStep") -> inspect.Signature:
|
54
|
-
"""Get the entrypoint signature of a step.
|
55
|
-
|
56
|
-
Args:
|
57
|
-
step: The step for which to get the entrypoint signature.
|
58
|
-
|
59
|
-
Returns:
|
60
|
-
The entrypoint function signature.
|
61
|
-
"""
|
62
|
-
from zenml.steps import BaseParameters, StepContext
|
63
|
-
|
64
|
-
signature = inspect.signature(step.entrypoint, follow_wrapped=True)
|
65
|
-
|
66
|
-
def _is_param_of_class(annotation: Any, class_: Type[Any]) -> bool:
|
67
|
-
annotation = resolve_type_annotation(annotation)
|
68
|
-
return inspect.isclass(annotation) and issubclass(annotation, class_)
|
69
|
-
|
70
|
-
parameters = list(signature.parameters.values())
|
71
|
-
|
72
|
-
# Filter out deprecated args: step context and legacy parameters
|
73
|
-
parameters = [
|
74
|
-
param
|
75
|
-
for param in parameters
|
76
|
-
if not _is_param_of_class(param.annotation, class_=BaseParameters)
|
77
|
-
and not _is_param_of_class(param.annotation, class_=StepContext)
|
78
|
-
]
|
79
|
-
|
80
|
-
signature = signature.replace(parameters=parameters)
|
81
|
-
return signature
|
82
|
-
|
83
|
-
|
84
51
|
class StepArtifact:
|
85
52
|
"""Class to represent step output artifacts."""
|
86
53
|
|
@@ -143,15 +110,10 @@ class EntrypointFunctionDefinition(NamedTuple):
|
|
143
110
|
inputs: The entrypoint function inputs.
|
144
111
|
outputs: The entrypoint function outputs. This dictionary maps output
|
145
112
|
names to output annotations.
|
146
|
-
context: Optional parameter representing the `StepContext` input.
|
147
|
-
legacy_params: Optional parameter representing the `BaseParameters`
|
148
|
-
input.
|
149
113
|
"""
|
150
114
|
|
151
115
|
inputs: Dict[str, inspect.Parameter]
|
152
116
|
outputs: Dict[str, OutputSignature]
|
153
|
-
context: Optional[inspect.Parameter]
|
154
|
-
legacy_params: Optional[inspect.Parameter]
|
155
117
|
|
156
118
|
def validate_input(self, key: str, value: Any) -> None:
|
157
119
|
"""Validates an input to the step entrypoint function.
|
@@ -260,36 +222,20 @@ def validate_entrypoint_function(
|
|
260
222
|
Raises:
|
261
223
|
StepInterfaceError: If the entrypoint function has variable arguments
|
262
224
|
or keyword arguments.
|
263
|
-
StepInterfaceError: If the entrypoint function has multiple
|
264
|
-
`BaseParameter` arguments.
|
265
|
-
StepInterfaceError: If the entrypoint function has multiple
|
266
|
-
`StepContext` arguments.
|
267
225
|
RuntimeError: If type annotations should be enforced and a type
|
268
226
|
annotation is missing.
|
269
227
|
|
270
228
|
Returns:
|
271
229
|
A validated definition of the entrypoint function.
|
272
230
|
"""
|
273
|
-
from zenml.steps import BaseParameters, StepContext
|
274
|
-
|
275
231
|
signature = inspect.signature(func, follow_wrapped=True)
|
276
232
|
validate_reserved_arguments(
|
277
233
|
signature=signature, reserved_arguments=reserved_arguments
|
278
234
|
)
|
279
235
|
|
280
236
|
inputs = {}
|
281
|
-
context: Optional[inspect.Parameter] = None
|
282
|
-
legacy_params: Optional[inspect.Parameter] = None
|
283
237
|
|
284
238
|
signature_parameters = list(signature.parameters.items())
|
285
|
-
if signature_parameters and signature_parameters[0][0] == "self":
|
286
|
-
# TODO: Once we get rid of the old step decorator, we can also remove
|
287
|
-
# the `BaseStepMeta` class which right now calls this function on an
|
288
|
-
# unbound instance method when using the class-based API. If we get rid
|
289
|
-
# of that, this check and removal of the `self` parameter is not
|
290
|
-
# necessary anymore
|
291
|
-
signature_parameters = signature_parameters[1:]
|
292
|
-
|
293
239
|
for key, parameter in signature_parameters:
|
294
240
|
if parameter.kind in {parameter.VAR_POSITIONAL, parameter.VAR_KEYWORD}:
|
295
241
|
raise StepInterfaceError(
|
@@ -309,29 +255,7 @@ def validate_entrypoint_function(
|
|
309
255
|
parameter = parameter.replace(annotation=Any)
|
310
256
|
|
311
257
|
annotation = resolve_type_annotation(annotation)
|
312
|
-
|
313
|
-
annotation, BaseParameters
|
314
|
-
):
|
315
|
-
if legacy_params is not None:
|
316
|
-
raise StepInterfaceError(
|
317
|
-
f"Found multiple parameter arguments "
|
318
|
-
f"('{legacy_params.name}' and '{key}') "
|
319
|
-
f"for function {func.__name__}."
|
320
|
-
)
|
321
|
-
legacy_params = parameter
|
322
|
-
|
323
|
-
elif inspect.isclass(annotation) and issubclass(
|
324
|
-
annotation, StepContext
|
325
|
-
):
|
326
|
-
if context is not None:
|
327
|
-
raise StepInterfaceError(
|
328
|
-
f"Found multiple context arguments "
|
329
|
-
f"('{context.name}' and '{key}') "
|
330
|
-
f"for function {func.__name__}."
|
331
|
-
)
|
332
|
-
context = parameter
|
333
|
-
else:
|
334
|
-
inputs[key] = parameter
|
258
|
+
inputs[key] = parameter
|
335
259
|
|
336
260
|
outputs = parse_return_type_annotations(
|
337
261
|
func=func, enforce_type_annotations=ENFORCE_TYPE_ANNOTATIONS
|
@@ -340,6 +264,4 @@ def validate_entrypoint_function(
|
|
340
264
|
return EntrypointFunctionDefinition(
|
341
265
|
inputs=inputs,
|
342
266
|
outputs=outputs,
|
343
|
-
context=context,
|
344
|
-
legacy_params=legacy_params,
|
345
267
|
)
|