zenml-nightly 0.67.0.dev20241002__py3-none-any.whl → 0.68.0.dev20241027__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) hide show
  1. README.md +2 -2
  2. RELEASE_NOTES.md +129 -0
  3. zenml/VERSION +1 -1
  4. zenml/__init__.py +4 -9
  5. zenml/analytics/enums.py +0 -13
  6. zenml/artifact_stores/base_artifact_store.py +11 -0
  7. zenml/artifacts/artifact_config.py +19 -65
  8. zenml/artifacts/external_artifact.py +7 -53
  9. zenml/artifacts/external_artifact_config.py +21 -40
  10. zenml/artifacts/load_directory_materializer.py +91 -0
  11. zenml/artifacts/utils.py +320 -85
  12. zenml/cli/__init__.py +1 -39
  13. zenml/cli/base.py +5 -5
  14. zenml/cli/integration.py +0 -9
  15. zenml/cli/pipeline.py +1 -1
  16. zenml/cli/served_model.py +8 -1
  17. zenml/cli/server.py +8 -232
  18. zenml/cli/stack.py +1 -567
  19. zenml/cli/stack_components.py +0 -578
  20. zenml/cli/utils.py +0 -65
  21. zenml/client.py +11 -26
  22. zenml/client_lazy_loader.py +29 -12
  23. zenml/config/compiler.py +6 -11
  24. zenml/config/server_config.py +7 -5
  25. zenml/config/step_configurations.py +2 -0
  26. zenml/constants.py +3 -33
  27. zenml/enums.py +0 -3
  28. zenml/environment.py +1 -315
  29. zenml/exceptions.py +1 -41
  30. zenml/hooks/hook_validators.py +1 -8
  31. zenml/integrations/airflow/orchestrators/airflow_orchestrator.py +2 -3
  32. zenml/integrations/argilla/__init__.py +1 -1
  33. zenml/integrations/argilla/annotators/argilla_annotator.py +234 -89
  34. zenml/integrations/argilla/flavors/argilla_annotator_flavor.py +10 -5
  35. zenml/integrations/aws/flavors/sagemaker_orchestrator_flavor.py +9 -5
  36. zenml/integrations/aws/orchestrators/sagemaker_orchestrator.py +15 -2
  37. zenml/integrations/aws/service_connectors/aws_service_connector.py +6 -0
  38. zenml/integrations/azure/flavors/azureml_orchestrator_flavor.py +5 -4
  39. zenml/integrations/azure/orchestrators/azureml_orchestrator.py +1 -1
  40. zenml/integrations/bentoml/model_deployers/bentoml_model_deployer.py +85 -19
  41. zenml/integrations/bentoml/services/__init__.py +15 -4
  42. zenml/integrations/bentoml/services/bentoml_container_deployment.py +399 -0
  43. zenml/integrations/bentoml/services/{bentoml_deployment.py → bentoml_local_deployment.py} +81 -40
  44. zenml/{steps/base_parameters.py → integrations/bentoml/services/deployment_type.py} +8 -5
  45. zenml/integrations/bentoml/steps/bento_builder.py +1 -0
  46. zenml/integrations/bentoml/steps/bentoml_deployer.py +93 -41
  47. zenml/integrations/gitlab/code_repositories/gitlab_code_repository.py +6 -1
  48. zenml/integrations/huggingface/__init__.py +1 -6
  49. zenml/integrations/kaniko/image_builders/kaniko_image_builder.py +3 -3
  50. zenml/integrations/lightning/orchestrators/lightning_orchestrator.py +3 -3
  51. zenml/integrations/lightning/orchestrators/lightning_orchestrator_entrypoint.py +2 -2
  52. zenml/integrations/mlflow/experiment_trackers/mlflow_experiment_tracker.py +6 -3
  53. zenml/integrations/mlflow/model_registries/mlflow_model_registry.py +6 -0
  54. zenml/integrations/mlflow/services/mlflow_deployment.py +2 -2
  55. zenml/integrations/mlflow/steps/mlflow_deployer.py +1 -1
  56. zenml/integrations/mlflow/steps/mlflow_registry.py +1 -1
  57. zenml/integrations/neptune/experiment_trackers/run_state.py +2 -2
  58. zenml/integrations/s3/artifact_stores/s3_artifact_store.py +98 -0
  59. zenml/integrations/s3/flavors/s3_artifact_store_flavor.py +14 -0
  60. zenml/integrations/s3/utils.py +40 -0
  61. zenml/integrations/tensorflow/__init__.py +0 -9
  62. zenml/logging/step_logging.py +13 -15
  63. zenml/materializers/__init__.py +2 -0
  64. zenml/materializers/uuid_materializer.py +79 -0
  65. zenml/metadata/lazy_load.py +10 -7
  66. zenml/model/lazy_load.py +85 -4
  67. zenml/model/model.py +61 -45
  68. zenml/model/utils.py +47 -118
  69. zenml/models/__init__.py +3 -0
  70. zenml/models/v2/core/artifact_version.py +4 -15
  71. zenml/models/v2/core/model.py +1 -0
  72. zenml/models/v2/core/model_version.py +1 -1
  73. zenml/models/v2/core/pipeline_run.py +1 -2
  74. zenml/models/v2/core/run_metadata.py +2 -2
  75. zenml/models/v2/core/step_run.py +15 -12
  76. zenml/models/v2/misc/server_models.py +0 -4
  77. zenml/orchestrators/base_orchestrator.py +33 -0
  78. zenml/orchestrators/input_utils.py +52 -36
  79. zenml/orchestrators/step_launcher.py +49 -171
  80. zenml/orchestrators/step_run_utils.py +566 -0
  81. zenml/orchestrators/step_runner.py +102 -151
  82. zenml/orchestrators/utils.py +1 -158
  83. zenml/pipelines/__init__.py +3 -16
  84. zenml/{new/pipelines → pipelines}/pipeline_context.py +3 -18
  85. zenml/pipelines/pipeline_decorator.py +29 -60
  86. zenml/{new/pipelines/pipeline.py → pipelines/pipeline_definition.py} +4 -47
  87. zenml/stack/stack.py +1 -102
  88. zenml/stack/stack_component.py +0 -71
  89. zenml/stack_deployments/aws_stack_deployment.py +3 -0
  90. zenml/step_operators/step_operator_entrypoint_configuration.py +1 -1
  91. zenml/steps/__init__.py +3 -9
  92. zenml/steps/base_step.py +17 -265
  93. zenml/steps/entrypoint_function_utils.py +2 -80
  94. zenml/{new/steps → steps}/step_context.py +12 -63
  95. zenml/steps/step_decorator.py +42 -89
  96. zenml/steps/step_invocation.py +2 -55
  97. zenml/steps/utils.py +3 -23
  98. zenml/utils/dashboard_utils.py +16 -51
  99. zenml/utils/typing_utils.py +8 -28
  100. zenml/zen_server/dashboard/assets/{404-Y50hSt65.js → 404-DT4QRUqN.js} +1 -1
  101. zenml/zen_server/dashboard/assets/@radix-DP6vWzyx.js +85 -0
  102. zenml/zen_server/dashboard/assets/@react-router-BMhZulnd.js +29 -0
  103. zenml/zen_server/dashboard/assets/@reactflow-8U9qNlMR.js +17 -0
  104. zenml/zen_server/dashboard/assets/@tanstack-BUCbhJyH.js +22 -0
  105. zenml/zen_server/dashboard/assets/{AlertDialogDropdownItem-xLR9a1iw.js → AlertDialogDropdownItem-C6N2rGrB.js} +1 -1
  106. zenml/zen_server/dashboard/assets/{CodeSnippet-IxXNxUDa.js → CodeSnippet-CqybNv0k.js} +1 -1
  107. zenml/zen_server/dashboard/assets/{CollapsibleCard-BhutZbBL.js → CollapsibleCard-0r_8G2Lj.js} +1 -1
  108. zenml/zen_server/dashboard/assets/{Commands-Bf-rd1z8.js → Commands-BDjgBQKi.js} +1 -1
  109. zenml/zen_server/dashboard/assets/ComponentBadge-DUiEYJHu.js +1 -0
  110. zenml/zen_server/dashboard/assets/ComponentFallbackDialog-BFoH5K4V.js +1 -0
  111. zenml/zen_server/dashboard/assets/ComponentIcon-CAIoUis2.js +1 -0
  112. zenml/zen_server/dashboard/assets/{CopyButton-DcFHidFJ.js → CopyButton-C745BrKi.js} +1 -1
  113. zenml/zen_server/dashboard/assets/{CsvVizualization-QSbjrfxw.js → CsvVizualization-PpAq0CeZ.js} +5 -5
  114. zenml/zen_server/dashboard/assets/{DialogItem-Cd3HqST4.js → DialogItem-DcVCZEew.js} +1 -1
  115. zenml/zen_server/dashboard/assets/{DisplayDate-DkCy54Bp.js → DisplayDate-BeXgUG_C.js} +1 -1
  116. zenml/zen_server/dashboard/assets/{EmptyState-Cs3DEmso.js → EmptyState-DeK7H4pr.js} +1 -1
  117. zenml/zen_server/dashboard/assets/{Error-BhwdmqK7.js → Error-BMlzibXj.js} +1 -1
  118. zenml/zen_server/dashboard/assets/{Helpbox-0pBpTwTm.js → Helpbox-BLf40fLV.js} +1 -1
  119. zenml/zen_server/dashboard/assets/{Infobox-BTK_EUKT.js → Infobox-BwisKifi.js} +1 -1
  120. zenml/zen_server/dashboard/assets/{InlineAvatar-CA3DFMcM.js → InlineAvatar-jEgodSgX.js} +1 -1
  121. zenml/zen_server/dashboard/assets/{Lock-CmIn0szs.js → Lock-3lLt1ih0.js} +1 -1
  122. zenml/zen_server/dashboard/assets/MarkdownVisualization-8O9kTr-2.js +14 -0
  123. zenml/zen_server/dashboard/assets/{NumberBox-CrN0_kqI.js → NumberBox-T9eELfLZ.js} +1 -1
  124. zenml/zen_server/dashboard/assets/{Partials-QLOZw624.js → Partials-YPBB3V4q.js} +1 -1
  125. zenml/zen_server/dashboard/assets/{PasswordChecker-DE71J_3F.js → PasswordChecker-CW0kqY0W.js} +1 -1
  126. zenml/zen_server/dashboard/assets/{ProviderIcon-C16CCIN4.js → ProviderIcon-Bb3Xha5A.js} +1 -1
  127. zenml/zen_server/dashboard/assets/{ProviderRadio-D3FuCHf3.js → ProviderRadio-BROY1700.js} +1 -1
  128. zenml/zen_server/dashboard/assets/RunSelector-DCiL3M1c.js +1 -0
  129. zenml/zen_server/dashboard/assets/SearchField-DfUiGFVd.js +1 -0
  130. zenml/zen_server/dashboard/assets/{SecretTooltip-BaMwHF-Q.js → SecretTooltip-C_qByGWB.js} +1 -1
  131. zenml/zen_server/dashboard/assets/{SetPassword-DuIC65H9.js → SetPassword-7pRB00El.js} +1 -1
  132. zenml/zen_server/dashboard/assets/{Tick-DJTCF0Re.js → Tick-CykQFPj2.js} +1 -1
  133. zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-CUm-DMpw.js → UpdatePasswordSchemas-DckMEkFf.js} +1 -1
  134. zenml/zen_server/dashboard/assets/{UsageReason-CKw0juLF.js → UsageReason-DVceN14P.js} +1 -1
  135. zenml/zen_server/dashboard/assets/{WizardFooter-Cv9ApYWU.js → WizardFooter-CW0Cvd70.js} +1 -1
  136. zenml/zen_server/dashboard/assets/{check-circle-DOoS4yhF.js → check-circle-Dwxliy1Z.js} +1 -1
  137. zenml/zen_server/dashboard/assets/{chevron-down-Cwb-W_B_.js → chevron-down-8wLBS5pQ.js} +1 -1
  138. zenml/zen_server/dashboard/assets/{chevron-right-double-c9H46Kl8.js → chevron-right-double-DoD8iXWM.js} +1 -1
  139. zenml/zen_server/dashboard/assets/{cloud-only-BB4BVa6E.js → cloud-only-B-s_HMDm.js} +1 -1
  140. zenml/zen_server/dashboard/assets/{code-browser-BJYErIjr.js → code-browser-CZUQs3Wa.js} +1 -1
  141. zenml/zen_server/dashboard/assets/{copy-CaGlDsUy.js → copy-CaSMXwiU.js} +1 -1
  142. zenml/zen_server/dashboard/assets/{create-stack-F29xAUEx.js → create-stack-CEmaPZ4c.js} +1 -1
  143. zenml/zen_server/dashboard/assets/delete-run-D-LKbGyz.js +1 -0
  144. zenml/zen_server/dashboard/assets/{docker-BFAFXr2_.js → docker-BFNgg-z3.js} +1 -1
  145. zenml/zen_server/dashboard/assets/{dots-horizontal-C6K59vUm.js → dots-horizontal-DK5Duzx4.js} +1 -1
  146. zenml/zen_server/dashboard/assets/{form-schemas-BKXwSDK2.js → form-schemas-1AyOCx90.js} +1 -1
  147. zenml/zen_server/dashboard/assets/{gcp-Dj6ntk0L.js → gcp-7M2Yf3ZK.js} +1 -1
  148. zenml/zen_server/dashboard/assets/{help-CwN931fX.js → help-Dam461dC.js} +1 -1
  149. zenml/zen_server/dashboard/assets/{index-5GJ5ysEZ.js → index-BVJ8n2-j.js} +1 -1
  150. zenml/zen_server/dashboard/assets/index-Bpmj40BI.js +1 -0
  151. zenml/zen_server/dashboard/assets/index-CbU4Ln_E.css +1 -0
  152. zenml/zen_server/dashboard/assets/{index-D-mtoBj3.js → index-DKPhqP2B.js} +1 -1
  153. zenml/zen_server/dashboard/assets/index-QQb7wQEC.js +55 -0
  154. zenml/zen_server/dashboard/assets/index.esm-cuVep_NJ.js +1 -0
  155. zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-BLGc9T1a.woff2 +0 -0
  156. zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-ZzOtrSSW.woff +0 -0
  157. zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-D4Vwzodn.woff2 +0 -0
  158. zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-DH2hs3aW.woff +0 -0
  159. zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-BGBWG807.woff2 +0 -0
  160. zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-BuzJQFbW.woff +0 -0
  161. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-BPnxn4xp.woff +0 -0
  162. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-Dc4VJyIJ.woff2 +0 -0
  163. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-BShVwWPj.woff2 +0 -0
  164. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-CUiC4oBV.woff +0 -0
  165. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-Bt9VVOA-.woff +0 -0
  166. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-CaqZN2hq.woff2 +0 -0
  167. zenml/zen_server/dashboard/assets/inter-greek-400-normal-BZzXV7-1.woff +0 -0
  168. zenml/zen_server/dashboard/assets/inter-greek-400-normal-DxZsaF_h.woff2 +0 -0
  169. zenml/zen_server/dashboard/assets/inter-greek-500-normal-CeQXL5ds.woff2 +0 -0
  170. zenml/zen_server/dashboard/assets/inter-greek-500-normal-d_eO-yCQ.woff +0 -0
  171. zenml/zen_server/dashboard/assets/inter-greek-600-normal-CwicyhtI.woff +0 -0
  172. zenml/zen_server/dashboard/assets/inter-greek-600-normal-Dhlb-90d.woff2 +0 -0
  173. zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-Bput3-QP.woff2 +0 -0
  174. zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-DCpCPQOf.woff +0 -0
  175. zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-B6guLgqG.woff2 +0 -0
  176. zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-M2hEX8vc.woff +0 -0
  177. zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-C9WLioJ8.woff +0 -0
  178. zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-Cnui8OiR.woff2 +0 -0
  179. zenml/zen_server/dashboard/assets/inter-latin-400-normal-BOOGhInR.woff2 +0 -0
  180. zenml/zen_server/dashboard/assets/inter-latin-400-normal-gitzw0hO.woff +0 -0
  181. zenml/zen_server/dashboard/assets/inter-latin-500-normal-D2bGa7uu.woff2 +0 -0
  182. zenml/zen_server/dashboard/assets/inter-latin-500-normal-deR1Tlfd.woff +0 -0
  183. zenml/zen_server/dashboard/assets/inter-latin-600-normal-B5cFAncS.woff +0 -0
  184. zenml/zen_server/dashboard/assets/inter-latin-600-normal-D273HNI0.woff2 +0 -0
  185. zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-C1t-h-pH.woff +0 -0
  186. zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-hnt3BR84.woff2 +0 -0
  187. zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-CIS2RHJS.woff2 +0 -0
  188. zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-UMdmhHu2.woff +0 -0
  189. zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-BnYJhD27.woff2 +0 -0
  190. zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-CAF0vJDd.woff +0 -0
  191. zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-BUNmGMP1.woff +0 -0
  192. zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
  193. zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
  194. zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-DQPw2Hwd.woff +0 -0
  195. zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
  196. zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-Cm6aH8_k.woff +0 -0
  197. zenml/zen_server/dashboard/assets/{kubernetes-BjbR6D-1.js → kubernetes--g7r02Zu.js} +1 -1
  198. zenml/zen_server/dashboard/assets/{layout-Dru15_XR.js → layout-DCSYN7-C.js} +1 -1
  199. zenml/zen_server/dashboard/assets/{link-external-BT2L8hAQ.js → link-external-CBEk6kEG.js} +1 -1
  200. zenml/zen_server/dashboard/assets/{login-mutation-ax6iL2Mb.js → login-mutation-DTcAFP1l.js} +1 -1
  201. zenml/zen_server/dashboard/assets/{logs-GiDJXbLS.js → logs-D5bdJGur.js} +1 -1
  202. zenml/zen_server/dashboard/assets/not-found-Cc-JkRH2.js +1 -0
  203. zenml/zen_server/dashboard/assets/{package-DYKZ5jKW.js → package-Cs35Szwh.js} +1 -1
  204. zenml/zen_server/dashboard/assets/{page-HkVBdZl6.js → page-9yplj5JT.js} +1 -1
  205. zenml/zen_server/dashboard/assets/{page-uORspyRu.js → page-B-y2XKIc.js} +1 -1
  206. zenml/zen_server/dashboard/assets/page-BBpOxVcY.js +1 -0
  207. zenml/zen_server/dashboard/assets/{page-BDg1F-Ug.js → page-BQQKaabe.js} +2 -2
  208. zenml/zen_server/dashboard/assets/page-BRInM1Lg.js +1 -0
  209. zenml/zen_server/dashboard/assets/{page-CvKnNK1S.js → page-BjjlMk7s.js} +1 -1
  210. zenml/zen_server/dashboard/assets/{page-BukXK1Aa.js → page-Bvd7YH2A.js} +1 -1
  211. zenml/zen_server/dashboard/assets/{page-DcTjHmYZ.js → page-C0N5q3l7.js} +1 -1
  212. zenml/zen_server/dashboard/assets/page-CT3Nep8W.js +1 -0
  213. zenml/zen_server/dashboard/assets/{page-DuqYMYmH.js → page-C_f47pBf.js} +1 -1
  214. zenml/zen_server/dashboard/assets/{page-DRfcRK1w.js → page-ClUVkl-O.js} +1 -1
  215. zenml/zen_server/dashboard/assets/page-Cmv8C_yM.js +3 -0
  216. zenml/zen_server/dashboard/assets/{page-p0BhSAWx.js → page-CyN2bdWG.js} +1 -1
  217. zenml/zen_server/dashboard/assets/page-CzzXH4fs.js +1 -0
  218. zenml/zen_server/dashboard/assets/{page-6mfzecin.js → page-DH_Z7iW1.js} +1 -1
  219. zenml/zen_server/dashboard/assets/{page-8kYmrh0B.js → page-DIOXwhiD.js} +1 -1
  220. zenml/zen_server/dashboard/assets/{page-BXarY9K2.js → page-DLixvR-7.js} +1 -1
  221. zenml/zen_server/dashboard/assets/page-DTlGjgnG.js +1 -0
  222. zenml/zen_server/dashboard/assets/page-Dbpl86h0.js +1 -0
  223. zenml/zen_server/dashboard/assets/{page-MAXyfXBq.js → page-Ddgy6kDS.js} +1 -1
  224. zenml/zen_server/dashboard/assets/page-DtCAfBLy.js +9 -0
  225. zenml/zen_server/dashboard/assets/{page-CKHNAq7z.js → page-Dx16z7nA.js} +1 -1
  226. zenml/zen_server/dashboard/assets/{page-DMSLXKGT.js → page-DzpVUZ8f.js} +1 -1
  227. zenml/zen_server/dashboard/assets/page-McUyYbo1.js +1 -0
  228. zenml/zen_server/dashboard/assets/{page-miU2rhYG.js → page-N4qoPHKb.js} +1 -1
  229. zenml/zen_server/dashboard/assets/page-T1P3RyAR.js +1 -0
  230. zenml/zen_server/dashboard/assets/{page-3qPX9WYH.js → page-bKaULTGG.js} +1 -1
  231. zenml/zen_server/dashboard/assets/page-sbXUJy9t.js +1 -0
  232. zenml/zen_server/dashboard/assets/{persist-CfJMar_k.js → persist-CP0JmYZ4.js} +1 -1
  233. zenml/zen_server/dashboard/assets/{persist-BxIR2XZs.js → persist-DNb5cdrU.js} +1 -1
  234. zenml/zen_server/dashboard/assets/{plus-Bc8eLSDM.js → plus-C9IxgN2M.js} +1 -1
  235. zenml/zen_server/dashboard/assets/{refresh-hfgWPeto.js → refresh-BVu22P_C.js} +1 -1
  236. zenml/zen_server/dashboard/assets/{rocket-SESCGQXm.js → rocket-CONEmRmB.js} +1 -1
  237. zenml/zen_server/dashboard/assets/{sharedSchema-vub0rii3.js → sharedSchema-TMLu-nYQ.js} +1 -1
  238. zenml/zen_server/dashboard/assets/stack-detail-query-xmYxSsUY.js +1 -0
  239. zenml/zen_server/dashboard/assets/{tick-circle-m-hJG8i9.js → tick-circle-CM1ZScbQ.js} +1 -1
  240. zenml/zen_server/dashboard/assets/{trash-DUWZWzse.js → trash-DkJHMOg7.js} +1 -1
  241. zenml/zen_server/dashboard/assets/{update-server-settings-mutation-FGVP7X2U.js → update-server-settings-mutation-DsU8cNVl.js} +1 -1
  242. zenml/zen_server/dashboard/assets/{url-CbAPzsmT.js → url-D5le3J4q.js} +1 -1
  243. zenml/zen_server/dashboard/assets/zod-D89GC_vc.js +1 -0
  244. zenml/zen_server/dashboard/index.html +7 -7
  245. zenml/zen_server/deploy/__init__.py +0 -9
  246. zenml/zen_server/deploy/docker/docker_zen_server.py +0 -6
  247. zenml/zen_server/deploy/helm/Chart.yaml +1 -1
  248. zenml/zen_server/deploy/helm/README.md +2 -2
  249. zenml/zen_server/deploy/local/local_zen_server.py +0 -6
  250. zenml/zen_server/feature_gate/zenml_cloud_feature_gate.py +1 -1
  251. zenml/zen_server/routers/artifact_version_endpoints.py +1 -1
  252. zenml/zen_server/routers/runs_endpoints.py +0 -28
  253. zenml/zen_server/template_execution/runner_entrypoint_configuration.py +1 -1
  254. zenml/zen_server/template_execution/utils.py +2 -2
  255. zenml/zen_server/utils.py +10 -40
  256. zenml/zen_server/zen_server_api.py +107 -17
  257. zenml/zen_stores/base_zen_store.py +0 -2
  258. zenml/zen_stores/migrations/versions/0.68.0_release.py +23 -0
  259. zenml/zen_stores/migrations/versions/1d8f30c54477_migrate_to_new_.py +124 -0
  260. zenml/zen_stores/schemas/pipeline_run_schemas.py +12 -4
  261. zenml/zen_stores/schemas/step_run_schemas.py +2 -2
  262. zenml/zen_stores/sql_zen_store.py +29 -5
  263. {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241027.dist-info}/METADATA +4 -8
  264. {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241027.dist-info}/RECORD +270 -450
  265. {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241027.dist-info}/WHEEL +1 -1
  266. zenml/cli/stack_recipes.py +0 -469
  267. zenml/lineage_graph/__init__.py +0 -34
  268. zenml/lineage_graph/edge.py +0 -24
  269. zenml/lineage_graph/lineage_graph.py +0 -244
  270. zenml/lineage_graph/node/__init__.py +0 -32
  271. zenml/lineage_graph/node/artifact_node.py +0 -51
  272. zenml/lineage_graph/node/base_node.py +0 -31
  273. zenml/lineage_graph/node/step_node.py +0 -41
  274. zenml/model/model_version.py +0 -38
  275. zenml/new/__init__.py +0 -13
  276. zenml/new/pipelines/__init__.py +0 -13
  277. zenml/new/pipelines/code_archive.py +0 -157
  278. zenml/new/pipelines/pipeline_decorator.py +0 -118
  279. zenml/new/steps/__init__.py +0 -13
  280. zenml/new/steps/step_decorator.py +0 -176
  281. zenml/pipelines/base_pipeline.py +0 -273
  282. zenml/post_execution/__init__.py +0 -30
  283. zenml/post_execution/pipeline.py +0 -55
  284. zenml/post_execution/pipeline_run.py +0 -55
  285. zenml/services/terraform/__init__.py +0 -14
  286. zenml/services/terraform/terraform_service.py +0 -441
  287. zenml/steps/external_artifact.py +0 -26
  288. zenml/steps/step_environment.py +0 -108
  289. zenml/steps/step_output.py +0 -36
  290. zenml/utils/mlstacks_utils.py +0 -635
  291. zenml/utils/terraform_utils.py +0 -43
  292. zenml/zen_server/dashboard/assets/@radix-DnFH_oo1.js +0 -85
  293. zenml/zen_server/dashboard/assets/@react-router-APVeuk-U.js +0 -29
  294. zenml/zen_server/dashboard/assets/@reactflow-ytavUpwh.js +0 -17
  295. zenml/zen_server/dashboard/assets/@tanstack-QbMbTrh5.js +0 -22
  296. zenml/zen_server/dashboard/assets/ComponentBadge-gKR1OIwG.js +0 -1
  297. zenml/zen_server/dashboard/assets/ExecutionStatus-D6r6aK8J.js +0 -1
  298. zenml/zen_server/dashboard/assets/MarkdownVisualization-DS05sfBm.js +0 -14
  299. zenml/zen_server/dashboard/assets/SearchField-BzmfxS0L.js +0 -1
  300. zenml/zen_server/dashboard/assets/all-pipeline-runs-query-BA3R2Sey.js +0 -1
  301. zenml/zen_server/dashboard/assets/delete-run-CP0pcJ3U.js +0 -1
  302. zenml/zen_server/dashboard/assets/index-BhJ6ZJxv.css +0 -1
  303. zenml/zen_server/dashboard/assets/index-Ci0nJ8EZ.js +0 -55
  304. zenml/zen_server/dashboard/assets/index.esm-BE1uqCX5.js +0 -1
  305. zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-Df6ckaLK.woff2 +0 -0
  306. zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-JrS_4yms.woff +0 -0
  307. zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-BRrLR67x.woff2 +0 -0
  308. zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-DskEQOpE.woff +0 -0
  309. zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-DDpWG8g5.woff2 +0 -0
  310. zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-iz1--dBq.woff +0 -0
  311. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-CzG7Kr3z.woff +0 -0
  312. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-tyfMZHQw.woff2 +0 -0
  313. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-DOnSzjnx.woff2 +0 -0
  314. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-Xebo2OyJ.woff +0 -0
  315. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-DpA2xaRd.woff2 +0 -0
  316. zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-KAwcVx6H.woff +0 -0
  317. zenml/zen_server/dashboard/assets/inter-greek-400-normal-DQXyrmoy.woff2 +0 -0
  318. zenml/zen_server/dashboard/assets/inter-greek-400-normal-DvIPHDQ7.woff +0 -0
  319. zenml/zen_server/dashboard/assets/inter-greek-500-normal-BjpBGs91.woff +0 -0
  320. zenml/zen_server/dashboard/assets/inter-greek-500-normal-CmOavsDc.woff2 +0 -0
  321. zenml/zen_server/dashboard/assets/inter-greek-600-normal-B-l8Lzzd.woff2 +0 -0
  322. zenml/zen_server/dashboard/assets/inter-greek-600-normal-BLZsI-P3.woff +0 -0
  323. zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-CIdlr5YK.woff2 +0 -0
  324. zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-_Rr29XE2.woff +0 -0
  325. zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-2pdUafRD.woff2 +0 -0
  326. zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-Dtavx3qw.woff +0 -0
  327. zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-BmtRFZgT.woff +0 -0
  328. zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-CkBLDEl_.woff2 +0 -0
  329. zenml/zen_server/dashboard/assets/inter-latin-400-normal-BT1H-PT_.woff2 +0 -0
  330. zenml/zen_server/dashboard/assets/inter-latin-400-normal-Cdi8t5Mu.woff +0 -0
  331. zenml/zen_server/dashboard/assets/inter-latin-500-normal-D4I8BKCx.woff +0 -0
  332. zenml/zen_server/dashboard/assets/inter-latin-500-normal-kWhwEdDH.woff2 +0 -0
  333. zenml/zen_server/dashboard/assets/inter-latin-600-normal-B2Ssfs8e.woff2 +0 -0
  334. zenml/zen_server/dashboard/assets/inter-latin-600-normal-Dbvh0wvx.woff +0 -0
  335. zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-8tIzm-yw.woff +0 -0
  336. zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-D3W-OpO-.woff2 +0 -0
  337. zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-B9u8Q_zH.woff2 +0 -0
  338. zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-SuUkSNTU.woff +0 -0
  339. zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-Dg0Bk0Yr.woff +0 -0
  340. zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-ao35dkSb.woff2 +0 -0
  341. zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-Cnt0N5Vm.woff2 +0 -0
  342. zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-DIOGfGLL.woff +0 -0
  343. zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-0i6yoQMg.woff +0 -0
  344. zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-5IkPJ6Nk.woff2 +0 -0
  345. zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-BQ_dbMbg.woff +0 -0
  346. zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-DjnxGF-L.woff2 +0 -0
  347. zenml/zen_server/dashboard/assets/not-found-DbjllLY_.js +0 -1
  348. zenml/zen_server/dashboard/assets/page-B1n7_W7z.js +0 -1
  349. zenml/zen_server/dashboard/assets/page-BZZhLo2u.js +0 -1
  350. zenml/zen_server/dashboard/assets/page-Bbf_oBjn.js +0 -1
  351. zenml/zen_server/dashboard/assets/page-BjjuBvZG.js +0 -9
  352. zenml/zen_server/dashboard/assets/page-CHaQkFK5.js +0 -1
  353. zenml/zen_server/dashboard/assets/page-CS0SYFK8.js +0 -1
  354. zenml/zen_server/dashboard/assets/page-DGM1CbYT.js +0 -2
  355. zenml/zen_server/dashboard/assets/page-DOmIZ2ra.js +0 -1
  356. zenml/zen_server/dashboard/assets/page-DYVmJ9_w.js +0 -3
  357. zenml/zen_server/dashboard/assets/page-Dwow2doB.js +0 -1
  358. zenml/zen_server/dashboard/assets/stack-detail-query-DQcyzG-2.js +0 -1
  359. zenml/zen_server/dashboard/assets/zod-uFd1wBcd.js +0 -1
  360. zenml/zen_server/dashboard_legacy/_redirects +0 -1
  361. zenml/zen_server/dashboard_legacy/asset-manifest.json +0 -131
  362. zenml/zen_server/dashboard_legacy/favicon.ico +0 -0
  363. zenml/zen_server/dashboard_legacy/index.html +0 -1
  364. zenml/zen_server/dashboard_legacy/manifest.json +0 -25
  365. zenml/zen_server/dashboard_legacy/precache-manifest.6d320abb70db612019dda6c4948e7a90.js +0 -462
  366. zenml/zen_server/dashboard_legacy/robots.txt +0 -2
  367. zenml/zen_server/dashboard_legacy/service-worker.js +0 -39
  368. zenml/zen_server/dashboard_legacy/static/css/2.5b37d44a.chunk.css +0 -16
  369. zenml/zen_server/dashboard_legacy/static/css/2.5b37d44a.chunk.css.map +0 -1
  370. zenml/zen_server/dashboard_legacy/static/css/main.e79dff04.chunk.css +0 -2
  371. zenml/zen_server/dashboard_legacy/static/css/main.e79dff04.chunk.css.map +0 -1
  372. zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js +0 -3
  373. zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js.LICENSE.txt +0 -95
  374. zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js.map +0 -1
  375. zenml/zen_server/dashboard_legacy/static/js/main.fa9299d5.chunk.js +0 -2
  376. zenml/zen_server/dashboard_legacy/static/js/main.fa9299d5.chunk.js.map +0 -1
  377. zenml/zen_server/dashboard_legacy/static/js/runtime-main.bfca2edd.js +0 -2
  378. zenml/zen_server/dashboard_legacy/static/js/runtime-main.bfca2edd.js.map +0 -1
  379. zenml/zen_server/dashboard_legacy/static/media/AlertTriangle.28aee535.svg +0 -5
  380. zenml/zen_server/dashboard_legacy/static/media/ArrowSquareOut.abfb9bc7.svg +0 -5
  381. zenml/zen_server/dashboard_legacy/static/media/Back.86c23a22.svg +0 -4
  382. zenml/zen_server/dashboard_legacy/static/media/BookOpen.5cb101ff.svg +0 -4
  383. zenml/zen_server/dashboard_legacy/static/media/BoundingBox.1eb98717.svg +0 -10
  384. zenml/zen_server/dashboard_legacy/static/media/Burger.9b1c67d7.svg +0 -3
  385. zenml/zen_server/dashboard_legacy/static/media/Cached.2381fb8d.svg +0 -1
  386. zenml/zen_server/dashboard_legacy/static/media/Calendar.356e11c7.svg +0 -3
  387. zenml/zen_server/dashboard_legacy/static/media/ChartBarHorizontal.0247447b.svg +0 -6
  388. zenml/zen_server/dashboard_legacy/static/media/ChartLine.0d79e18d.svg +0 -4
  389. zenml/zen_server/dashboard_legacy/static/media/ChatDots.2e1c9211.svg +0 -6
  390. zenml/zen_server/dashboard_legacy/static/media/Check.dad6beb2.svg +0 -3
  391. zenml/zen_server/dashboard_legacy/static/media/CheckCircleFilled.c19566d0.svg +0 -3
  392. zenml/zen_server/dashboard_legacy/static/media/Checkbox.af50e31e.svg +0 -3
  393. zenml/zen_server/dashboard_legacy/static/media/ChevronDown.f860ce32.svg +0 -3
  394. zenml/zen_server/dashboard_legacy/static/media/ChevronDownLight.6642d756.svg +0 -3
  395. zenml/zen_server/dashboard_legacy/static/media/ChevronLeft.f6edfcdb.svg +0 -3
  396. zenml/zen_server/dashboard_legacy/static/media/CircleCheck.f98fd6ca.svg +0 -1
  397. zenml/zen_server/dashboard_legacy/static/media/Clock.ffc9de95.svg +0 -3
  398. zenml/zen_server/dashboard_legacy/static/media/Close.74e9efbc.svg +0 -5
  399. zenml/zen_server/dashboard_legacy/static/media/CloseWithBorder.6960930a.svg +0 -3
  400. zenml/zen_server/dashboard_legacy/static/media/CloseWithoutBorder.cd6f71df.svg +0 -3
  401. zenml/zen_server/dashboard_legacy/static/media/CloudArrowUp.0aecb235.svg +0 -6
  402. zenml/zen_server/dashboard_legacy/static/media/Code.ef0f33b5.svg +0 -3
  403. zenml/zen_server/dashboard_legacy/static/media/Config.0be63f8a.svg +0 -1
  404. zenml/zen_server/dashboard_legacy/static/media/Connector.9fd46ef1.svg +0 -10
  405. zenml/zen_server/dashboard_legacy/static/media/Copy.36e2112a.svg +0 -1
  406. zenml/zen_server/dashboard_legacy/static/media/Dashboard.d05787e0.svg +0 -3
  407. zenml/zen_server/dashboard_legacy/static/media/Data.b1c3b5f8.svg +0 -3
  408. zenml/zen_server/dashboard_legacy/static/media/Delete.3c361b28.svg +0 -8
  409. zenml/zen_server/dashboard_legacy/static/media/Docs.7541d478.svg +0 -7
  410. zenml/zen_server/dashboard_legacy/static/media/Download.fba04d87.svg +0 -5
  411. zenml/zen_server/dashboard_legacy/static/media/Edit.490eb294.svg +0 -6
  412. zenml/zen_server/dashboard_legacy/static/media/EmptyRightArrow.23749d01.svg +0 -3
  413. zenml/zen_server/dashboard_legacy/static/media/Example.6396cd37.svg +0 -5
  414. zenml/zen_server/dashboard_legacy/static/media/Extension.1394cd4a.svg +0 -3
  415. zenml/zen_server/dashboard_legacy/static/media/Eye.d9e4ee62.svg +0 -4
  416. zenml/zen_server/dashboard_legacy/static/media/Failed.0213c1a0.svg +0 -1
  417. zenml/zen_server/dashboard_legacy/static/media/FileText.1f15bacd.svg +0 -7
  418. zenml/zen_server/dashboard_legacy/static/media/Filter.ab6b9c0d.svg +0 -3
  419. zenml/zen_server/dashboard_legacy/static/media/Folders.12b29887.svg +0 -5
  420. zenml/zen_server/dashboard_legacy/static/media/FunnelFill.6df4c143.svg +0 -3
  421. zenml/zen_server/dashboard_legacy/static/media/GitCommit.7dd9c2aa.svg +0 -5
  422. zenml/zen_server/dashboard_legacy/static/media/GitHub_Logo.cefc2023.png +0 -0
  423. zenml/zen_server/dashboard_legacy/static/media/Graph.2c63a892.svg +0 -11
  424. zenml/zen_server/dashboard_legacy/static/media/History.08329240.svg +0 -3
  425. zenml/zen_server/dashboard_legacy/static/media/Home.0843b0d5.svg +0 -3
  426. zenml/zen_server/dashboard_legacy/static/media/ImageBuilder.ea762d9c.svg +0 -6
  427. zenml/zen_server/dashboard_legacy/static/media/InProgress.304a0edc.svg +0 -1
  428. zenml/zen_server/dashboard_legacy/static/media/Info.9fe10c5c.svg +0 -3
  429. zenml/zen_server/dashboard_legacy/static/media/KeyboardReturn.491afbe3.svg +0 -3
  430. zenml/zen_server/dashboard_legacy/static/media/Link.72bbb55d.svg +0 -4
  431. zenml/zen_server/dashboard_legacy/static/media/Lock.30f5e1fe.svg +0 -5
  432. zenml/zen_server/dashboard_legacy/static/media/Lock2.a769ea52.svg +0 -3
  433. zenml/zen_server/dashboard_legacy/static/media/LockKey.92f21621.svg +0 -6
  434. zenml/zen_server/dashboard_legacy/static/media/Logs.8bf4d005.svg +0 -5
  435. zenml/zen_server/dashboard_legacy/static/media/MinusCircle.4188f418.svg +0 -4
  436. zenml/zen_server/dashboard_legacy/static/media/ModelRegistry.f0de050a.svg +0 -6
  437. zenml/zen_server/dashboard_legacy/static/media/MultiUser.a2ba7c67.svg +0 -10
  438. zenml/zen_server/dashboard_legacy/static/media/PaginationFirst.92628634.svg +0 -4
  439. zenml/zen_server/dashboard_legacy/static/media/PaginationLast.00d3c732.svg +0 -4
  440. zenml/zen_server/dashboard_legacy/static/media/PaginationNext.86158845.svg +0 -3
  441. zenml/zen_server/dashboard_legacy/static/media/PaginationPrev.60c18a88.svg +0 -3
  442. zenml/zen_server/dashboard_legacy/static/media/Pen.f2d831d4.svg +0 -6
  443. zenml/zen_server/dashboard_legacy/static/media/PhotoCamera.179d6d4c.svg +0 -3
  444. zenml/zen_server/dashboard_legacy/static/media/Pipeline.30d298b0.svg +0 -7
  445. zenml/zen_server/dashboard_legacy/static/media/Plus.5aa1c16b.svg +0 -3
  446. zenml/zen_server/dashboard_legacy/static/media/PlusCircle.92d860dd.svg +0 -5
  447. zenml/zen_server/dashboard_legacy/static/media/Repositories.71a36b8c.svg +0 -3
  448. zenml/zen_server/dashboard_legacy/static/media/RightArrow.f30d3871.svg +0 -29
  449. zenml/zen_server/dashboard_legacy/static/media/Rocket.63bf7b9d.svg +0 -3
  450. zenml/zen_server/dashboard_legacy/static/media/RocketLaunch.1bff2b59.svg +0 -6
  451. zenml/zen_server/dashboard_legacy/static/media/Rubik-Medium.c87313aa.ttf +0 -0
  452. zenml/zen_server/dashboard_legacy/static/media/Rubik-Regular.b3d0902b.ttf +0 -0
  453. zenml/zen_server/dashboard_legacy/static/media/Run.daec4fb2.svg +0 -6
  454. zenml/zen_server/dashboard_legacy/static/media/Search.d1afcce5.svg +0 -4
  455. zenml/zen_server/dashboard_legacy/static/media/Settings.59ca73ae.svg +0 -4
  456. zenml/zen_server/dashboard_legacy/static/media/Share2.46c3ff66.svg +0 -3
  457. zenml/zen_server/dashboard_legacy/static/media/SignOut.6aa718c5.svg +0 -3
  458. zenml/zen_server/dashboard_legacy/static/media/SimplePlus.5cf7ec20.svg +0 -3
  459. zenml/zen_server/dashboard_legacy/static/media/SingleUser.bef3a095.svg +0 -4
  460. zenml/zen_server/dashboard_legacy/static/media/SourceCodePro-Regular.b484b32f.ttf +0 -0
  461. zenml/zen_server/dashboard_legacy/static/media/Stack.19b604ac.svg +0 -5
  462. zenml/zen_server/dashboard_legacy/static/media/StackComponent.b1ba90b5.svg +0 -4
  463. zenml/zen_server/dashboard_legacy/static/media/Star.f0c25022.svg +0 -9
  464. zenml/zen_server/dashboard_legacy/static/media/StarOutline.94ca8cd9.svg +0 -3
  465. zenml/zen_server/dashboard_legacy/static/media/Storefront.4b4796fe.svg +0 -3
  466. zenml/zen_server/dashboard_legacy/static/media/Stream.543e3039.svg +0 -3
  467. zenml/zen_server/dashboard_legacy/static/media/SupportAgent.510ddf1f.svg +0 -8
  468. zenml/zen_server/dashboard_legacy/static/media/Table.77033750.svg +0 -6
  469. zenml/zen_server/dashboard_legacy/static/media/Tool.d5785486.svg +0 -3
  470. zenml/zen_server/dashboard_legacy/static/media/UserPlus.741a99d7.svg +0 -6
  471. zenml/zen_server/dashboard_legacy/static/media/Verified.0625b2a0.svg +0 -3
  472. zenml/zen_server/dashboard_legacy/static/media/addNew.4fb6c939.svg +0 -8
  473. zenml/zen_server/dashboard_legacy/static/media/arrowClose.cbd53f3f.svg +0 -3
  474. zenml/zen_server/dashboard_legacy/static/media/arrowOpen.6ceef0af.svg +0 -3
  475. zenml/zen_server/dashboard_legacy/static/media/check_small.30bc0138.svg +0 -3
  476. zenml/zen_server/dashboard_legacy/static/media/circleArrowSideClose.98d6013e.svg +0 -18
  477. zenml/zen_server/dashboard_legacy/static/media/circleArrowSideOpen.63653df6.svg +0 -18
  478. zenml/zen_server/dashboard_legacy/static/media/image.104fd14b.png +0 -0
  479. zenml/zen_server/dashboard_legacy/static/media/imageAddIcon.e83004a9.svg +0 -7
  480. zenml/zen_server/dashboard_legacy/static/media/logo.93333e5c.svg +0 -1
  481. zenml/zen_server/dashboard_legacy/static/media/logo_small.4204397d.svg +0 -3
  482. zenml/zen_server/dashboard_legacy/static/media/logo_white.d4b4414e.svg +0 -20
  483. zenml/zen_server/dashboard_legacy/static/media/notConnected.5e2c8ea7.svg +0 -8
  484. zenml/zen_server/dashboard_legacy/static/media/plugin-fallback.72c294e6.svg +0 -6
  485. zenml/zen_server/dashboard_legacy/static/media/share.bcd998b0.svg +0 -5
  486. zenml/zen_server/dashboard_legacy/static/media/stars.08a9b19a.svg +0 -8
  487. zenml/zen_server/deploy/terraform/__init__.py +0 -41
  488. zenml/zen_server/deploy/terraform/providers/__init__.py +0 -14
  489. zenml/zen_server/deploy/terraform/providers/aws_provider.py +0 -61
  490. zenml/zen_server/deploy/terraform/providers/azure_provider.py +0 -59
  491. zenml/zen_server/deploy/terraform/providers/gcp_provider.py +0 -59
  492. zenml/zen_server/deploy/terraform/providers/terraform_provider.py +0 -331
  493. zenml/zen_server/deploy/terraform/recipes/aws/.gitignore +0 -8
  494. zenml/zen_server/deploy/terraform/recipes/aws/helm.tf +0 -20
  495. zenml/zen_server/deploy/terraform/recipes/aws/ingress.tf +0 -30
  496. zenml/zen_server/deploy/terraform/recipes/aws/outputs.tf +0 -7
  497. zenml/zen_server/deploy/terraform/recipes/aws/printf.cmd +0 -2
  498. zenml/zen_server/deploy/terraform/recipes/aws/sql.tf +0 -62
  499. zenml/zen_server/deploy/terraform/recipes/aws/terraform.tf +0 -44
  500. zenml/zen_server/deploy/terraform/recipes/aws/variables.tf +0 -167
  501. zenml/zen_server/deploy/terraform/recipes/aws/vpc.tf +0 -47
  502. zenml/zen_server/deploy/terraform/recipes/aws/zen_server.tf +0 -103
  503. zenml/zen_server/deploy/terraform/recipes/azure/.gitignore +0 -8
  504. zenml/zen_server/deploy/terraform/recipes/azure/helm.tf +0 -20
  505. zenml/zen_server/deploy/terraform/recipes/azure/ingress.tf +0 -30
  506. zenml/zen_server/deploy/terraform/recipes/azure/key_vault.tf +0 -73
  507. zenml/zen_server/deploy/terraform/recipes/azure/outputs.tf +0 -7
  508. zenml/zen_server/deploy/terraform/recipes/azure/printf.cmd +0 -2
  509. zenml/zen_server/deploy/terraform/recipes/azure/rg.tf +0 -36
  510. zenml/zen_server/deploy/terraform/recipes/azure/sql.tf +0 -65
  511. zenml/zen_server/deploy/terraform/recipes/azure/terraform.tf +0 -52
  512. zenml/zen_server/deploy/terraform/recipes/azure/variables.tf +0 -176
  513. zenml/zen_server/deploy/terraform/recipes/azure/zen_server.tf +0 -103
  514. zenml/zen_server/deploy/terraform/recipes/gcp/.gitignore +0 -8
  515. zenml/zen_server/deploy/terraform/recipes/gcp/helm.tf +0 -20
  516. zenml/zen_server/deploy/terraform/recipes/gcp/ingress.tf +0 -30
  517. zenml/zen_server/deploy/terraform/recipes/gcp/outputs.tf +0 -7
  518. zenml/zen_server/deploy/terraform/recipes/gcp/printf.cmd +0 -2
  519. zenml/zen_server/deploy/terraform/recipes/gcp/sql.tf +0 -64
  520. zenml/zen_server/deploy/terraform/recipes/gcp/terraform.tf +0 -44
  521. zenml/zen_server/deploy/terraform/recipes/gcp/variables.tf +0 -171
  522. zenml/zen_server/deploy/terraform/recipes/gcp/zen_server.tf +0 -114
  523. zenml/zen_server/deploy/terraform/terraform_zen_server.py +0 -246
  524. /zenml/{new/pipelines → pipelines}/build_utils.py +0 -0
  525. /zenml/{new/pipelines → pipelines}/run_utils.py +0 -0
  526. /zenml/{new/steps → steps}/decorated_step.py +0 -0
  527. {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241027.dist-info}/LICENSE +0 -0
  528. {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241027.dist-info}/entry_points.txt +0 -0
