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

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