zenml-nightly 0.66.0.dev20240927__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.
Files changed (597) hide show
  1. README.md +18 -12
  2. RELEASE_NOTES.md +236 -0
  3. zenml/VERSION +1 -1
  4. zenml/__init__.py +5 -10
  5. zenml/analytics/context.py +16 -1
  6. zenml/analytics/enums.py +0 -13
  7. zenml/analytics/utils.py +18 -7
  8. zenml/artifact_stores/base_artifact_store.py +11 -0
  9. zenml/artifacts/artifact_config.py +19 -65
  10. zenml/artifacts/external_artifact.py +7 -53
  11. zenml/artifacts/external_artifact_config.py +21 -40
  12. zenml/artifacts/load_directory_materializer.py +91 -0
  13. zenml/artifacts/utils.py +204 -145
  14. zenml/cli/__init__.py +62 -127
  15. zenml/cli/base.py +8 -8
  16. zenml/cli/integration.py +0 -9
  17. zenml/cli/login.py +951 -0
  18. zenml/cli/pipeline.py +1 -1
  19. zenml/cli/served_model.py +8 -1
  20. zenml/cli/server.py +462 -577
  21. zenml/cli/service_accounts.py +4 -4
  22. zenml/cli/stack.py +78 -569
  23. zenml/cli/stack_components.py +5 -594
  24. zenml/cli/user_management.py +0 -12
  25. zenml/cli/utils.py +24 -142
  26. zenml/client.py +57 -40
  27. zenml/client_lazy_loader.py +29 -12
  28. zenml/config/compiler.py +7 -11
  29. zenml/config/global_config.py +9 -0
  30. zenml/config/pipeline_configurations.py +2 -1
  31. zenml/config/pipeline_run_configuration.py +2 -1
  32. zenml/config/server_config.py +7 -5
  33. zenml/config/step_configurations.py +2 -0
  34. zenml/constants.py +6 -42
  35. zenml/enums.py +1 -4
  36. zenml/environment.py +1 -315
  37. zenml/exceptions.py +12 -41
  38. zenml/hooks/hook_validators.py +1 -8
  39. zenml/integrations/airflow/orchestrators/airflow_orchestrator.py +2 -3
  40. zenml/integrations/argilla/__init__.py +1 -1
  41. zenml/integrations/argilla/annotators/argilla_annotator.py +234 -89
  42. zenml/integrations/argilla/flavors/argilla_annotator_flavor.py +10 -5
  43. zenml/integrations/aws/flavors/sagemaker_orchestrator_flavor.py +9 -5
  44. zenml/integrations/aws/orchestrators/sagemaker_orchestrator.py +15 -2
  45. zenml/integrations/aws/service_connectors/aws_service_connector.py +6 -0
  46. zenml/integrations/azure/__init__.py +6 -2
  47. zenml/integrations/azure/flavors/azureml_orchestrator_flavor.py +5 -4
  48. zenml/integrations/azure/orchestrators/azureml_orchestrator.py +1 -1
  49. zenml/integrations/bentoml/model_deployers/bentoml_model_deployer.py +85 -19
  50. zenml/integrations/bentoml/services/__init__.py +15 -4
  51. zenml/integrations/bentoml/services/bentoml_container_deployment.py +399 -0
  52. zenml/integrations/bentoml/services/{bentoml_deployment.py → bentoml_local_deployment.py} +81 -40
  53. zenml/{steps/base_parameters.py → integrations/bentoml/services/deployment_type.py} +8 -5
  54. zenml/integrations/bentoml/steps/bento_builder.py +1 -0
  55. zenml/integrations/bentoml/steps/bentoml_deployer.py +93 -41
  56. zenml/integrations/github/code_repositories/github_code_repository.py +1 -1
  57. zenml/integrations/gitlab/code_repositories/gitlab_code_repository.py +6 -1
  58. zenml/integrations/huggingface/__init__.py +1 -6
  59. zenml/integrations/kaniko/image_builders/kaniko_image_builder.py +3 -3
  60. zenml/integrations/lightning/orchestrators/lightning_orchestrator.py +3 -3
  61. zenml/integrations/lightning/orchestrators/lightning_orchestrator_entrypoint.py +2 -2
  62. zenml/integrations/mlflow/experiment_trackers/mlflow_experiment_tracker.py +6 -3
  63. zenml/integrations/mlflow/model_registries/mlflow_model_registry.py +6 -0
  64. zenml/integrations/mlflow/services/mlflow_deployment.py +2 -2
  65. zenml/integrations/mlflow/steps/mlflow_deployer.py +1 -1
  66. zenml/integrations/mlflow/steps/mlflow_registry.py +1 -1
  67. zenml/integrations/neptune/experiment_trackers/run_state.py +2 -2
  68. zenml/integrations/pytorch/materializers/base_pytorch_materializer.py +8 -2
  69. zenml/integrations/pytorch/materializers/pytorch_module_materializer.py +4 -1
  70. zenml/integrations/s3/artifact_stores/s3_artifact_store.py +98 -0
  71. zenml/integrations/s3/flavors/s3_artifact_store_flavor.py +14 -0
  72. zenml/integrations/s3/utils.py +40 -0
  73. zenml/integrations/tensorflow/__init__.py +0 -9
  74. zenml/logging/step_logging.py +13 -15
  75. zenml/{new/pipelines → login}/__init__.py +4 -1
  76. zenml/login/credentials.py +346 -0
  77. zenml/login/credentials_store.py +603 -0
  78. zenml/{new → login/pro}/__init__.py +4 -1
  79. zenml/login/pro/client.py +496 -0
  80. zenml/login/pro/constants.py +34 -0
  81. zenml/{lineage_graph/edge.py → login/pro/models.py} +9 -8
  82. zenml/{zen_server/deploy/terraform/providers → login/pro/organization}/__init__.py +2 -2
  83. zenml/login/pro/organization/client.py +79 -0
  84. zenml/{lineage_graph/node/base_node.py → login/pro/organization/models.py} +13 -12
  85. zenml/{new/steps → login/pro/tenant}/__init__.py +2 -1
  86. zenml/login/pro/tenant/client.py +92 -0
  87. zenml/login/pro/tenant/models.py +174 -0
  88. zenml/login/pro/utils.py +121 -0
  89. zenml/{cli → login}/web_login.py +64 -28
  90. zenml/materializers/__init__.py +2 -0
  91. zenml/materializers/base_materializer.py +43 -9
  92. zenml/materializers/built_in_materializer.py +1 -1
  93. zenml/materializers/uuid_materializer.py +79 -0
  94. zenml/metadata/lazy_load.py +10 -7
  95. zenml/metadata/metadata_types.py +49 -0
  96. zenml/model/lazy_load.py +85 -4
  97. zenml/model/model.py +61 -83
  98. zenml/model/utils.py +47 -118
  99. zenml/models/__init__.py +6 -0
  100. zenml/models/v2/base/base.py +12 -8
  101. zenml/models/v2/base/filter.py +9 -0
  102. zenml/models/v2/core/artifact_version.py +53 -25
  103. zenml/models/v2/core/component.py +54 -19
  104. zenml/models/v2/core/flavor.py +13 -13
  105. zenml/models/v2/core/model.py +4 -1
  106. zenml/models/v2/core/model_version.py +4 -6
  107. zenml/models/v2/core/model_version_artifact.py +3 -1
  108. zenml/models/v2/core/model_version_pipeline_run.py +3 -1
  109. zenml/models/v2/core/pipeline.py +3 -1
  110. zenml/models/v2/core/pipeline_run.py +24 -3
  111. zenml/models/v2/core/run_metadata.py +2 -2
  112. zenml/models/v2/core/run_template.py +3 -1
  113. zenml/models/v2/core/stack.py +7 -3
  114. zenml/models/v2/core/step_run.py +58 -14
  115. zenml/models/v2/misc/auth_models.py +11 -2
  116. zenml/models/v2/misc/server_models.py +2 -4
  117. zenml/orchestrators/base_orchestrator.py +41 -4
  118. zenml/orchestrators/input_utils.py +52 -36
  119. zenml/orchestrators/step_launcher.py +50 -171
  120. zenml/orchestrators/step_run_utils.py +574 -0
  121. zenml/orchestrators/step_runner.py +83 -120
  122. zenml/orchestrators/utils.py +46 -180
  123. zenml/pipelines/__init__.py +3 -16
  124. zenml/{new/pipelines → pipelines}/pipeline_context.py +3 -18
  125. zenml/pipelines/pipeline_decorator.py +34 -60
  126. zenml/{new/pipelines/pipeline.py → pipelines/pipeline_definition.py} +210 -207
  127. zenml/{new/pipelines → pipelines}/run_utils.py +11 -10
  128. zenml/services/local/local_daemon_entrypoint.py +4 -4
  129. zenml/services/service.py +2 -2
  130. zenml/stack/stack.py +3 -108
  131. zenml/stack/stack_component.py +2 -78
  132. zenml/stack/utils.py +26 -14
  133. zenml/stack_deployments/aws_stack_deployment.py +3 -0
  134. zenml/step_operators/step_operator_entrypoint_configuration.py +1 -1
  135. zenml/steps/__init__.py +3 -9
  136. zenml/steps/base_step.py +25 -267
  137. zenml/steps/entrypoint_function_utils.py +2 -80
  138. zenml/{new/steps → steps}/step_context.py +12 -66
  139. zenml/steps/step_decorator.py +42 -89
  140. zenml/steps/step_invocation.py +16 -60
  141. zenml/steps/utils.py +4 -23
  142. zenml/utils/dashboard_utils.py +16 -51
  143. zenml/utils/materializer_utils.py +1 -1
  144. zenml/utils/requirements_utils.py +71 -0
  145. zenml/utils/singleton.py +15 -3
  146. zenml/utils/source_utils.py +39 -2
  147. zenml/utils/typing_utils.py +8 -28
  148. zenml/utils/visualization_utils.py +1 -1
  149. zenml/zen_server/auth.py +44 -39
  150. zenml/zen_server/dashboard/assets/{404-Y50hSt65.js → 404-DT4QRUqN.js} +1 -1
  151. zenml/zen_server/dashboard/assets/@radix-DP6vWzyx.js +85 -0
  152. zenml/zen_server/dashboard/assets/@react-router-BMhZulnd.js +29 -0
  153. zenml/zen_server/dashboard/assets/@reactflow-8U9qNlMR.js +17 -0
  154. zenml/zen_server/dashboard/assets/@tanstack-BUCbhJyH.js +22 -0
  155. zenml/zen_server/dashboard/assets/{AlertDialogDropdownItem-xLR9a1iw.js → AlertDialogDropdownItem-C6N2rGrB.js} +1 -1
  156. zenml/zen_server/dashboard/assets/{CodeSnippet-IxXNxUDa.js → CodeSnippet-CqybNv0k.js} +1 -1
  157. zenml/zen_server/dashboard/assets/{CollapsibleCard-BhutZbBL.js → CollapsibleCard-0r_8G2Lj.js} +1 -1
  158. zenml/zen_server/dashboard/assets/{Commands-Bf-rd1z8.js → Commands-BDjgBQKi.js} +1 -1
  159. zenml/zen_server/dashboard/assets/ComponentBadge-DUiEYJHu.js +1 -0
  160. zenml/zen_server/dashboard/assets/ComponentFallbackDialog-BFoH5K4V.js +1 -0
  161. zenml/zen_server/dashboard/assets/ComponentIcon-CAIoUis2.js +1 -0
  162. zenml/zen_server/dashboard/assets/{CopyButton-DcFHidFJ.js → CopyButton-C745BrKi.js} +1 -1
  163. zenml/zen_server/dashboard/assets/{CsvVizualization-QSbjrfxw.js → CsvVizualization-PpAq0CeZ.js} +5 -5
  164. zenml/zen_server/dashboard/assets/{DialogItem-Cd3HqST4.js → DialogItem-DcVCZEew.js} +1 -1
  165. zenml/zen_server/dashboard/assets/{DisplayDate-DkCy54Bp.js → DisplayDate-BeXgUG_C.js} +1 -1
  166. zenml/zen_server/dashboard/assets/{EmptyState-Cs3DEmso.js → EmptyState-DeK7H4pr.js} +1 -1
  167. zenml/zen_server/dashboard/assets/{Error-BhwdmqK7.js → Error-BMlzibXj.js} +1 -1
  168. zenml/zen_server/dashboard/assets/{Helpbox-0pBpTwTm.js → Helpbox-BLf40fLV.js} +1 -1
  169. zenml/zen_server/dashboard/assets/{Infobox-BTK_EUKT.js → Infobox-BwisKifi.js} +1 -1
  170. zenml/zen_server/dashboard/assets/{InlineAvatar-CA3DFMcM.js → InlineAvatar-jEgodSgX.js} +1 -1
  171. zenml/zen_server/dashboard/assets/{Lock-CmIn0szs.js → Lock-3lLt1ih0.js} +1 -1
  172. zenml/zen_server/dashboard/assets/MarkdownVisualization-8O9kTr-2.js +14 -0
  173. zenml/zen_server/dashboard/assets/{NumberBox-CrN0_kqI.js → NumberBox-T9eELfLZ.js} +1 -1
  174. zenml/zen_server/dashboard/assets/{Partials-QLOZw624.js → Partials-YPBB3V4q.js} +1 -1
  175. zenml/zen_server/dashboard/assets/{PasswordChecker-DE71J_3F.js → PasswordChecker-CW0kqY0W.js} +1 -1
  176. zenml/zen_server/dashboard/assets/{ProviderIcon-C16CCIN4.js → ProviderIcon-Bb3Xha5A.js} +1 -1
  177. zenml/zen_server/dashboard/assets/{ProviderRadio-D3FuCHf3.js → ProviderRadio-BROY1700.js} +1 -1
  178. zenml/zen_server/dashboard/assets/RunSelector-DCiL3M1c.js +1 -0
  179. zenml/zen_server/dashboard/assets/SearchField-DfUiGFVd.js +1 -0
  180. zenml/zen_server/dashboard/assets/{SecretTooltip-BaMwHF-Q.js → SecretTooltip-C_qByGWB.js} +1 -1
  181. zenml/zen_server/dashboard/assets/{SetPassword-DuIC65H9.js → SetPassword-7pRB00El.js} +1 -1
  182. zenml/zen_server/dashboard/assets/{Tick-DJTCF0Re.js → Tick-CykQFPj2.js} +1 -1
  183. zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-CUm-DMpw.js → UpdatePasswordSchemas-DckMEkFf.js} +1 -1
  184. zenml/zen_server/dashboard/assets/{UsageReason-CKw0juLF.js → UsageReason-DVceN14P.js} +1 -1
  185. zenml/zen_server/dashboard/assets/{WizardFooter-Cv9ApYWU.js → WizardFooter-CW0Cvd70.js} +1 -1
  186. zenml/zen_server/dashboard/assets/{check-circle-DOoS4yhF.js → check-circle-Dwxliy1Z.js} +1 -1
  187. zenml/zen_server/dashboard/assets/{chevron-down-Cwb-W_B_.js → chevron-down-8wLBS5pQ.js} +1 -1
  188. zenml/zen_server/dashboard/assets/{chevron-right-double-c9H46Kl8.js → chevron-right-double-DoD8iXWM.js} +1 -1
  189. zenml/zen_server/dashboard/assets/{cloud-only-BB4BVa6E.js → cloud-only-B-s_HMDm.js} +1 -1
  190. zenml/zen_server/dashboard/assets/{code-browser-BJYErIjr.js → code-browser-CZUQs3Wa.js} +1 -1
  191. zenml/zen_server/dashboard/assets/{copy-CaGlDsUy.js → copy-CaSMXwiU.js} +1 -1
  192. zenml/zen_server/dashboard/assets/{create-stack-F29xAUEx.js → create-stack-CEmaPZ4c.js} +1 -1
  193. zenml/zen_server/dashboard/assets/delete-run-D-LKbGyz.js +1 -0
  194. zenml/zen_server/dashboard/assets/{docker-BFAFXr2_.js → docker-BFNgg-z3.js} +1 -1
  195. zenml/zen_server/dashboard/assets/{dots-horizontal-C6K59vUm.js → dots-horizontal-DK5Duzx4.js} +1 -1
  196. zenml/zen_server/dashboard/assets/{form-schemas-BKXwSDK2.js → form-schemas-1AyOCx90.js} +1 -1
  197. zenml/zen_server/dashboard/assets/{gcp-Dj6ntk0L.js → gcp-7M2Yf3ZK.js} +1 -1
  198. zenml/zen_server/dashboard/assets/{help-CwN931fX.js → help-Dam461dC.js} +1 -1
  199. zenml/zen_server/dashboard/assets/{index-5GJ5ysEZ.js → index-BVJ8n2-j.js} +1 -1
  200. zenml/zen_server/dashboard/assets/index-Bpmj40BI.js +1 -0
  201. zenml/zen_server/dashboard/assets/index-CbU4Ln_E.css +1 -0
  202. zenml/zen_server/dashboard/assets/{index-D-mtoBj3.js → index-DKPhqP2B.js} +1 -1
  203. zenml/zen_server/dashboard/assets/index-QQb7wQEC.js +55 -0
  204. zenml/zen_server/dashboard/assets/index.esm-cuVep_NJ.js +1 -0
  205. zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-BLGc9T1a.woff2 +0 -0
  206. zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-ZzOtrSSW.woff +0 -0
  207. zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-D4Vwzodn.woff2 +0 -0
  208. zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-DH2hs3aW.woff +0 -0
  209. zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-BGBWG807.woff2 +0 -0
  210. zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-BuzJQFbW.woff +0 -0
  211. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-BPnxn4xp.woff +0 -0
  212. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-Dc4VJyIJ.woff2 +0 -0
  213. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-BShVwWPj.woff2 +0 -0
  214. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-CUiC4oBV.woff +0 -0
  215. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-Bt9VVOA-.woff +0 -0
  216. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-CaqZN2hq.woff2 +0 -0
  217. zenml/zen_server/dashboard/assets/inter-greek-400-normal-BZzXV7-1.woff +0 -0
  218. zenml/zen_server/dashboard/assets/inter-greek-400-normal-DxZsaF_h.woff2 +0 -0
  219. zenml/zen_server/dashboard/assets/inter-greek-500-normal-CeQXL5ds.woff2 +0 -0
  220. zenml/zen_server/dashboard/assets/inter-greek-500-normal-d_eO-yCQ.woff +0 -0
  221. zenml/zen_server/dashboard/assets/inter-greek-600-normal-CwicyhtI.woff +0 -0
  222. zenml/zen_server/dashboard/assets/inter-greek-600-normal-Dhlb-90d.woff2 +0 -0
  223. zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-Bput3-QP.woff2 +0 -0
  224. zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-DCpCPQOf.woff +0 -0
  225. zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-B6guLgqG.woff2 +0 -0
  226. zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-M2hEX8vc.woff +0 -0
  227. zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-C9WLioJ8.woff +0 -0
  228. zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-Cnui8OiR.woff2 +0 -0
  229. zenml/zen_server/dashboard/assets/inter-latin-400-normal-BOOGhInR.woff2 +0 -0
  230. zenml/zen_server/dashboard/assets/inter-latin-400-normal-gitzw0hO.woff +0 -0
  231. zenml/zen_server/dashboard/assets/inter-latin-500-normal-D2bGa7uu.woff2 +0 -0
  232. zenml/zen_server/dashboard/assets/inter-latin-500-normal-deR1Tlfd.woff +0 -0
  233. zenml/zen_server/dashboard/assets/inter-latin-600-normal-B5cFAncS.woff +0 -0
  234. zenml/zen_server/dashboard/assets/inter-latin-600-normal-D273HNI0.woff2 +0 -0
  235. zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-C1t-h-pH.woff +0 -0
  236. zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-hnt3BR84.woff2 +0 -0
  237. zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-CIS2RHJS.woff2 +0 -0
  238. zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-UMdmhHu2.woff +0 -0
  239. zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-BnYJhD27.woff2 +0 -0
  240. zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-CAF0vJDd.woff +0 -0
  241. zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-BUNmGMP1.woff +0 -0
  242. zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
  243. zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
  244. zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-DQPw2Hwd.woff +0 -0
  245. zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
  246. zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-Cm6aH8_k.woff +0 -0
  247. zenml/zen_server/dashboard/assets/{kubernetes-BjbR6D-1.js → kubernetes--g7r02Zu.js} +1 -1
  248. zenml/zen_server/dashboard/assets/{layout-Dru15_XR.js → layout-DCSYN7-C.js} +1 -1
  249. zenml/zen_server/dashboard/assets/{link-external-BT2L8hAQ.js → link-external-CBEk6kEG.js} +1 -1
  250. zenml/zen_server/dashboard/assets/{login-mutation-ax6iL2Mb.js → login-mutation-DTcAFP1l.js} +1 -1
  251. zenml/zen_server/dashboard/assets/{logs-GiDJXbLS.js → logs-D5bdJGur.js} +1 -1
  252. zenml/zen_server/dashboard/assets/not-found-Cc-JkRH2.js +1 -0
  253. zenml/zen_server/dashboard/assets/{package-DYKZ5jKW.js → package-Cs35Szwh.js} +1 -1
  254. zenml/zen_server/dashboard/assets/{page-HkVBdZl6.js → page-9yplj5JT.js} +1 -1
  255. zenml/zen_server/dashboard/assets/{page-uORspyRu.js → page-B-y2XKIc.js} +1 -1
  256. zenml/zen_server/dashboard/assets/page-BBpOxVcY.js +1 -0
  257. zenml/zen_server/dashboard/assets/{page-BDg1F-Ug.js → page-BQQKaabe.js} +2 -2
  258. zenml/zen_server/dashboard/assets/page-BRInM1Lg.js +1 -0
  259. zenml/zen_server/dashboard/assets/{page-CvKnNK1S.js → page-BjjlMk7s.js} +1 -1
  260. zenml/zen_server/dashboard/assets/{page-BukXK1Aa.js → page-Bvd7YH2A.js} +1 -1
  261. zenml/zen_server/dashboard/assets/{page-DcTjHmYZ.js → page-C0N5q3l7.js} +1 -1
  262. zenml/zen_server/dashboard/assets/page-CT3Nep8W.js +1 -0
  263. zenml/zen_server/dashboard/assets/{page-DuqYMYmH.js → page-C_f47pBf.js} +1 -1
  264. zenml/zen_server/dashboard/assets/{page-DRfcRK1w.js → page-ClUVkl-O.js} +1 -1
  265. zenml/zen_server/dashboard/assets/page-Cmv8C_yM.js +3 -0
  266. zenml/zen_server/dashboard/assets/{page-p0BhSAWx.js → page-CyN2bdWG.js} +1 -1
  267. zenml/zen_server/dashboard/assets/page-CzzXH4fs.js +1 -0
  268. zenml/zen_server/dashboard/assets/{page-6mfzecin.js → page-DH_Z7iW1.js} +1 -1
  269. zenml/zen_server/dashboard/assets/{page-8kYmrh0B.js → page-DIOXwhiD.js} +1 -1
  270. zenml/zen_server/dashboard/assets/{page-BXarY9K2.js → page-DLixvR-7.js} +1 -1
  271. zenml/zen_server/dashboard/assets/page-DTlGjgnG.js +1 -0
  272. zenml/zen_server/dashboard/assets/page-Dbpl86h0.js +1 -0
  273. zenml/zen_server/dashboard/assets/{page-MAXyfXBq.js → page-Ddgy6kDS.js} +1 -1
  274. zenml/zen_server/dashboard/assets/page-DtCAfBLy.js +9 -0
  275. zenml/zen_server/dashboard/assets/{page-CKHNAq7z.js → page-Dx16z7nA.js} +1 -1
  276. zenml/zen_server/dashboard/assets/{page-DMSLXKGT.js → page-DzpVUZ8f.js} +1 -1
  277. zenml/zen_server/dashboard/assets/page-McUyYbo1.js +1 -0
  278. zenml/zen_server/dashboard/assets/{page-miU2rhYG.js → page-N4qoPHKb.js} +1 -1
  279. zenml/zen_server/dashboard/assets/page-T1P3RyAR.js +1 -0
  280. zenml/zen_server/dashboard/assets/{page-3qPX9WYH.js → page-bKaULTGG.js} +1 -1
  281. zenml/zen_server/dashboard/assets/page-sbXUJy9t.js +1 -0
  282. zenml/zen_server/dashboard/assets/{persist-CfJMar_k.js → persist-CP0JmYZ4.js} +1 -1
  283. zenml/zen_server/dashboard/assets/{persist-BxIR2XZs.js → persist-DNb5cdrU.js} +1 -1
  284. zenml/zen_server/dashboard/assets/{plus-Bc8eLSDM.js → plus-C9IxgN2M.js} +1 -1
  285. zenml/zen_server/dashboard/assets/{refresh-hfgWPeto.js → refresh-BVu22P_C.js} +1 -1
  286. zenml/zen_server/dashboard/assets/{rocket-SESCGQXm.js → rocket-CONEmRmB.js} +1 -1
  287. zenml/zen_server/dashboard/assets/{sharedSchema-vub0rii3.js → sharedSchema-TMLu-nYQ.js} +1 -1
  288. zenml/zen_server/dashboard/assets/stack-detail-query-xmYxSsUY.js +1 -0
  289. zenml/zen_server/dashboard/assets/{tick-circle-m-hJG8i9.js → tick-circle-CM1ZScbQ.js} +1 -1
  290. zenml/zen_server/dashboard/assets/{trash-DUWZWzse.js → trash-DkJHMOg7.js} +1 -1
  291. zenml/zen_server/dashboard/assets/{update-server-settings-mutation-FGVP7X2U.js → update-server-settings-mutation-DsU8cNVl.js} +1 -1
  292. zenml/zen_server/dashboard/assets/{url-CbAPzsmT.js → url-D5le3J4q.js} +1 -1
  293. zenml/zen_server/dashboard/assets/zod-D89GC_vc.js +1 -0
  294. zenml/zen_server/dashboard/index.html +7 -7
  295. zenml/zen_server/deploy/__init__.py +7 -16
  296. zenml/zen_server/deploy/base_provider.py +46 -73
  297. zenml/zen_server/deploy/{local → daemon}/__init__.py +3 -3
  298. zenml/zen_server/deploy/{local/local_provider.py → daemon/daemon_provider.py} +44 -63
  299. zenml/zen_server/deploy/{local/local_zen_server.py → daemon/daemon_zen_server.py} +50 -28
  300. zenml/zen_server/deploy/deployer.py +90 -171
  301. zenml/zen_server/deploy/deployment.py +20 -12
  302. zenml/zen_server/deploy/docker/docker_provider.py +9 -28
  303. zenml/zen_server/deploy/docker/docker_zen_server.py +19 -9
  304. zenml/zen_server/deploy/helm/Chart.yaml +1 -1
  305. zenml/zen_server/deploy/helm/README.md +2 -2
  306. zenml/zen_server/exceptions.py +11 -0
  307. zenml/zen_server/feature_gate/zenml_cloud_feature_gate.py +1 -1
  308. zenml/zen_server/jwt.py +9 -9
  309. zenml/zen_server/routers/artifact_version_endpoints.py +1 -1
  310. zenml/zen_server/routers/auth_endpoints.py +30 -8
  311. zenml/zen_server/routers/runs_endpoints.py +0 -28
  312. zenml/zen_server/routers/stack_components_endpoints.py +1 -1
  313. zenml/zen_server/routers/workspaces_endpoints.py +1 -1
  314. zenml/zen_server/template_execution/runner_entrypoint_configuration.py +7 -4
  315. zenml/zen_server/template_execution/utils.py +8 -63
  316. zenml/zen_server/utils.py +67 -69
  317. zenml/zen_server/zen_server_api.py +107 -17
  318. zenml/zen_stores/base_zen_store.py +4 -51
  319. zenml/zen_stores/migrations/versions/0.67.0_release.py +23 -0
  320. zenml/zen_stores/migrations/versions/0.68.0_release.py +23 -0
  321. zenml/zen_stores/migrations/versions/0.68.1_release.py +23 -0
  322. zenml/zen_stores/migrations/versions/1d8f30c54477_migrate_to_new_.py +124 -0
  323. zenml/zen_stores/migrations/versions/c22561cbb3a9_add_artifact_unique_constraints.py +86 -0
  324. zenml/zen_stores/rest_zen_store.py +325 -147
  325. zenml/zen_stores/schemas/api_key_schemas.py +9 -4
  326. zenml/zen_stores/schemas/artifact_schemas.py +21 -2
  327. zenml/zen_stores/schemas/artifact_visualization_schemas.py +1 -1
  328. zenml/zen_stores/schemas/component_schemas.py +49 -6
  329. zenml/zen_stores/schemas/device_schemas.py +9 -4
  330. zenml/zen_stores/schemas/flavor_schemas.py +1 -1
  331. zenml/zen_stores/schemas/model_schemas.py +1 -1
  332. zenml/zen_stores/schemas/pipeline_run_schemas.py +12 -4
  333. zenml/zen_stores/schemas/service_schemas.py +1 -1
  334. zenml/zen_stores/schemas/step_run_schemas.py +3 -3
  335. zenml/zen_stores/schemas/trigger_schemas.py +1 -1
  336. zenml/zen_stores/sql_zen_store.py +422 -145
  337. zenml/zen_stores/template_utils.py +3 -1
  338. {zenml_nightly-0.66.0.dev20240927.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/METADATA +20 -18
  339. {zenml_nightly-0.66.0.dev20240927.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/RECORD +344 -506
  340. {zenml_nightly-0.66.0.dev20240927.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/WHEEL +1 -1
  341. zenml/api.py +0 -60
  342. zenml/cli/stack_recipes.py +0 -469
  343. zenml/lineage_graph/__init__.py +0 -34
  344. zenml/lineage_graph/lineage_graph.py +0 -244
  345. zenml/lineage_graph/node/__init__.py +0 -32
  346. zenml/lineage_graph/node/artifact_node.py +0 -51
  347. zenml/lineage_graph/node/step_node.py +0 -41
  348. zenml/model/model_version.py +0 -38
  349. zenml/new/pipelines/code_archive.py +0 -157
  350. zenml/new/pipelines/pipeline_decorator.py +0 -118
  351. zenml/new/steps/step_decorator.py +0 -176
  352. zenml/pipelines/base_pipeline.py +0 -273
  353. zenml/post_execution/__init__.py +0 -30
  354. zenml/post_execution/pipeline.py +0 -55
  355. zenml/post_execution/pipeline_run.py +0 -55
  356. zenml/services/terraform/__init__.py +0 -14
  357. zenml/services/terraform/terraform_service.py +0 -441
  358. zenml/steps/external_artifact.py +0 -26
  359. zenml/steps/step_environment.py +0 -108
  360. zenml/steps/step_output.py +0 -36
  361. zenml/utils/mlstacks_utils.py +0 -635
  362. zenml/utils/terraform_utils.py +0 -43
  363. zenml/zen_server/dashboard/assets/@radix-DnFH_oo1.js +0 -85
  364. zenml/zen_server/dashboard/assets/@react-router-APVeuk-U.js +0 -29
  365. zenml/zen_server/dashboard/assets/@reactflow-ytavUpwh.js +0 -17
  366. zenml/zen_server/dashboard/assets/@tanstack-QbMbTrh5.js +0 -22
  367. zenml/zen_server/dashboard/assets/ComponentBadge-gKR1OIwG.js +0 -1
  368. zenml/zen_server/dashboard/assets/ExecutionStatus-D6r6aK8J.js +0 -1
  369. zenml/zen_server/dashboard/assets/MarkdownVisualization-DS05sfBm.js +0 -14
  370. zenml/zen_server/dashboard/assets/SearchField-BzmfxS0L.js +0 -1
  371. zenml/zen_server/dashboard/assets/all-pipeline-runs-query-BA3R2Sey.js +0 -1
  372. zenml/zen_server/dashboard/assets/delete-run-CP0pcJ3U.js +0 -1
  373. zenml/zen_server/dashboard/assets/index-BhJ6ZJxv.css +0 -1
  374. zenml/zen_server/dashboard/assets/index-Ci0nJ8EZ.js +0 -55
  375. zenml/zen_server/dashboard/assets/index.esm-BE1uqCX5.js +0 -1
  376. zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-Df6ckaLK.woff2 +0 -0
  377. zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-JrS_4yms.woff +0 -0
  378. zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-BRrLR67x.woff2 +0 -0
  379. zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-DskEQOpE.woff +0 -0
  380. zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-DDpWG8g5.woff2 +0 -0
  381. zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-iz1--dBq.woff +0 -0
  382. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-CzG7Kr3z.woff +0 -0
  383. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-tyfMZHQw.woff2 +0 -0
  384. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-DOnSzjnx.woff2 +0 -0
  385. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-Xebo2OyJ.woff +0 -0
  386. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-DpA2xaRd.woff2 +0 -0
  387. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-KAwcVx6H.woff +0 -0
  388. zenml/zen_server/dashboard/assets/inter-greek-400-normal-DQXyrmoy.woff2 +0 -0
  389. zenml/zen_server/dashboard/assets/inter-greek-400-normal-DvIPHDQ7.woff +0 -0
  390. zenml/zen_server/dashboard/assets/inter-greek-500-normal-BjpBGs91.woff +0 -0
  391. zenml/zen_server/dashboard/assets/inter-greek-500-normal-CmOavsDc.woff2 +0 -0
  392. zenml/zen_server/dashboard/assets/inter-greek-600-normal-B-l8Lzzd.woff2 +0 -0
  393. zenml/zen_server/dashboard/assets/inter-greek-600-normal-BLZsI-P3.woff +0 -0
  394. zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-CIdlr5YK.woff2 +0 -0
  395. zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-_Rr29XE2.woff +0 -0
  396. zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-2pdUafRD.woff2 +0 -0
  397. zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-Dtavx3qw.woff +0 -0
  398. zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-BmtRFZgT.woff +0 -0
  399. zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-CkBLDEl_.woff2 +0 -0
  400. zenml/zen_server/dashboard/assets/inter-latin-400-normal-BT1H-PT_.woff2 +0 -0
  401. zenml/zen_server/dashboard/assets/inter-latin-400-normal-Cdi8t5Mu.woff +0 -0
  402. zenml/zen_server/dashboard/assets/inter-latin-500-normal-D4I8BKCx.woff +0 -0
  403. zenml/zen_server/dashboard/assets/inter-latin-500-normal-kWhwEdDH.woff2 +0 -0
  404. zenml/zen_server/dashboard/assets/inter-latin-600-normal-B2Ssfs8e.woff2 +0 -0
  405. zenml/zen_server/dashboard/assets/inter-latin-600-normal-Dbvh0wvx.woff +0 -0
  406. zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-8tIzm-yw.woff +0 -0
  407. zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-D3W-OpO-.woff2 +0 -0
  408. zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-B9u8Q_zH.woff2 +0 -0
  409. zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-SuUkSNTU.woff +0 -0
  410. zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-Dg0Bk0Yr.woff +0 -0
  411. zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-ao35dkSb.woff2 +0 -0
  412. zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-Cnt0N5Vm.woff2 +0 -0
  413. zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-DIOGfGLL.woff +0 -0
  414. zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-0i6yoQMg.woff +0 -0
  415. zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-5IkPJ6Nk.woff2 +0 -0
  416. zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-BQ_dbMbg.woff +0 -0
  417. zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-DjnxGF-L.woff2 +0 -0
  418. zenml/zen_server/dashboard/assets/not-found-DbjllLY_.js +0 -1
  419. zenml/zen_server/dashboard/assets/page-B1n7_W7z.js +0 -1
  420. zenml/zen_server/dashboard/assets/page-BZZhLo2u.js +0 -1
  421. zenml/zen_server/dashboard/assets/page-Bbf_oBjn.js +0 -1
  422. zenml/zen_server/dashboard/assets/page-BjjuBvZG.js +0 -9
  423. zenml/zen_server/dashboard/assets/page-CHaQkFK5.js +0 -1
  424. zenml/zen_server/dashboard/assets/page-CS0SYFK8.js +0 -1
  425. zenml/zen_server/dashboard/assets/page-DGM1CbYT.js +0 -2
  426. zenml/zen_server/dashboard/assets/page-DOmIZ2ra.js +0 -1
  427. zenml/zen_server/dashboard/assets/page-DYVmJ9_w.js +0 -3
  428. zenml/zen_server/dashboard/assets/page-Dwow2doB.js +0 -1
  429. zenml/zen_server/dashboard/assets/stack-detail-query-DQcyzG-2.js +0 -1
  430. zenml/zen_server/dashboard/assets/zod-uFd1wBcd.js +0 -1
  431. zenml/zen_server/dashboard_legacy/_redirects +0 -1
  432. zenml/zen_server/dashboard_legacy/asset-manifest.json +0 -131
  433. zenml/zen_server/dashboard_legacy/favicon.ico +0 -0
  434. zenml/zen_server/dashboard_legacy/index.html +0 -1
  435. zenml/zen_server/dashboard_legacy/manifest.json +0 -25
  436. zenml/zen_server/dashboard_legacy/precache-manifest.6d320abb70db612019dda6c4948e7a90.js +0 -462
  437. zenml/zen_server/dashboard_legacy/robots.txt +0 -2
  438. zenml/zen_server/dashboard_legacy/service-worker.js +0 -39
  439. zenml/zen_server/dashboard_legacy/static/css/2.5b37d44a.chunk.css +0 -16
  440. zenml/zen_server/dashboard_legacy/static/css/2.5b37d44a.chunk.css.map +0 -1
  441. zenml/zen_server/dashboard_legacy/static/css/main.e79dff04.chunk.css +0 -2
  442. zenml/zen_server/dashboard_legacy/static/css/main.e79dff04.chunk.css.map +0 -1
  443. zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js +0 -3
  444. zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js.LICENSE.txt +0 -95
  445. zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js.map +0 -1
  446. zenml/zen_server/dashboard_legacy/static/js/main.fa9299d5.chunk.js +0 -2
  447. zenml/zen_server/dashboard_legacy/static/js/main.fa9299d5.chunk.js.map +0 -1
  448. zenml/zen_server/dashboard_legacy/static/js/runtime-main.bfca2edd.js +0 -2
  449. zenml/zen_server/dashboard_legacy/static/js/runtime-main.bfca2edd.js.map +0 -1
  450. zenml/zen_server/dashboard_legacy/static/media/AlertTriangle.28aee535.svg +0 -5
  451. zenml/zen_server/dashboard_legacy/static/media/ArrowSquareOut.abfb9bc7.svg +0 -5
  452. zenml/zen_server/dashboard_legacy/static/media/Back.86c23a22.svg +0 -4
  453. zenml/zen_server/dashboard_legacy/static/media/BookOpen.5cb101ff.svg +0 -4
  454. zenml/zen_server/dashboard_legacy/static/media/BoundingBox.1eb98717.svg +0 -10
  455. zenml/zen_server/dashboard_legacy/static/media/Burger.9b1c67d7.svg +0 -3
  456. zenml/zen_server/dashboard_legacy/static/media/Cached.2381fb8d.svg +0 -1
  457. zenml/zen_server/dashboard_legacy/static/media/Calendar.356e11c7.svg +0 -3
  458. zenml/zen_server/dashboard_legacy/static/media/ChartBarHorizontal.0247447b.svg +0 -6
  459. zenml/zen_server/dashboard_legacy/static/media/ChartLine.0d79e18d.svg +0 -4
  460. zenml/zen_server/dashboard_legacy/static/media/ChatDots.2e1c9211.svg +0 -6
  461. zenml/zen_server/dashboard_legacy/static/media/Check.dad6beb2.svg +0 -3
  462. zenml/zen_server/dashboard_legacy/static/media/CheckCircleFilled.c19566d0.svg +0 -3
  463. zenml/zen_server/dashboard_legacy/static/media/Checkbox.af50e31e.svg +0 -3
  464. zenml/zen_server/dashboard_legacy/static/media/ChevronDown.f860ce32.svg +0 -3
  465. zenml/zen_server/dashboard_legacy/static/media/ChevronDownLight.6642d756.svg +0 -3
  466. zenml/zen_server/dashboard_legacy/static/media/ChevronLeft.f6edfcdb.svg +0 -3
  467. zenml/zen_server/dashboard_legacy/static/media/CircleCheck.f98fd6ca.svg +0 -1
  468. zenml/zen_server/dashboard_legacy/static/media/Clock.ffc9de95.svg +0 -3
  469. zenml/zen_server/dashboard_legacy/static/media/Close.74e9efbc.svg +0 -5
  470. zenml/zen_server/dashboard_legacy/static/media/CloseWithBorder.6960930a.svg +0 -3
  471. zenml/zen_server/dashboard_legacy/static/media/CloseWithoutBorder.cd6f71df.svg +0 -3
  472. zenml/zen_server/dashboard_legacy/static/media/CloudArrowUp.0aecb235.svg +0 -6
  473. zenml/zen_server/dashboard_legacy/static/media/Code.ef0f33b5.svg +0 -3
  474. zenml/zen_server/dashboard_legacy/static/media/Config.0be63f8a.svg +0 -1
  475. zenml/zen_server/dashboard_legacy/static/media/Connector.9fd46ef1.svg +0 -10
  476. zenml/zen_server/dashboard_legacy/static/media/Copy.36e2112a.svg +0 -1
  477. zenml/zen_server/dashboard_legacy/static/media/Dashboard.d05787e0.svg +0 -3
  478. zenml/zen_server/dashboard_legacy/static/media/Data.b1c3b5f8.svg +0 -3
  479. zenml/zen_server/dashboard_legacy/static/media/Delete.3c361b28.svg +0 -8
  480. zenml/zen_server/dashboard_legacy/static/media/Docs.7541d478.svg +0 -7
  481. zenml/zen_server/dashboard_legacy/static/media/Download.fba04d87.svg +0 -5
  482. zenml/zen_server/dashboard_legacy/static/media/Edit.490eb294.svg +0 -6
  483. zenml/zen_server/dashboard_legacy/static/media/EmptyRightArrow.23749d01.svg +0 -3
  484. zenml/zen_server/dashboard_legacy/static/media/Example.6396cd37.svg +0 -5
  485. zenml/zen_server/dashboard_legacy/static/media/Extension.1394cd4a.svg +0 -3
  486. zenml/zen_server/dashboard_legacy/static/media/Eye.d9e4ee62.svg +0 -4
  487. zenml/zen_server/dashboard_legacy/static/media/Failed.0213c1a0.svg +0 -1
  488. zenml/zen_server/dashboard_legacy/static/media/FileText.1f15bacd.svg +0 -7
  489. zenml/zen_server/dashboard_legacy/static/media/Filter.ab6b9c0d.svg +0 -3
  490. zenml/zen_server/dashboard_legacy/static/media/Folders.12b29887.svg +0 -5
  491. zenml/zen_server/dashboard_legacy/static/media/FunnelFill.6df4c143.svg +0 -3
  492. zenml/zen_server/dashboard_legacy/static/media/GitCommit.7dd9c2aa.svg +0 -5
  493. zenml/zen_server/dashboard_legacy/static/media/GitHub_Logo.cefc2023.png +0 -0
  494. zenml/zen_server/dashboard_legacy/static/media/Graph.2c63a892.svg +0 -11
  495. zenml/zen_server/dashboard_legacy/static/media/History.08329240.svg +0 -3
  496. zenml/zen_server/dashboard_legacy/static/media/Home.0843b0d5.svg +0 -3
  497. zenml/zen_server/dashboard_legacy/static/media/ImageBuilder.ea762d9c.svg +0 -6
  498. zenml/zen_server/dashboard_legacy/static/media/InProgress.304a0edc.svg +0 -1
  499. zenml/zen_server/dashboard_legacy/static/media/Info.9fe10c5c.svg +0 -3
  500. zenml/zen_server/dashboard_legacy/static/media/KeyboardReturn.491afbe3.svg +0 -3
  501. zenml/zen_server/dashboard_legacy/static/media/Link.72bbb55d.svg +0 -4
  502. zenml/zen_server/dashboard_legacy/static/media/Lock.30f5e1fe.svg +0 -5
  503. zenml/zen_server/dashboard_legacy/static/media/Lock2.a769ea52.svg +0 -3
  504. zenml/zen_server/dashboard_legacy/static/media/LockKey.92f21621.svg +0 -6
  505. zenml/zen_server/dashboard_legacy/static/media/Logs.8bf4d005.svg +0 -5
  506. zenml/zen_server/dashboard_legacy/static/media/MinusCircle.4188f418.svg +0 -4
  507. zenml/zen_server/dashboard_legacy/static/media/ModelRegistry.f0de050a.svg +0 -6
  508. zenml/zen_server/dashboard_legacy/static/media/MultiUser.a2ba7c67.svg +0 -10
  509. zenml/zen_server/dashboard_legacy/static/media/PaginationFirst.92628634.svg +0 -4
  510. zenml/zen_server/dashboard_legacy/static/media/PaginationLast.00d3c732.svg +0 -4
  511. zenml/zen_server/dashboard_legacy/static/media/PaginationNext.86158845.svg +0 -3
  512. zenml/zen_server/dashboard_legacy/static/media/PaginationPrev.60c18a88.svg +0 -3
  513. zenml/zen_server/dashboard_legacy/static/media/Pen.f2d831d4.svg +0 -6
  514. zenml/zen_server/dashboard_legacy/static/media/PhotoCamera.179d6d4c.svg +0 -3
  515. zenml/zen_server/dashboard_legacy/static/media/Pipeline.30d298b0.svg +0 -7
  516. zenml/zen_server/dashboard_legacy/static/media/Plus.5aa1c16b.svg +0 -3
  517. zenml/zen_server/dashboard_legacy/static/media/PlusCircle.92d860dd.svg +0 -5
  518. zenml/zen_server/dashboard_legacy/static/media/Repositories.71a36b8c.svg +0 -3
  519. zenml/zen_server/dashboard_legacy/static/media/RightArrow.f30d3871.svg +0 -29
  520. zenml/zen_server/dashboard_legacy/static/media/Rocket.63bf7b9d.svg +0 -3
  521. zenml/zen_server/dashboard_legacy/static/media/RocketLaunch.1bff2b59.svg +0 -6
  522. zenml/zen_server/dashboard_legacy/static/media/Rubik-Medium.c87313aa.ttf +0 -0
  523. zenml/zen_server/dashboard_legacy/static/media/Rubik-Regular.b3d0902b.ttf +0 -0
  524. zenml/zen_server/dashboard_legacy/static/media/Run.daec4fb2.svg +0 -6
  525. zenml/zen_server/dashboard_legacy/static/media/Search.d1afcce5.svg +0 -4
  526. zenml/zen_server/dashboard_legacy/static/media/Settings.59ca73ae.svg +0 -4
  527. zenml/zen_server/dashboard_legacy/static/media/Share2.46c3ff66.svg +0 -3
  528. zenml/zen_server/dashboard_legacy/static/media/SignOut.6aa718c5.svg +0 -3
  529. zenml/zen_server/dashboard_legacy/static/media/SimplePlus.5cf7ec20.svg +0 -3
  530. zenml/zen_server/dashboard_legacy/static/media/SingleUser.bef3a095.svg +0 -4
  531. zenml/zen_server/dashboard_legacy/static/media/SourceCodePro-Regular.b484b32f.ttf +0 -0
  532. zenml/zen_server/dashboard_legacy/static/media/Stack.19b604ac.svg +0 -5
  533. zenml/zen_server/dashboard_legacy/static/media/StackComponent.b1ba90b5.svg +0 -4
  534. zenml/zen_server/dashboard_legacy/static/media/Star.f0c25022.svg +0 -9
  535. zenml/zen_server/dashboard_legacy/static/media/StarOutline.94ca8cd9.svg +0 -3
  536. zenml/zen_server/dashboard_legacy/static/media/Storefront.4b4796fe.svg +0 -3
  537. zenml/zen_server/dashboard_legacy/static/media/Stream.543e3039.svg +0 -3
  538. zenml/zen_server/dashboard_legacy/static/media/SupportAgent.510ddf1f.svg +0 -8
  539. zenml/zen_server/dashboard_legacy/static/media/Table.77033750.svg +0 -6
  540. zenml/zen_server/dashboard_legacy/static/media/Tool.d5785486.svg +0 -3
  541. zenml/zen_server/dashboard_legacy/static/media/UserPlus.741a99d7.svg +0 -6
  542. zenml/zen_server/dashboard_legacy/static/media/Verified.0625b2a0.svg +0 -3
  543. zenml/zen_server/dashboard_legacy/static/media/addNew.4fb6c939.svg +0 -8
  544. zenml/zen_server/dashboard_legacy/static/media/arrowClose.cbd53f3f.svg +0 -3
  545. zenml/zen_server/dashboard_legacy/static/media/arrowOpen.6ceef0af.svg +0 -3
  546. zenml/zen_server/dashboard_legacy/static/media/check_small.30bc0138.svg +0 -3
  547. zenml/zen_server/dashboard_legacy/static/media/circleArrowSideClose.98d6013e.svg +0 -18
  548. zenml/zen_server/dashboard_legacy/static/media/circleArrowSideOpen.63653df6.svg +0 -18
  549. zenml/zen_server/dashboard_legacy/static/media/image.104fd14b.png +0 -0
  550. zenml/zen_server/dashboard_legacy/static/media/imageAddIcon.e83004a9.svg +0 -7
  551. zenml/zen_server/dashboard_legacy/static/media/logo.93333e5c.svg +0 -1
  552. zenml/zen_server/dashboard_legacy/static/media/logo_small.4204397d.svg +0 -3
  553. zenml/zen_server/dashboard_legacy/static/media/logo_white.d4b4414e.svg +0 -20
  554. zenml/zen_server/dashboard_legacy/static/media/notConnected.5e2c8ea7.svg +0 -8
  555. zenml/zen_server/dashboard_legacy/static/media/plugin-fallback.72c294e6.svg +0 -6
  556. zenml/zen_server/dashboard_legacy/static/media/share.bcd998b0.svg +0 -5
  557. zenml/zen_server/dashboard_legacy/static/media/stars.08a9b19a.svg +0 -8
  558. zenml/zen_server/deploy/terraform/__init__.py +0 -41
  559. zenml/zen_server/deploy/terraform/providers/aws_provider.py +0 -61
  560. zenml/zen_server/deploy/terraform/providers/azure_provider.py +0 -59
  561. zenml/zen_server/deploy/terraform/providers/gcp_provider.py +0 -59
  562. zenml/zen_server/deploy/terraform/providers/terraform_provider.py +0 -331
  563. zenml/zen_server/deploy/terraform/recipes/aws/.gitignore +0 -8
  564. zenml/zen_server/deploy/terraform/recipes/aws/helm.tf +0 -20
  565. zenml/zen_server/deploy/terraform/recipes/aws/ingress.tf +0 -30
  566. zenml/zen_server/deploy/terraform/recipes/aws/outputs.tf +0 -7
  567. zenml/zen_server/deploy/terraform/recipes/aws/printf.cmd +0 -2
  568. zenml/zen_server/deploy/terraform/recipes/aws/sql.tf +0 -62
  569. zenml/zen_server/deploy/terraform/recipes/aws/terraform.tf +0 -44
  570. zenml/zen_server/deploy/terraform/recipes/aws/variables.tf +0 -167
  571. zenml/zen_server/deploy/terraform/recipes/aws/vpc.tf +0 -47
  572. zenml/zen_server/deploy/terraform/recipes/aws/zen_server.tf +0 -103
  573. zenml/zen_server/deploy/terraform/recipes/azure/.gitignore +0 -8
  574. zenml/zen_server/deploy/terraform/recipes/azure/helm.tf +0 -20
  575. zenml/zen_server/deploy/terraform/recipes/azure/ingress.tf +0 -30
  576. zenml/zen_server/deploy/terraform/recipes/azure/key_vault.tf +0 -73
  577. zenml/zen_server/deploy/terraform/recipes/azure/outputs.tf +0 -7
  578. zenml/zen_server/deploy/terraform/recipes/azure/printf.cmd +0 -2
  579. zenml/zen_server/deploy/terraform/recipes/azure/rg.tf +0 -36
  580. zenml/zen_server/deploy/terraform/recipes/azure/sql.tf +0 -65
  581. zenml/zen_server/deploy/terraform/recipes/azure/terraform.tf +0 -52
  582. zenml/zen_server/deploy/terraform/recipes/azure/variables.tf +0 -176
  583. zenml/zen_server/deploy/terraform/recipes/azure/zen_server.tf +0 -103
  584. zenml/zen_server/deploy/terraform/recipes/gcp/.gitignore +0 -8
  585. zenml/zen_server/deploy/terraform/recipes/gcp/helm.tf +0 -20
  586. zenml/zen_server/deploy/terraform/recipes/gcp/ingress.tf +0 -30
  587. zenml/zen_server/deploy/terraform/recipes/gcp/outputs.tf +0 -7
  588. zenml/zen_server/deploy/terraform/recipes/gcp/printf.cmd +0 -2
  589. zenml/zen_server/deploy/terraform/recipes/gcp/sql.tf +0 -64
  590. zenml/zen_server/deploy/terraform/recipes/gcp/terraform.tf +0 -44
  591. zenml/zen_server/deploy/terraform/recipes/gcp/variables.tf +0 -171
  592. zenml/zen_server/deploy/terraform/recipes/gcp/zen_server.tf +0 -114
  593. zenml/zen_server/deploy/terraform/terraform_zen_server.py +0 -246
  594. /zenml/{new/pipelines → pipelines}/build_utils.py +0 -0
  595. /zenml/{new/steps → steps}/decorated_step.py +0 -0
  596. {zenml_nightly-0.66.0.dev20240927.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/LICENSE +0 -0
  597. {zenml_nightly-0.66.0.dev20240927.dist-info → zenml_nightly-0.68.1.dev20241102.dist-info}/entry_points.txt +0 -0
@@ -37,6 +37,7 @@ from uuid import UUID
37
37
 
38
38
  import yaml
39
39
  from pydantic import ConfigDict, ValidationError
40
+ from typing_extensions import Self
40
41
 
41
42
  from zenml import constants
42
43
  from zenml.analytics.enums import AnalyticsEvent
@@ -65,10 +66,11 @@ from zenml.models import (
65
66
  PipelineRequest,
66
67
  PipelineResponse,
67
68
  PipelineRunResponse,
69
+ RunTemplateResponse,
68
70
  ScheduleRequest,
69
71
  )
70
- from zenml.new.pipelines import build_utils
71
- from zenml.new.pipelines.run_utils import (
72
+ from zenml.pipelines import build_utils
73
+ from zenml.pipelines.run_utils import (
72
74
  create_placeholder_run,
73
75
  deploy_pipeline,
74
76
  upload_notebook_cell_code_if_necessary,
@@ -99,6 +101,7 @@ if TYPE_CHECKING:
99
101
  from zenml.config.source import Source
100
102
  from zenml.model.lazy_load import ModelVersionDataLazyLoader
101
103
  from zenml.model.model import Model
104
+ from zenml.models import ArtifactVersionResponse
102
105
  from zenml.types import HookSpecification
103
106
 
104
107
  StepConfigurationUpdateOrDict = Union[
@@ -107,7 +110,6 @@ if TYPE_CHECKING:
107
110
 
108
111
  logger = get_logger(__name__)
109
112
 
110
- T = TypeVar("T", bound="Pipeline")
111
113
  F = TypeVar("F", bound=Callable[..., None])
112
114
 
113
115
 
@@ -128,6 +130,7 @@ class Pipeline:
128
130
  enable_artifact_visualization: Optional[bool] = None,
129
131
  enable_step_logs: Optional[bool] = None,
130
132
  settings: Optional[Mapping[str, "SettingsOrDict"]] = None,
133
+ tags: Optional[List[str]] = None,
131
134
  extra: Optional[Dict[str, Any]] = None,
132
135
  on_failure: Optional["HookSpecification"] = None,
133
136
  on_success: Optional["HookSpecification"] = None,
@@ -144,7 +147,8 @@ class Pipeline:
144
147
  enable_artifact_visualization: If artifact visualization should be
145
148
  enabled for this pipeline.
146
149
  enable_step_logs: If step logs should be enabled for this pipeline.
147
- settings: settings for this pipeline.
150
+ settings: Settings for this pipeline.
151
+ tags: Tags to apply to runs of this pipeline.
148
152
  extra: Extra configurations for this pipeline.
149
153
  on_failure: Callback function in event of failure of the step. Can
150
154
  be a function with a single argument of type `BaseException`, or
@@ -168,6 +172,7 @@ class Pipeline:
168
172
  enable_artifact_visualization=enable_artifact_visualization,
169
173
  enable_step_logs=enable_step_logs,
170
174
  settings=settings,
175
+ tags=tags,
171
176
  extra=extra,
172
177
  on_failure=on_failure,
173
178
  on_success=on_success,
@@ -279,19 +284,20 @@ class Pipeline:
279
284
  self.__suppress_warnings_flag__ = False
280
285
 
281
286
  def configure(
282
- self: T,
287
+ self,
283
288
  enable_cache: Optional[bool] = None,
284
289
  enable_artifact_metadata: Optional[bool] = None,
285
290
  enable_artifact_visualization: Optional[bool] = None,
286
291
  enable_step_logs: Optional[bool] = None,
287
292
  settings: Optional[Mapping[str, "SettingsOrDict"]] = None,
293
+ tags: Optional[List[str]] = None,
288
294
  extra: Optional[Dict[str, Any]] = None,
289
295
  on_failure: Optional["HookSpecification"] = None,
290
296
  on_success: Optional["HookSpecification"] = None,
291
297
  model: Optional["Model"] = None,
292
298
  parameters: Optional[Dict[str, Any]] = None,
293
299
  merge: bool = True,
294
- ) -> T:
300
+ ) -> Self:
295
301
  """Configures the pipeline.
296
302
 
297
303
  Configuration merging example:
@@ -312,6 +318,7 @@ class Pipeline:
312
318
  enabled for this pipeline.
313
319
  enable_step_logs: If step logs should be enabled for this pipeline.
314
320
  settings: settings for this pipeline.
321
+ tags: Tags to apply to runs of this pipeline.
315
322
  extra: Extra configurations for this pipeline.
316
323
  on_failure: Callback function in event of failure of the step. Can
317
324
  be a function with a single argument of type `BaseException`, or
@@ -340,6 +347,11 @@ class Pipeline:
340
347
  # string of on_success hook function to be used for this pipeline
341
348
  success_hook_source = resolve_and_validate_hook(on_success)
342
349
 
350
+ if merge and tags and self._configuration.tags:
351
+ # Merge tags explicitly here as the recursive update later only
352
+ # merges dicts
353
+ tags = self._configuration.tags + tags
354
+
343
355
  values = dict_utils.remove_none_values(
344
356
  {
345
357
  "enable_cache": enable_cache,
@@ -347,6 +359,7 @@ class Pipeline:
347
359
  "enable_artifact_visualization": enable_artifact_visualization,
348
360
  "enable_step_logs": enable_step_logs,
349
361
  "settings": settings,
362
+ "tags": tags,
350
363
  "extra": extra,
351
364
  "failure_hook_source": failure_hook_source,
352
365
  "success_hook_source": success_hook_source,
@@ -539,7 +552,7 @@ To avoid this consider setting pipeline parameters only in one place (config or
539
552
  code_repository=code_repository,
540
553
  )
541
554
 
542
- def _run(
555
+ def _create_deployment(
543
556
  self,
544
557
  *,
545
558
  run_name: Optional[str] = None,
@@ -557,8 +570,8 @@ To avoid this consider setting pipeline parameters only in one place (config or
557
570
  config_path: Optional[str] = None,
558
571
  unlisted: bool = False,
559
572
  prevent_build_reuse: bool = False,
560
- ) -> Optional[PipelineRunResponse]:
561
- """Runs the pipeline on the active stack.
573
+ ) -> PipelineDeploymentResponse:
574
+ """Create a pipeline deployment.
562
575
 
563
576
  Args:
564
577
  run_name: Name of the pipeline run.
@@ -585,175 +598,182 @@ To avoid this consider setting pipeline parameters only in one place (config or
585
598
  `DockerSettings.prevent_build_reuse` instead.
586
599
 
587
600
  Returns:
588
- Model of the pipeline run if running without a schedule, `None` if
589
- running with a schedule.
601
+ The pipeline deployment.
590
602
 
591
603
  Raises:
592
- ValueError: if the orchestrator doesn't support scheduling, but schedule was given
604
+ ValueError: If the orchestrator doesn't support scheduling, but a
605
+ schedule was given
593
606
  """
594
- if constants.SHOULD_PREVENT_PIPELINE_EXECUTION:
595
- # An environment variable was set to stop the execution of
596
- # pipelines. This is done to prevent execution of module-level
597
- # pipeline.run() calls when importing modules needed to run a step.
598
- logger.info(
599
- "Preventing execution of pipeline '%s'. If this is not "
600
- "intended behavior, make sure to unset the environment "
601
- "variable '%s'.",
602
- self.name,
603
- constants.ENV_ZENML_PREVENT_PIPELINE_EXECUTION,
604
- )
605
- return None
607
+ deployment, schedule, build = self._compile(
608
+ config_path=config_path,
609
+ run_name=run_name,
610
+ enable_cache=enable_cache,
611
+ enable_artifact_metadata=enable_artifact_metadata,
612
+ enable_artifact_visualization=enable_artifact_visualization,
613
+ enable_step_logs=enable_step_logs,
614
+ steps=step_configurations,
615
+ settings=settings,
616
+ schedule=schedule,
617
+ build=build,
618
+ extra=extra,
619
+ )
606
620
 
607
- logger.info(f"Initiating a new run for the pipeline: `{self.name}`.")
621
+ skip_pipeline_registration = constants.handle_bool_env_var(
622
+ constants.ENV_ZENML_SKIP_PIPELINE_REGISTRATION,
623
+ default=False,
624
+ )
608
625
 
609
- with track_handler(AnalyticsEvent.RUN_PIPELINE) as analytics_handler:
610
- deployment, schedule, build = self._compile(
611
- config_path=config_path,
612
- run_name=run_name,
613
- enable_cache=enable_cache,
614
- enable_artifact_metadata=enable_artifact_metadata,
615
- enable_artifact_visualization=enable_artifact_visualization,
616
- enable_step_logs=enable_step_logs,
617
- steps=step_configurations,
618
- settings=settings,
619
- schedule=schedule,
620
- build=build,
621
- extra=extra,
622
- )
626
+ register_pipeline = not (skip_pipeline_registration or unlisted)
623
627
 
624
- skip_pipeline_registration = constants.handle_bool_env_var(
625
- constants.ENV_ZENML_SKIP_PIPELINE_REGISTRATION,
626
- default=False,
627
- )
628
+ pipeline_id = None
629
+ if register_pipeline:
630
+ pipeline_id = self._register().id
628
631
 
629
- register_pipeline = not (skip_pipeline_registration or unlisted)
632
+ else:
633
+ logger.debug(f"Pipeline {self.name} is unlisted.")
634
+
635
+ stack = Client().active_stack
636
+ stack.validate()
637
+
638
+ schedule_id = None
639
+ if schedule:
640
+ if not stack.orchestrator.config.is_schedulable:
641
+ raise ValueError(
642
+ f"Stack {stack.name} does not support scheduling. "
643
+ "Not all orchestrator types support scheduling, "
644
+ "kindly consult with "
645
+ "https://docs.zenml.io/how-to/build-pipelines/schedule-a-pipeline "
646
+ "for details."
647
+ )
648
+ if schedule.name:
649
+ schedule_name = schedule.name
650
+ else:
651
+ schedule_name = format_name_template(
652
+ deployment.run_name_template
653
+ )
654
+ components = Client().active_stack_model.components
655
+ orchestrator = components[StackComponentType.ORCHESTRATOR][0]
656
+ schedule_model = ScheduleRequest(
657
+ workspace=Client().active_workspace.id,
658
+ user=Client().active_user.id,
659
+ pipeline_id=pipeline_id,
660
+ orchestrator_id=orchestrator.id,
661
+ name=schedule_name,
662
+ active=True,
663
+ cron_expression=schedule.cron_expression,
664
+ start_time=schedule.start_time,
665
+ end_time=schedule.end_time,
666
+ interval_second=schedule.interval_second,
667
+ catchup=schedule.catchup,
668
+ run_once_start_time=schedule.run_once_start_time,
669
+ )
670
+ schedule_id = Client().zen_store.create_schedule(schedule_model).id
671
+ logger.info(
672
+ f"Created schedule `{schedule_name}` for pipeline "
673
+ f"`{deployment.pipeline_configuration.name}`."
674
+ )
630
675
 
631
- pipeline_id = None
632
- if register_pipeline:
633
- pipeline_id = self._register().id
676
+ stack = Client().active_stack
677
+ stack.validate()
678
+ upload_notebook_cell_code_if_necessary(
679
+ deployment=deployment, stack=stack
680
+ )
634
681
 
635
- else:
636
- logger.debug(f"Pipeline {self.name} is unlisted.")
682
+ local_repo_context = (
683
+ code_repository_utils.find_active_code_repository()
684
+ )
685
+ code_repository = build_utils.verify_local_repository_context(
686
+ deployment=deployment, local_repo_context=local_repo_context
687
+ )
637
688
 
638
- stack = Client().active_stack
639
- stack.validate()
640
-
641
- schedule_id = None
642
- if schedule:
643
- if not stack.orchestrator.config.is_schedulable:
644
- raise ValueError(
645
- f"Stack {stack.name} does not support scheduling. "
646
- "Not all orchestrator types support scheduling, "
647
- "kindly consult with "
648
- "https://docs.zenml.io/how-to/build-pipelines/schedule-a-pipeline "
649
- "for details."
650
- )
651
- if schedule.name:
652
- schedule_name = schedule.name
653
- else:
654
- schedule_name = format_name_template(
655
- deployment.run_name_template
656
- )
657
- components = Client().active_stack_model.components
658
- orchestrator = components[StackComponentType.ORCHESTRATOR][0]
659
- schedule_model = ScheduleRequest(
660
- workspace=Client().active_workspace.id,
661
- user=Client().active_user.id,
662
- pipeline_id=pipeline_id,
663
- orchestrator_id=orchestrator.id,
664
- name=schedule_name,
665
- active=True,
666
- cron_expression=schedule.cron_expression,
667
- start_time=schedule.start_time,
668
- end_time=schedule.end_time,
669
- interval_second=schedule.interval_second,
670
- catchup=schedule.catchup,
671
- run_once_start_time=schedule.run_once_start_time,
672
- )
673
- schedule_id = (
674
- Client().zen_store.create_schedule(schedule_model).id
675
- )
676
- logger.info(
677
- f"Created schedule `{schedule_name}` for pipeline "
678
- f"`{deployment.pipeline_configuration.name}`."
679
- )
689
+ if prevent_build_reuse:
690
+ logger.warning(
691
+ "Passing `prevent_build_reuse=True` to "
692
+ "`pipeline.with_opitions(...)` is deprecated. Use "
693
+ "`DockerSettings.prevent_build_reuse` instead."
694
+ )
680
695
 
681
- stack = Client().active_stack
682
- stack.validate()
683
- upload_notebook_cell_code_if_necessary(
684
- deployment=deployment, stack=stack
696
+ build_model = build_utils.reuse_or_create_pipeline_build(
697
+ deployment=deployment,
698
+ pipeline_id=pipeline_id,
699
+ allow_build_reuse=not prevent_build_reuse,
700
+ build=build,
701
+ code_repository=code_repository,
702
+ )
703
+ build_id = build_model.id if build_model else None
704
+
705
+ code_reference = None
706
+ if local_repo_context and not local_repo_context.is_dirty:
707
+ source_root = source_utils.get_source_root()
708
+ subdirectory = (
709
+ Path(source_root)
710
+ .resolve()
711
+ .relative_to(local_repo_context.root)
685
712
  )
686
713
 
687
- local_repo_context = (
688
- code_repository_utils.find_active_code_repository()
714
+ code_reference = CodeReferenceRequest(
715
+ commit=local_repo_context.current_commit,
716
+ subdirectory=subdirectory.as_posix(),
717
+ code_repository=local_repo_context.code_repository_id,
689
718
  )
690
- code_repository = build_utils.verify_local_repository_context(
691
- deployment=deployment, local_repo_context=local_repo_context
719
+
720
+ code_path = None
721
+ if build_utils.should_upload_code(
722
+ deployment=deployment,
723
+ build=build_model,
724
+ code_reference=code_reference,
725
+ ):
726
+ code_archive = code_utils.CodeArchive(
727
+ root=source_utils.get_source_root()
692
728
  )
729
+ logger.info("Archiving pipeline code...")
730
+ code_path = code_utils.upload_code_if_necessary(code_archive)
731
+
732
+ request = PipelineDeploymentRequest(
733
+ user=Client().active_user.id,
734
+ workspace=Client().active_workspace.id,
735
+ stack=stack.id,
736
+ pipeline=pipeline_id,
737
+ build=build_id,
738
+ schedule=schedule_id,
739
+ code_reference=code_reference,
740
+ code_path=code_path,
741
+ **deployment.model_dump(),
742
+ )
743
+ return Client().zen_store.create_deployment(deployment=request)
693
744
 
694
- if prevent_build_reuse:
695
- logger.warning(
696
- "Passing `prevent_build_reuse=True` to "
697
- "`pipeline.with_opitions(...)` is deprecated. Use "
698
- "`DockerSettings.prevent_build_reuse` instead."
699
- )
745
+ def _run(
746
+ self,
747
+ ) -> Optional[PipelineRunResponse]:
748
+ """Runs the pipeline on the active stack.
700
749
 
701
- build_model = build_utils.reuse_or_create_pipeline_build(
702
- deployment=deployment,
703
- pipeline_id=pipeline_id,
704
- allow_build_reuse=not prevent_build_reuse,
705
- build=build,
706
- code_repository=code_repository,
750
+ Returns:
751
+ The pipeline run or `None` if running with a schedule.
752
+ """
753
+ if constants.SHOULD_PREVENT_PIPELINE_EXECUTION:
754
+ # An environment variable was set to stop the execution of
755
+ # pipelines. This is done to prevent execution of module-level
756
+ # pipeline.run() calls when importing modules needed to run a step.
757
+ logger.info(
758
+ "Preventing execution of pipeline '%s'. If this is not "
759
+ "intended behavior, make sure to unset the environment "
760
+ "variable '%s'.",
761
+ self.name,
762
+ constants.ENV_ZENML_PREVENT_PIPELINE_EXECUTION,
707
763
  )
708
- build_id = build_model.id if build_model else None
709
-
710
- code_reference = None
711
- if local_repo_context and not local_repo_context.is_dirty:
712
- source_root = source_utils.get_source_root()
713
- subdirectory = (
714
- Path(source_root)
715
- .resolve()
716
- .relative_to(local_repo_context.root)
717
- )
718
-
719
- code_reference = CodeReferenceRequest(
720
- commit=local_repo_context.current_commit,
721
- subdirectory=subdirectory.as_posix(),
722
- code_repository=local_repo_context.code_repository_id,
723
- )
764
+ return None
724
765
 
725
- code_path = None
726
- if build_utils.should_upload_code(
727
- deployment=deployment,
728
- build=build_model,
729
- code_reference=code_reference,
730
- ):
731
- code_archive = code_utils.CodeArchive(
732
- root=source_utils.get_source_root()
733
- )
734
- logger.info("Archiving pipeline code...")
735
- code_path = code_utils.upload_code_if_necessary(code_archive)
766
+ logger.info(f"Initiating a new run for the pipeline: `{self.name}`.")
736
767
 
737
- deployment_request = PipelineDeploymentRequest(
738
- user=Client().active_user.id,
739
- workspace=Client().active_workspace.id,
740
- stack=stack.id,
741
- pipeline=pipeline_id,
742
- build=build_id,
743
- schedule=schedule_id,
744
- code_reference=code_reference,
745
- code_path=code_path,
746
- **deployment.model_dump(),
747
- )
748
- deployment_model = Client().zen_store.create_deployment(
749
- deployment=deployment_request
750
- )
768
+ with track_handler(AnalyticsEvent.RUN_PIPELINE) as analytics_handler:
769
+ stack = Client().active_stack
770
+ deployment = self._create_deployment(**self._run_args)
751
771
 
752
- self.log_pipeline_deployment_metadata(deployment_model)
753
- run = create_placeholder_run(deployment=deployment_model)
772
+ self.log_pipeline_deployment_metadata(deployment)
773
+ run = create_placeholder_run(deployment=deployment)
754
774
 
755
775
  analytics_handler.metadata = self._get_pipeline_analytics_metadata(
756
- deployment=deployment_model,
776
+ deployment=deployment,
757
777
  stack=stack,
758
778
  run_id=run.id if run else None,
759
779
  )
@@ -766,11 +786,11 @@ To avoid this consider setting pipeline parameters only in one place (config or
766
786
  logger.info(
767
787
  "You can visualize your pipeline runs in the `ZenML "
768
788
  "Dashboard`. In order to try it locally, please run "
769
- "`zenml up`."
789
+ "`zenml login --local`."
770
790
  )
771
791
 
772
792
  deploy_pipeline(
773
- deployment=deployment_model, stack=stack, placeholder_run=run
793
+ deployment=deployment, stack=stack, placeholder_run=run
774
794
  )
775
795
  if run:
776
796
  return Client().get_pipeline_run(run.id)
@@ -786,15 +806,6 @@ To avoid this consider setting pipeline parameters only in one place (config or
786
806
  deployment_model: The model for the pipeline deployment
787
807
  """
788
808
  try:
789
- # Log about the schedule/run
790
- if deployment_model.schedule:
791
- logger.info(
792
- "Scheduling a run with the schedule: "
793
- f"`{deployment_model.schedule.name}`"
794
- )
795
- else:
796
- logger.info("Executing a new run.")
797
-
798
809
  # Log about the caching status
799
810
  if deployment_model.pipeline_configuration.enable_cache is False:
800
811
  logger.info(
@@ -847,22 +858,6 @@ To avoid this consider setting pipeline parameters only in one place (config or
847
858
  except Exception as e:
848
859
  logger.debug(f"Logging pipeline deployment metadata failed: {e}")
849
860
 
850
- def get_runs(self, **kwargs: Any) -> List["PipelineRunResponse"]:
851
- """(Deprecated) Get runs of this pipeline.
852
-
853
- Args:
854
- **kwargs: Further arguments for filtering or pagination that are
855
- passed to `client.list_pipeline_runs()`.
856
-
857
- Returns:
858
- List of runs of this pipeline.
859
- """
860
- logger.warning(
861
- "`Pipeline.get_runs()` is deprecated and will be removed in a "
862
- "future version. Please use `Pipeline.model.get_runs()` instead."
863
- )
864
- return self.model.get_runs(**kwargs)
865
-
866
861
  def write_run_configuration_template(
867
862
  self, path: str, stack: Optional["Stack"] = None
868
863
  ) -> None:
@@ -897,19 +892,12 @@ To avoid this consider setting pipeline parameters only in one place (config or
897
892
  steps = {}
898
893
  for step_name, invocation in self.invocations.items():
899
894
  step = invocation.step
900
- parameters = (
901
- pydantic_utils.TemplateGenerator(
902
- step.entrypoint_definition.legacy_params.annotation
903
- ).run()
904
- if step.entrypoint_definition.legacy_params
905
- else {}
906
- )
907
895
  outputs = {
908
896
  name: PartialArtifactConfiguration()
909
897
  for name in step.entrypoint_definition.outputs
910
898
  }
911
899
  step_template = StepConfigurationUpdate(
912
- parameters=parameters,
900
+ parameters={},
913
901
  settings=step_settings,
914
902
  outputs=outputs,
915
903
  )
@@ -1112,7 +1100,9 @@ To avoid this consider setting pipeline parameters only in one place (config or
1112
1100
  self,
1113
1101
  step: "BaseStep",
1114
1102
  input_artifacts: Dict[str, StepArtifact],
1115
- external_artifacts: Dict[str, "ExternalArtifact"],
1103
+ external_artifacts: Dict[
1104
+ str, Union["ExternalArtifact", "ArtifactVersionResponse"]
1105
+ ],
1116
1106
  model_artifacts_or_metadata: Dict[str, "ModelVersionDataLazyLoader"],
1117
1107
  client_lazy_loaders: Dict[str, "ClientLazyLoader"],
1118
1108
  parameters: Dict[str, Any],
@@ -1213,7 +1203,7 @@ To avoid this consider setting pipeline parameters only in one place (config or
1213
1203
 
1214
1204
  raise RuntimeError("Unable to find step ID")
1215
1205
 
1216
- def __enter__(self: T) -> T:
1206
+ def __enter__(self) -> Self:
1217
1207
  """Activate the pipeline context.
1218
1208
 
1219
1209
  Raises:
@@ -1260,14 +1250,6 @@ To avoid this consider setting pipeline parameters only in one place (config or
1260
1250
  {k: v for k, v in _from_config_file.items() if k in matcher}
1261
1251
  )
1262
1252
 
1263
- # TODO: deprecate me
1264
- if "model_version" in _from_config_file:
1265
- logger.warning(
1266
- "YAML config option `model_version` is deprecated. Please use `model`."
1267
- )
1268
- _from_config_file["model"] = _from_config_file["model_version"]
1269
- del _from_config_file["model_version"]
1270
-
1271
1253
  if "model" in _from_config_file:
1272
1254
  if "model" in self._from_config_file:
1273
1255
  _from_config_file["model"] = self._from_config_file[
@@ -1356,7 +1338,9 @@ To avoid this consider setting pipeline parameters only in one place (config or
1356
1338
  """
1357
1339
  return copy.deepcopy(self)
1358
1340
 
1359
- def __call__(self, *args: Any, **kwargs: Any) -> Any:
1341
+ def __call__(
1342
+ self, *args: Any, **kwargs: Any
1343
+ ) -> Optional[PipelineRunResponse]:
1360
1344
  """Handle a call of the pipeline.
1361
1345
 
1362
1346
  This method does one of two things:
@@ -1371,7 +1355,9 @@ To avoid this consider setting pipeline parameters only in one place (config or
1371
1355
  **kwargs: Entrypoint function keyword arguments.
1372
1356
 
1373
1357
  Returns:
1374
- The outputs of the entrypoint function call.
1358
+ If called within another pipeline, returns the outputs of the
1359
+ `entrypoint` method. Otherwise, returns the pipeline run or `None`
1360
+ if running with a schedule.
1375
1361
  """
1376
1362
  if Pipeline.ACTIVE_PIPELINE:
1377
1363
  # Calling a pipeline inside a pipeline, we return the potential
@@ -1383,7 +1369,7 @@ To avoid this consider setting pipeline parameters only in one place (config or
1383
1369
  return self.entrypoint(*args, **kwargs)
1384
1370
 
1385
1371
  self.prepare(*args, **kwargs)
1386
- return self._run(**self._run_args)
1372
+ return self._run()
1387
1373
 
1388
1374
  def _call_entrypoint(self, *args: Any, **kwargs: Any) -> None:
1389
1375
  """Calls the pipeline entrypoint function with the given arguments.
@@ -1431,6 +1417,26 @@ To avoid this consider setting pipeline parameters only in one place (config or
1431
1417
  else:
1432
1418
  self.prepare()
1433
1419
 
1420
+ def create_run_template(
1421
+ self, name: str, **kwargs: Any
1422
+ ) -> RunTemplateResponse:
1423
+ """Create a run template for the pipeline.
1424
+
1425
+ Args:
1426
+ name: The name of the run template.
1427
+ **kwargs: Keyword arguments for the client method to create a run
1428
+ template.
1429
+
1430
+ Returns:
1431
+ The created run template.
1432
+ """
1433
+ self._prepare_if_possible()
1434
+ deployment = self._create_deployment(**self._run_args)
1435
+
1436
+ return Client().create_run_template(
1437
+ name=name, deployment_id=deployment.id, **kwargs
1438
+ )
1439
+
1434
1440
  def _reconfigure_from_file_with_overrides(
1435
1441
  self,
1436
1442
  config_path: Optional[str] = None,
@@ -1454,10 +1460,7 @@ To avoid this consider setting pipeline parameters only in one place (config or
1454
1460
  if config_path:
1455
1461
  self._from_config_file = self._parse_config_file(
1456
1462
  config_path=config_path,
1457
- matcher=inspect.getfullargspec(self.configure)[0]
1458
- + [
1459
- "model_version"
1460
- ], # TODO: deprecate `model_version` later on
1463
+ matcher=inspect.getfullargspec(self.configure)[0],
1461
1464
  )
1462
1465
 
1463
1466
  _from_config_file = dict_utils.recursive_update(