zenml/cli/stack.py CHANGED
@@ -14,12 +14,10 @@
14
14
  """CLI for manipulating ZenML local and global config file."""
15
15
 
16
16
  import getpass
17
- import os
18
17
  import re
19
18
  import time
20
19
  import webbrowser
21
20
  from datetime import datetime
22
- from pathlib import Path
23
21
  from typing import (
24
22
  TYPE_CHECKING,
25
23
  Any,
@@ -46,23 +44,14 @@ from zenml.cli.cli import TagGroup, cli
46
44
  from zenml.cli.text_utils import OldSchoolMarkdownHeading
47
45
  from zenml.cli.utils import (
48
46
  _component_display_name,
49
- confirmation,
50
- declare,
51
- error,
52
47
  is_sorted_or_filtered,
53
48
  list_options,
54
49
  print_model_url,
55
50
  print_page_info,
56
51
  print_stacks_table,
57
- verify_mlstacks_prerequisites_installation,
58
52
  )
59
53
  from zenml.client import Client
60
54
  from zenml.console import console
61
- from zenml.constants import (
62
- ALPHA_MESSAGE,
63
- MLSTACKS_SUPPORTED_STACK_COMPONENTS,
64
- STACK_RECIPE_MODULAR_RECIPES,
65
- )
66
55
  from zenml.enums import (
67
56
  CliCategories,
68
57
  StackComponentType,
@@ -70,9 +59,7 @@ from zenml.enums import (
70
59
  )
71
60
  from zenml.exceptions import (
72
61
  IllegalOperationError,
73
- ProvisioningError,
74
62
  )
75
- from zenml.io.fileio import rmtree
76
63
  from zenml.logger import get_logger
77
64
  from zenml.models import (
78
65
  ComponentInfo,
@@ -89,16 +76,6 @@ from zenml.service_connectors.service_connector_utils import (
89
76
  get_resources_options_from_resource_model_for_full_stack,
90
77
  )
91
78
  from zenml.utils.dashboard_utils import get_component_url, get_stack_url
92
- from zenml.utils.io_utils import create_dir_recursive_if_not_exists
93
- from zenml.utils.mlstacks_utils import (
94
- convert_click_params_to_mlstacks_primitives,
95
- convert_mlstacks_primitives_to_dicts,
96
- deploy_mlstacks_stack,
97
- get_stack_spec_file_path,
98
- stack_exists,
99
- stack_spec_exists,
100
- verify_spec_and_tf_files_exist,
101
- )
102
79
  from zenml.utils.yaml_utils import read_yaml, write_yaml
103
80
 
104
81
  if TYPE_CHECKING:
@@ -990,21 +967,11 @@ def list_stacks(ctx: click.Context, **kwargs: Any) -> None:
990
967
  type=click.STRING,
991
968
  required=False,
992
969
  )
993
- @click.option(
994
- "--outputs",
995
- "-o",
996
- is_flag=True,
997
- default=False,
998
- help="Include the outputs from mlstacks deployments.",
999
- )
1000
- def describe_stack(
1001
- stack_name_or_id: Optional[str] = None, outputs: bool = False
1002
- ) -> None:
970
+ def describe_stack(stack_name_or_id: Optional[str] = None) -> None:
1003
971
  """Show details about a named stack or the active stack.
1004
972
 
1005
973
  Args:
1006
974
  stack_name_or_id: Name of the stack to describe.
1007
- outputs: Include the outputs from mlstacks deployments.
1008
975
  """
1009
976
  client = Client()
1010
977
 
@@ -1020,8 +987,6 @@ def describe_stack(
1020
987
  stack=stack_,
1021
988
  active=stack_.id == client.active_stack_model.id,
1022
989
  )
1023
- if outputs:
1024
- cli_utils.print_stack_outputs(stack_)
1025
990
 
1026
991
  print_model_url(get_stack_url(stack_))
1027
992
 
@@ -1126,51 +1091,6 @@ def get_active_stack() -> None:
1126
1091
  cli_utils.error(str(err))
1127
1092
 
1128
1093
 
1129
- @stack.command("up")
1130
- def up_stack() -> None:
1131
- """Provisions resources for the active stack."""
1132
- stack_ = Client().active_stack
1133
-
1134
- cli_utils.declare(
1135
- f"Provisioning resources for active stack '{stack_.name}'."
1136
- )
1137
- try:
1138
- stack_.provision()
1139
- stack_.resume()
1140
- except ProvisioningError as e:
1141
- cli_utils.error(str(e))
1142
-
1143
-
1144
- @stack.command(
1145
- "down", help="Suspends resources of the active stack deployment."
1146
- )
1147
- @click.option(
1148
- "--force",
1149
- "-f",
1150
- "force",
1151
- is_flag=True,
1152
- help="Deprovisions local resources instead of suspending them.",
1153
- )
1154
- def down_stack(force: bool = False) -> None:
1155
- """Suspends resources of the active stack deployment.
1156
-
1157
- Args:
1158
- force: Deprovisions local resources instead of suspending them.
1159
- """
1160
- stack_ = Client().active_stack
1161
-
1162
- if force:
1163
- cli_utils.declare(
1164
- f"Deprovisioning resources for active stack '{stack_.name}'."
1165
- )
1166
- stack_.deprovision()
1167
- else:
1168
- cli_utils.declare(
1169
- f"Suspending resources for active stack '{stack_.name}'."
1170
- )
1171
- stack_.suspend()
1172
-
1173
-
1174
1094
  @stack.command("export", help="Exports a stack to a YAML file.")
1175
1095
  @click.argument("stack_name_or_id", type=str, required=False)
1176
1096
  @click.argument("filename", type=str, required=False)
@@ -1487,105 +1407,6 @@ def register_secrets(
1487
1407
  client.update_secret(secret_name, add_or_update_values=secret_values)
1488
1408
 
1489
1409
 
1490
- def _get_deployment_params_interactively(
1491
- click_params: Dict[str, Any],
1492
- ) -> Dict[str, Any]:
1493
- """Get deployment values from command line arguments.
1494
-
1495
- Args:
1496
- click_params: Required and pre-existing values.
1497
-
1498
- Returns:
1499
- Full deployment arguments.
1500
- """
1501
- deployment_values = {
1502
- "provider": click_params["provider"],
1503
- "stack_name": click_params["stack_name"],
1504
- "region": click_params["region"],
1505
- }
1506
- for component_type in MLSTACKS_SUPPORTED_STACK_COMPONENTS:
1507
- verify_mlstacks_prerequisites_installation()
1508
- from mlstacks.constants import ALLOWED_FLAVORS
1509
-
1510
- if (
1511
- click.prompt(
1512
- f"Enable {component_type}?",
1513
- type=click.Choice(["y", "n"]),
1514
- default="n",
1515
- )
1516
- == "y"
1517
- ):
1518
- component_flavor = click.prompt(
1519
- f" Enter {component_type} flavor",
1520
- type=click.Choice(ALLOWED_FLAVORS[component_type]),
1521
- )
1522
- deployment_values[component_type] = component_flavor
1523
-
1524
- if (
1525
- click.prompt(
1526
- "Deploy using debug_mode?",
1527
- type=click.Choice(["y", "n"]),
1528
- default="n",
1529
- )
1530
- == "y"
1531
- ):
1532
- deployment_values["debug_mode"] = True
1533
-
1534
- extra_config = []
1535
- # use click.prompt to populate extra_config until someone just hits enter
1536
- while True:
1537
- declare(
1538
- "\nAdd to extra_config for stack deployment -->\n",
1539
- bold=True,
1540
- )
1541
- key = click.prompt(
1542
- "Enter `extra_config` key or hit enter to skip",
1543
- type=str,
1544
- default="",
1545
- )
1546
- if key == "":
1547
- break
1548
- value = click.prompt(
1549
- f"Enter value for '{key}'",
1550
- type=str,
1551
- )
1552
- extra_config.append(f"{key}={value}")
1553
-
1554
- # get mandatory GCP project_id if provider is GCP
1555
- # skip if project_id already specified in extra_config
1556
- if click_params["provider"] == "gcp" and not any(
1557
- s.startswith("project_id=") for s in extra_config
1558
- ):
1559
- project_id = click.prompt("What is your GCP project_id?", type=str)
1560
- extra_config.append(f"project_id={project_id}")
1561
- declare(f"Project ID '{project_id}' added to extra_config.")
1562
-
1563
- deployment_values["extra_config"] = extra_config
1564
-
1565
- tags = []
1566
- # use click.prompt to populate tags until someone just hits enter
1567
- while True:
1568
- declare(
1569
- "\nAdd to tags for stack deployment -->\n",
1570
- bold=True,
1571
- )
1572
- tag = click.prompt(
1573
- "Enter `tags` key or hit enter to skip",
1574
- type=str,
1575
- default="",
1576
- )
1577
- if tag == "":
1578
- break
1579
- value = click.prompt(
1580
- f"Enter value for '{tag}'",
1581
- type=str,
1582
- )
1583
- tags.append(f"{tag}={value}")
1584
- deployment_values["tags"] = tags
1585
-
1586
- return deployment_values
1587
-
1588
-
1589
1410
  def validate_name(ctx: click.Context, param: str, value: str) -> str:
1590
1411
  """Validate the name of the stack.
1591
1412
 
@@ -1838,393 +1659,6 @@ To use the `{deployed_stack.stack.name}` stack to run pipelines:
1838
1659
  )
1839
1660
 
1840
1661
 
1841
- @stack.command(help="[DEPRECATED] Deploy a stack using mlstacks.")
1842
- @click.option(
1843
- "--provider",
1844
- "-p",
1845
- "provider",
1846
- required=True,
1847
- type=click.Choice(STACK_RECIPE_MODULAR_RECIPES),
1848
- )
1849
- @click.option(
1850
- "--name",
1851
- "-n",
1852
- "stack_name",
1853
- type=click.STRING,
1854
- required=True,
1855
- help="Set a name for the ZenML stack that will be imported from the YAML "
1856
- "configuration file which gets generated after deploying the stack recipe. "
1857
- "Defaults to the name of the stack recipe being deployed.",
1858
- )
1859
- @click.option(
1860
- "--region",
1861
- "-r",
1862
- "region",
1863
- type=click.STRING,
1864
- required=True,
1865
- help="The region to deploy the stack to.",
1866
- )
1867
- @click.option(
1868
- "--no-import",
1869
- "-ni",
1870
- "no_import_stack_flag",
1871
- is_flag=True,
1872
- help="If you don't want the stack to be imported automatically.",
1873
- )
1874
- @click.option(
1875
- "--artifact-store",
1876
- "-a",
1877
- "artifact_store",
1878
- required=False,
1879
- is_flag=True,
1880
- help="Whether to deploy an artifact store.",
1881
- )
1882
- @click.option(
1883
- "--container-registry",
1884
- "-c",
1885
- "container_registry",
1886
- required=False,
1887
- is_flag=True,
1888
- help="Whether to deploy a container registry.",
1889
- )
1890
- @click.option(
1891
- "--mlops-platform",
1892
- "-m",
1893
- "mlops_platform",
1894
- type=click.Choice(["zenml"]),
1895
- required=False,
1896
- help="The flavor of MLOps platform to use."
1897
- "If not specified, the default MLOps platform will be used.",
1898
- )
1899
- @click.option(
1900
- "--orchestrator",
1901
- "-o",
1902
- required=False,
1903
- type=click.Choice(
1904
- [
1905
- "kubernetes",
1906
- "kubeflow",
1907
- "tekton",
1908
- "sagemaker",
1909
- "skypilot",
1910
- "vertex",
1911
- ]
1912
- ),
1913
- help="The flavor of orchestrator to use. "
1914
- "If not specified, the default orchestrator will be used.",
1915
- )
1916
- @click.option(
1917
- "--model-deployer",
1918
- "-md",
1919
- "model_deployer",
1920
- required=False,
1921
- type=click.Choice(["mlflow", "seldon"]),
1922
- help="The flavor of model deployer to use. ",
1923
- )
1924
- @click.option(
1925
- "--experiment-tracker",
1926
- "-e",
1927
- "experiment_tracker",
1928
- required=False,
1929
- type=click.Choice(["mlflow"]),
1930
- help="The flavor of experiment tracker to use.",
1931
- )
1932
- @click.option(
1933
- "--step-operator",
1934
- "-s",
1935
- "step_operator",
1936
- required=False,
1937
- type=click.Choice(["sagemaker"]),
1938
- help="The flavor of step operator to use.",
1939
- )
1940
- @click.option(
1941
- "--file",
1942
- "-f",
1943
- "file",
1944
- required=False,
1945
- type=click.Path(exists=True, dir_okay=False, readable=True),
1946
- help="Use a YAML specification file as the basis of the stack deployment.",
1947
- )
1948
- @click.option(
1949
- "--debug-mode",
1950
- "-d",
1951
- "debug_mode",
1952
- is_flag=True,
1953
- default=False,
1954
- help="Whether to run the stack deployment in debug mode.",
1955
- )
1956
- @click.option(
1957
- "--extra-config",
1958
- "-x",
1959
- "extra_config",
1960
- multiple=True,
1961
- help="Extra configurations as key=value pairs. This option can be used multiple times.",
1962
- )
1963
- @click.option(
1964
- "--tags",
1965
- "-t",
1966
- "tags",
1967
- required=False,
1968
- type=click.STRING,
1969
- help="Pass one or more tags.",
1970
- multiple=True,
1971
- )
1972
- @click.option(
1973
- "--interactive",
1974
- "-i",
1975
- "interactive",
1976
- is_flag=True,
1977
- default=False,
1978
- help="Deploy the stack interactively.",
1979
- )
1980
- @click.pass_context
1981
- def deploy_mlstack(
1982
- ctx: click.Context,
1983
- provider: str,
1984
- stack_name: str,
1985
- region: str,
1986
- mlops_platform: Optional[str] = None,
1987
- orchestrator: Optional[str] = None,
1988
- model_deployer: Optional[str] = None,
1989
- experiment_tracker: Optional[str] = None,
1990
- step_operator: Optional[str] = None,
1991
- no_import_stack_flag: bool = False,
1992
- artifact_store: Optional[bool] = None,
1993
- container_registry: Optional[bool] = None,
1994
- file: Optional[str] = None,
1995
- debug_mode: bool = False,
1996
- tags: Optional[List[str]] = None,
1997
- extra_config: Optional[List[str]] = None,
1998
- interactive: bool = False,
1999
- ) -> None:
2000
- """Deploy a stack with mlstacks.
2001
-
2002
- `zenml stack_recipe pull <STACK_RECIPE_NAME>` has to be called with the
2003
- same relative path before the `deploy` command.
2004
-
2005
- Args:
2006
- ctx: The click context.
2007
- provider: The cloud provider to deploy the stack to.
2008
- stack_name: A name for the ZenML stack that gets imported as a result
2009
- of the recipe deployment.
2010
- no_import_stack_flag: If you don't want the stack to be imported into
2011
- ZenML after deployment.
2012
- artifact_store: The flavor of artifact store to deploy. In the case of
2013
- the artifact store, it doesn't matter what you specify here, as
2014
- there's only one flavor per cloud provider and that will be deployed.
2015
- orchestrator: The flavor of orchestrator to use.
2016
- container_registry: The flavor of container registry to deploy. In the case of
2017
- the container registry, it doesn't matter what you specify here, as
2018
- there's only one flavor per cloud provider and that will be deployed.
2019
- model_deployer: The flavor of model deployer to deploy.
2020
- experiment_tracker: The flavor of experiment tracker to deploy.
2021
- step_operator: The flavor of step operator to deploy.
2022
- extra_config: Extra configurations as key=value pairs.
2023
- tags: Pass one or more tags.
2024
- debug_mode: Whether to run the stack deployment in debug mode.
2025
- file: Use a YAML specification file as the basis of the stack
2026
- deployment.
2027
- mlops_platform: The flavor of MLOps platform to use.
2028
- region: The region to deploy the stack to.
2029
- interactive: Deploy the stack interactively.
2030
- """
2031
- cli_utils.warning(
2032
- "The `zenml stack deploy-mlstack` (former `zenml stack deploy`) CLI "
2033
- "command has been deprecated and will be removed in a future release. "
2034
- "Please use `zenml stack deploy` instead for a simplified "
2035
- "experience."
2036
- )
2037
-
2038
- with track_handler(
2039
- event=AnalyticsEvent.DEPLOY_STACK,
2040
- ) as analytics_handler:
2041
- if stack_exists(stack_name):
2042
- cli_utils.error(
2043
- f"Stack with name '{stack_name}' already exists. Please choose a "
2044
- "different name."
2045
- )
2046
- elif stack_spec_exists(stack_name):
2047
- cli_utils.error(
2048
- f"Stack spec for stack named '{stack_name}' already exists. "
2049
- "Please choose a different name."
2050
- )
2051
-
2052
- cli_utils.declare("Checking prerequisites are installed...")
2053
- cli_utils.verify_mlstacks_prerequisites_installation()
2054
- cli_utils.warning(ALPHA_MESSAGE)
2055
-
2056
- if not file:
2057
- cli_params: Dict[str, Any] = ctx.params
2058
- if interactive:
2059
- cli_params = _get_deployment_params_interactively(cli_params)
2060
- stack, components = convert_click_params_to_mlstacks_primitives(
2061
- cli_params
2062
- )
2063
-
2064
- from mlstacks.utils import zenml_utils
2065
-
2066
- cli_utils.declare("Checking flavor compatibility...")
2067
- if not zenml_utils.has_valid_flavor_combinations(
2068
- stack, components
2069
- ):
2070
- cli_utils.error(
2071
- "The specified stack and component flavors are not compatible "
2072
- "with the provider or with one another. Please try again."
2073
- )
2074
-
2075
- stack_dict, component_dicts = convert_mlstacks_primitives_to_dicts(
2076
- stack, components
2077
- )
2078
- # write the stack and component yaml files
2079
- from mlstacks.constants import MLSTACKS_PACKAGE_NAME
2080
-
2081
- spec_dir = os.path.join(
2082
- click.get_app_dir(MLSTACKS_PACKAGE_NAME),
2083
- "stack_specs",
2084
- stack.name,
2085
- )
2086
- cli_utils.declare(f"Writing spec files to {spec_dir}...")
2087
- create_dir_recursive_if_not_exists(spec_dir)
2088
-
2089
- stack_file_path = os.path.join(
2090
- spec_dir, f"stack-{stack.name}.yaml"
2091
- )
2092
- write_yaml(file_path=stack_file_path, contents=stack_dict)
2093
- for component in component_dicts:
2094
- write_yaml(
2095
- file_path=os.path.join(
2096
- spec_dir, f"{component['name']}.yaml"
2097
- ),
2098
- contents=component,
2099
- )
2100
- else:
2101
- declare("Importing from stack specification file...")
2102
- stack_file_path = file
2103
-
2104
- from mlstacks.utils.yaml_utils import load_stack_yaml
2105
-
2106
- stack = load_stack_yaml(stack_file_path)
2107
-
2108
- analytics_handler.metadata = {
2109
- "stack_provider": stack.provider,
2110
- "debug_mode": debug_mode,
2111
- "no_import_stack_flag": no_import_stack_flag,
2112
- "user_created_spec": bool(file),
2113
- "mlops_platform": mlops_platform,
2114
- "orchestrator": orchestrator,
2115
- "model_deployer": model_deployer,
2116
- "experiment_tracker": experiment_tracker,
2117
- "step_operator": step_operator,
2118
- "artifact_store": artifact_store,
2119
- "container_registry": container_registry,
2120
- }
2121
-
2122
- deploy_mlstacks_stack(
2123
- spec_file_path=stack_file_path,
2124
- stack_name=stack.name,
2125
- stack_provider=stack.provider,
2126
- debug_mode=debug_mode,
2127
- no_import_stack_flag=no_import_stack_flag,
2128
- user_created_spec=bool(file),
2129
- )
2130
-
2131
-
2132
- @stack.command(
2133
- help="Destroy stack components created previously with "
2134
- "`zenml stack deploy`"
2135
- )
2136
- @click.argument("stack_name", required=True)
2137
- @click.option(
2138
- "--debug",
2139
- "-d",
2140
- "debug_mode",
2141
- is_flag=True,
2142
- default=False,
2143
- help="Whether to run Terraform in debug mode.",
2144
- )
2145
- def destroy(
2146
- stack_name: str,
2147
- debug_mode: bool = False,
2148
- ) -> None:
2149
- """Destroy all resources previously created with `zenml stack deploy`.
2150
-
2151
- Args:
2152
- stack_name: Name of the stack
2153
- debug_mode: Whether to run Terraform in debug mode.
2154
- """
2155
- if not confirmation(
2156
- f"Are you sure you want to destroy stack '{stack_name}' and all "
2157
- "associated infrastructure?"
2158
- ):
2159
- error("Aborting stack destroy...")
2160
-
2161
- with track_handler(
2162
- event=AnalyticsEvent.DESTROY_STACK,
2163
- ) as analytics_handler:
2164
- analytics_handler.metadata["debug_mode"] = debug_mode
2165
- cli_utils.verify_mlstacks_prerequisites_installation()
2166
- from mlstacks.constants import MLSTACKS_PACKAGE_NAME
2167
-
2168
- # check the stack actually exists
2169
- if not stack_exists(stack_name):
2170
- cli_utils.error(
2171
- f"Stack with name '{stack_name}' does not exist. Please check and "
2172
- "try again."
2173
- )
2174
-
2175
- spec_file_path = get_stack_spec_file_path(stack_name)
2176
- spec_files_dir: str = os.path.join(
2177
- click.get_app_dir(MLSTACKS_PACKAGE_NAME), "stack_specs", stack_name
2178
- )
2179
- user_created_spec = str(Path(spec_file_path).parent) != spec_files_dir
2180
-
2181
- provider = read_yaml(file_path=spec_file_path).get("provider")
2182
- tf_definitions_path: str = os.path.join(
2183
- click.get_app_dir(MLSTACKS_PACKAGE_NAME),
2184
- "terraform",
2185
- f"{provider}-modular",
2186
- )
2187
-
2188
- cli_utils.declare(
2189
- "Checking Terraform definitions and spec files are present..."
2190
- )
2191
- verify_spec_and_tf_files_exist(spec_file_path, tf_definitions_path)
2192
-
2193
- from mlstacks.utils import terraform_utils
2194
-
2195
- cli_utils.declare(
2196
- f"Destroying stack '{stack_name}' using Terraform..."
2197
- )
2198
- terraform_utils.destroy_stack(
2199
- stack_path=spec_file_path, debug_mode=debug_mode
2200
- )
2201
- cli_utils.declare(f"Stack '{stack_name}' successfully destroyed.")
2202
-
2203
- if cli_utils.confirmation(
2204
- f"Would you like to recursively delete the associated ZenML "
2205
- f"stack '{stack_name}'?\nThis will delete the stack and any "
2206
- "underlying stack components."
2207
- ):
2208
- from zenml.client import Client
2209
-
2210
- client = Client()
2211
- client.delete_stack(name_id_or_prefix=stack_name, recursive=True)
2212
- cli_utils.declare(
2213
- f"Stack '{stack_name}' successfully deleted from ZenML."
2214
- )
2215
-
2216
- spec_dir = os.path.dirname(spec_file_path)
2217
- if not user_created_spec and cli_utils.confirmation(
2218
- f"Would you like to delete the `mlstacks` spec directory for "
2219
- f"this stack, located at {spec_dir}?"
2220
- ):
2221
- rmtree(spec_files_dir)
2222
- cli_utils.declare(
2223
- f"Spec directory for stack '{stack_name}' successfully deleted."
2224
- )
2225
- cli_utils.declare(f"Stack '{stack_name}' successfully destroyed.")
2226
-
2227
-
2228
1662
  @stack.command(
2229
1663
  "connect",
2230
1664
  help="Connect a service-connector to a stack's components. "