zenml-nightly 0.75.0.dev20250318__py3-none-any.whl → 0.80.0.dev20250322__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 (270) hide show
  1. zenml/VERSION +1 -1
  2. zenml/__init__.py +3 -1
  3. zenml/artifacts/artifact_config.py +2 -2
  4. zenml/artifacts/utils.py +4 -8
  5. zenml/cli/__init__.py +6 -6
  6. zenml/cli/base.py +2 -2
  7. zenml/cli/login.py +2 -2
  8. zenml/cli/project.py +1 -1
  9. zenml/cli/server.py +6 -4
  10. zenml/cli/service_accounts.py +2 -2
  11. zenml/cli/service_connectors.py +1 -1
  12. zenml/cli/stack.py +1 -1
  13. zenml/cli/stack_components.py +1 -1
  14. zenml/cli/user_management.py +1 -1
  15. zenml/cli/utils.py +3 -3
  16. zenml/client.py +9 -9
  17. zenml/config/compiler.py +1 -1
  18. zenml/config/server_config.py +1 -1
  19. zenml/constants.py +2 -1
  20. zenml/enums.py +12 -0
  21. zenml/integrations/__init__.py +0 -64
  22. zenml/integrations/airflow/__init__.py +0 -2
  23. zenml/integrations/argilla/__init__.py +0 -1
  24. zenml/integrations/aws/__init__.py +0 -3
  25. zenml/integrations/azure/__init__.py +0 -2
  26. zenml/integrations/azure/service_connectors/azure_service_connector.py +1 -1
  27. zenml/integrations/bentoml/__init__.py +0 -2
  28. zenml/integrations/bentoml/services/bentoml_container_deployment.py +2 -2
  29. zenml/integrations/bentoml/services/bentoml_local_deployment.py +1 -1
  30. zenml/integrations/bentoml/steps/bentoml_deployer.py +1 -1
  31. zenml/integrations/bitbucket/__init__.py +0 -2
  32. zenml/integrations/comet/__init__.py +0 -2
  33. zenml/integrations/databricks/__init__.py +0 -2
  34. zenml/integrations/databricks/services/databricks_deployment.py +3 -1
  35. zenml/integrations/deepchecks/__init__.py +0 -2
  36. zenml/integrations/discord/__init__.py +0 -2
  37. zenml/integrations/evidently/__init__.py +0 -2
  38. zenml/integrations/facets/__init__.py +0 -2
  39. zenml/integrations/feast/__init__.py +0 -2
  40. zenml/integrations/gcp/__init__.py +0 -3
  41. zenml/integrations/github/__init__.py +0 -2
  42. zenml/integrations/github/code_repositories/github_code_repository.py +7 -2
  43. zenml/integrations/gitlab/__init__.py +0 -1
  44. zenml/integrations/gitlab/code_repositories/gitlab_code_repository.py +5 -2
  45. zenml/integrations/great_expectations/__init__.py +0 -3
  46. zenml/integrations/huggingface/__init__.py +0 -1
  47. zenml/integrations/huggingface/services/huggingface_deployment.py +3 -1
  48. zenml/integrations/hyperai/__init__.py +0 -2
  49. zenml/integrations/kaniko/__init__.py +0 -2
  50. zenml/integrations/kubeflow/__init__.py +0 -1
  51. zenml/integrations/kubernetes/__init__.py +0 -2
  52. zenml/integrations/kubernetes/flavors/kubernetes_orchestrator_flavor.py +4 -0
  53. zenml/integrations/kubernetes/orchestrators/kube_utils.py +89 -1
  54. zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator.py +124 -83
  55. zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator_entrypoint.py +44 -10
  56. zenml/integrations/kubernetes/orchestrators/manifest_utils.py +33 -1
  57. zenml/integrations/label_studio/__init__.py +0 -2
  58. zenml/integrations/langchain/__init__.py +0 -2
  59. zenml/integrations/lightgbm/__init__.py +0 -1
  60. zenml/integrations/lightning/__init__.py +0 -2
  61. zenml/integrations/mlflow/__init__.py +1 -3
  62. zenml/integrations/mlflow/services/mlflow_deployment.py +1 -1
  63. zenml/integrations/modal/__init__.py +0 -1
  64. zenml/integrations/neptune/__init__.py +0 -2
  65. zenml/integrations/neural_prophet/__init__.py +0 -2
  66. zenml/integrations/numpy/__init__.py +0 -2
  67. zenml/integrations/openai/__init__.py +0 -1
  68. zenml/integrations/pandas/__init__.py +0 -2
  69. zenml/integrations/pigeon/__init__.py +0 -1
  70. zenml/integrations/pillow/__init__.py +0 -3
  71. zenml/integrations/polars/__init__.py +0 -2
  72. zenml/integrations/prodigy/__init__.py +0 -1
  73. zenml/integrations/pycaret/__init__.py +0 -2
  74. zenml/integrations/pytorch/__init__.py +0 -1
  75. zenml/integrations/pytorch_lightning/__init__.py +0 -2
  76. zenml/integrations/registry.py +34 -0
  77. zenml/integrations/s3/__init__.py +0 -2
  78. zenml/integrations/scipy/__init__.py +0 -2
  79. zenml/integrations/seldon/__init__.py +0 -2
  80. zenml/integrations/seldon/services/seldon_deployment.py +3 -2
  81. zenml/integrations/sklearn/__init__.py +1 -1
  82. zenml/integrations/skypilot/orchestrators/skypilot_base_vm_orchestrator.py +43 -18
  83. zenml/integrations/skypilot_aws/__init__.py +1 -3
  84. zenml/integrations/skypilot_azure/__init__.py +1 -2
  85. zenml/integrations/skypilot_gcp/__init__.py +1 -3
  86. zenml/integrations/skypilot_kubernetes/__init__.py +1 -3
  87. zenml/integrations/skypilot_lambda/__init__.py +1 -3
  88. zenml/integrations/slack/__init__.py +0 -1
  89. zenml/integrations/spark/__init__.py +0 -1
  90. zenml/integrations/tekton/__init__.py +0 -1
  91. zenml/integrations/tensorboard/__init__.py +0 -2
  92. zenml/integrations/tensorboard/services/tensorboard_service.py +1 -1
  93. zenml/integrations/tensorflow/__init__.py +0 -2
  94. zenml/integrations/vllm/__init__.py +0 -1
  95. zenml/integrations/vllm/services/vllm_deployment.py +1 -1
  96. zenml/integrations/wandb/__init__.py +0 -1
  97. zenml/integrations/whylogs/__init__.py +0 -1
  98. zenml/integrations/xgboost/__init__.py +0 -2
  99. zenml/login/credentials.py +1 -1
  100. zenml/materializers/__init__.py +1 -0
  101. zenml/model_deployers/base_model_deployer.py +1 -1
  102. zenml/models/__init__.py +4 -0
  103. zenml/models/v2/base/filter.py +162 -54
  104. zenml/models/v2/base/scoped.py +132 -0
  105. zenml/models/v2/core/artifact_version.py +12 -33
  106. zenml/models/v2/core/model_version.py +12 -50
  107. zenml/models/v2/core/pipeline_run.py +12 -32
  108. zenml/models/v2/core/service.py +2 -2
  109. zenml/models/v2/core/step_run.py +15 -32
  110. zenml/{services/service_type.py → models/v2/misc/service.py} +1 -1
  111. zenml/orchestrators/step_run_utils.py +1 -1
  112. zenml/orchestrators/utils.py +1 -1
  113. zenml/services/__init__.py +3 -5
  114. zenml/services/container/container_service.py +2 -1
  115. zenml/services/local/local_service.py +2 -1
  116. zenml/services/service.py +3 -2
  117. zenml/services/service_endpoint.py +2 -1
  118. zenml/services/service_monitor.py +1 -1
  119. zenml/services/service_status.py +1 -12
  120. zenml/stack_deployments/aws_stack_deployment.py +10 -5
  121. zenml/stack_deployments/azure_stack_deployment.py +47 -41
  122. zenml/stack_deployments/constants.py +30 -0
  123. zenml/stack_deployments/gcp_stack_deployment.py +6 -0
  124. zenml/steps/entrypoint_function_utils.py +1 -1
  125. zenml/utils/dashboard_utils.py +73 -8
  126. zenml/utils/server_utils.py +52 -0
  127. zenml/zen_server/dashboard/assets/{404-BbAvjc7Z.js → 404-2I8egBQu.js} +1 -1
  128. zenml/zen_server/dashboard/assets/@reactflow-BHoFKFSZ.js +17 -0
  129. zenml/zen_server/dashboard/assets/{AlertDialogDropdownItem-XL2NfFgP.js → AlertDialogDropdownItem-D7KZcPFw.js} +1 -1
  130. zenml/zen_server/dashboard/assets/CodeSnippet-DUkCnBpQ.js +9 -0
  131. zenml/zen_server/dashboard/assets/{CollapsibleCard-Djtd_ocf.js → CollapsibleCard-B5-5Plnd.js} +1 -1
  132. zenml/zen_server/dashboard/assets/{Commands-V-hH_IKQ.js → Commands-CbOMmarC.js} +1 -1
  133. zenml/zen_server/dashboard/assets/{ComponentBadge-CVN2FsiW.js → ComponentBadge-FrujKBC6.js} +1 -1
  134. zenml/zen_server/dashboard/assets/ComponentIcon-Dx5fBrDX.js +1 -0
  135. zenml/zen_server/dashboard/assets/{CsvVizualization-CWaQcWIN.js → CsvVizualization-B8E3p9we.js} +1 -1
  136. zenml/zen_server/dashboard/assets/{DeleteAlertDialog-CTLRrcFM.js → DeleteAlertDialog-BgTZbbAt.js} +1 -1
  137. zenml/zen_server/dashboard/assets/{DialogItem-ST291Hsl.js → DialogItem-CNWLiJcc.js} +1 -1
  138. zenml/zen_server/dashboard/assets/{Error-CIBjAdSc.js → Error-BkUP4Luv.js} +1 -1
  139. zenml/zen_server/dashboard/assets/ExecutionStatus-CD8Vj7sp.js +1 -0
  140. zenml/zen_server/dashboard/assets/{Helpbox-cwQNH06F.js → Helpbox-DIx6mDOH.js} +1 -1
  141. zenml/zen_server/dashboard/assets/{Infobox-DYKoAVhW.js → Infobox-BHEdNmME.js} +1 -1
  142. zenml/zen_server/dashboard/assets/{InlineAvatar-Bk4QLPTU.js → InlineAvatar-Bin9UPKJ.js} +1 -1
  143. zenml/zen_server/dashboard/assets/{NestedCollapsible-CE4OF670.js → NestedCollapsible-Da-k0Mff.js} +1 -1
  144. zenml/zen_server/dashboard/assets/{Partials-cL1-u_sT.js → Partials-TNaYjHsV.js} +1 -1
  145. zenml/zen_server/dashboard/assets/ProBadge-BfPp-B97.js +1 -0
  146. zenml/zen_server/dashboard/assets/{ProCta-DtUutIul.js → ProCta-7_FtpX3I.js} +1 -1
  147. zenml/zen_server/dashboard/assets/ProviderIcon-CxeziA5a.js +1 -0
  148. zenml/zen_server/dashboard/assets/{ProviderRadio-C4bltH6-.js → ProviderRadio-DPmZHff_.js} +1 -1
  149. zenml/zen_server/dashboard/assets/RunSelector-BVKB4Z8F.js +1 -0
  150. zenml/zen_server/dashboard/assets/{RunsBody-D2VoO-cR.js → RunsBody-Cj4sIqQB.js} +1 -1
  151. zenml/zen_server/dashboard/assets/{SearchField-DfNxVtjV.js → SearchField-DjAOZic5.js} +1 -1
  152. zenml/zen_server/dashboard/assets/SecretTooltip-mMAAP4dM.js +1 -0
  153. zenml/zen_server/dashboard/assets/{SetPassword-CWl2mwz8.js → SetPassword-B0o5kSJU.js} +1 -1
  154. zenml/zen_server/dashboard/assets/{StackList-C8KNd00o.js → StackList-5UB8LoEq.js} +1 -1
  155. zenml/zen_server/dashboard/assets/{Tabs-BEWDPvPV.js → Tabs-AuhCyzle.js} +1 -1
  156. zenml/zen_server/dashboard/assets/Tick-CHW0jc8Y.js +1 -0
  157. zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-DCuCj7NK.js → UpdatePasswordSchemas-Bauivjf-.js} +1 -1
  158. zenml/zen_server/dashboard/assets/{UsageReason-CwUrEwEz.js → UsageReason-Dr5ca5M4.js} +1 -1
  159. zenml/zen_server/dashboard/assets/{Wizard-CynnoHg4.js → Wizard-XEp9rGmf.js} +1 -1
  160. zenml/zen_server/dashboard/assets/{WizardFooter-B2bYs89C.js → WizardFooter-BtL1Gi1k.js} +1 -1
  161. zenml/zen_server/dashboard/assets/{all-pipeline-runs-query-B509kMlL.js → all-pipeline-runs-query-COvsm3bC.js} +1 -1
  162. zenml/zen_server/dashboard/assets/configuration-form-BJUCr0wl.js +1 -0
  163. zenml/zen_server/dashboard/assets/{create-stack-BjWXz5nx.js → create-stack-B2c98UlP.js} +1 -1
  164. zenml/zen_server/dashboard/assets/{delete-run-CzPWbsBy.js → delete-run-Do3XyF4W.js} +1 -1
  165. zenml/zen_server/dashboard/assets/flavor-select-D8CranSY.js +1 -0
  166. zenml/zen_server/dashboard/assets/{form-schemas-B6u3P_a4.js → form-schemas-Bm-dTV3L.js} +1 -1
  167. zenml/zen_server/dashboard/assets/{index-BCKg1Y5r.css → index-6mLFgFwe.css} +1 -1
  168. zenml/zen_server/dashboard/assets/{index-Bjeu4_0O.js → index-CzhJC6pc.js} +1 -1
  169. zenml/zen_server/dashboard/assets/{index-CaRx22lH.js → index-D-n6tspq.js} +1 -1
  170. zenml/zen_server/dashboard/assets/{index-DWoLoYDY.js → index-DPjvk73v.js} +8 -8
  171. zenml/zen_server/dashboard/assets/{index-Dba8yULY.js → index-eIIP-0dQ.js} +1 -1
  172. zenml/zen_server/dashboard/assets/login-mutation-D6uiKsKk.js +1 -0
  173. zenml/zen_server/dashboard/assets/{not-found-DGQ8rm7B.js → not-found-DFrksY0r.js} +1 -1
  174. zenml/zen_server/dashboard/assets/page-B-uHUFcm.js +1 -0
  175. zenml/zen_server/dashboard/assets/page-B0Llmzo_.js +1 -0
  176. zenml/zen_server/dashboard/assets/page-B150LbzG.js +1 -0
  177. zenml/zen_server/dashboard/assets/{page-CfeQbejg.js → page-B1Un9vAU.js} +1 -1
  178. zenml/zen_server/dashboard/assets/{page-CxrLV30P.js → page-B80TE04v.js} +1 -1
  179. zenml/zen_server/dashboard/assets/page-BIseZTJt.js +2 -0
  180. zenml/zen_server/dashboard/assets/{page-C5xq6rqE.js → page-BJ15SGwt.js} +1 -1
  181. zenml/zen_server/dashboard/assets/{page-B6msmF1h.js → page-BJrZsPSh.js} +1 -1
  182. zenml/zen_server/dashboard/assets/page-BMZaECzB.js +1 -0
  183. zenml/zen_server/dashboard/assets/{page-D1upvSPi.js → page-BTvnIFGR.js} +1 -1
  184. zenml/zen_server/dashboard/assets/{page-DLw1Apss.js → page-BXh1mF-D.js} +1 -1
  185. zenml/zen_server/dashboard/assets/page-BZUxCBoD.js +1 -0
  186. zenml/zen_server/dashboard/assets/page-BeFiRx31.js +1 -0
  187. zenml/zen_server/dashboard/assets/{page-C89bN6VV.js → page-BnUwQBeg.js} +1 -1
  188. zenml/zen_server/dashboard/assets/{page-k-UXKVnV.js → page-BqQ6y8Hb.js} +1 -1
  189. zenml/zen_server/dashboard/assets/page-BwAFqFCf.js +1 -0
  190. zenml/zen_server/dashboard/assets/page-BzlVs5tC.js +1 -0
  191. zenml/zen_server/dashboard/assets/{page-C3BbJ-5n.js → page-C11vPVkH.js} +1 -1
  192. zenml/zen_server/dashboard/assets/{page-AnG2ilmi.js → page-CAKBSE9f.js} +1 -1
  193. zenml/zen_server/dashboard/assets/page-CPe9nQSo.js +1 -0
  194. zenml/zen_server/dashboard/assets/page-D0Zt2-7X.js +1 -0
  195. zenml/zen_server/dashboard/assets/page-D2F0Rvak.js +1 -0
  196. zenml/zen_server/dashboard/assets/{page-2EzZ5aWS.js → page-D5GZlpKq.js} +1 -1
  197. zenml/zen_server/dashboard/assets/{page-CxoG4zme.js → page-DBNBYSwq.js} +1 -1
  198. zenml/zen_server/dashboard/assets/page-DDvwWgKP.js +6 -0
  199. zenml/zen_server/dashboard/assets/page-DF9q7ySu.js +1 -0
  200. zenml/zen_server/dashboard/assets/page-DOzFoJuo.js +1 -0
  201. zenml/zen_server/dashboard/assets/page-DaHH2ZEF.js +1 -0
  202. zenml/zen_server/dashboard/assets/{page-B9ELcPAy.js → page-Dd-0y3SU.js} +1 -1
  203. zenml/zen_server/dashboard/assets/{page-Dy6HYsJr.js → page-DhNnHHmX.js} +1 -1
  204. zenml/zen_server/dashboard/assets/{page-CZ_3LB0U.js → page-DkJfgcDi.js} +1 -1
  205. zenml/zen_server/dashboard/assets/page-EhqRFAZc.js +1 -0
  206. zenml/zen_server/dashboard/assets/{page-nHAZvd76.js → page-NIWnUdVg.js} +1 -1
  207. zenml/zen_server/dashboard/assets/{page-DazwBcbq.js → page-kYlFrH53.js} +1 -1
  208. zenml/zen_server/dashboard/assets/page-ygCPGHAV.js +1 -0
  209. zenml/zen_server/dashboard/assets/{persist-BglceT_t.js → persist-C5RlwSq6.js} +1 -1
  210. zenml/zen_server/dashboard/assets/{persist-CMkLV2Cs.js → persist-DHGuHP2H.js} +1 -1
  211. zenml/zen_server/dashboard/assets/{service-DNKY_ZYd.js → service-Do7yitqe.js} +1 -1
  212. zenml/zen_server/dashboard/assets/{sharedSchema-BOmQa793.js → sharedSchema-i_9Y4WcA.js} +1 -1
  213. zenml/zen_server/dashboard/assets/stack-detail-query-omCumL7U.js +1 -0
  214. zenml/zen_server/dashboard/assets/update-server-settings-mutation-B4eE33z-.js +1 -0
  215. zenml/zen_server/dashboard/index.html +4 -4
  216. zenml/zen_server/deploy/daemon/daemon_zen_server.py +1 -1
  217. zenml/zen_server/deploy/deployment.py +1 -2
  218. zenml/zen_server/deploy/docker/docker_zen_server.py +1 -1
  219. zenml/zen_server/rbac/endpoint_utils.py +1 -2
  220. zenml/zen_server/routers/projects_endpoints.py +14 -3
  221. zenml/zen_server/routers/stack_deployment_endpoints.py +12 -4
  222. zenml/zen_server/utils.py +2 -86
  223. zenml/zen_stores/migrations/versions/0.80.0_release.py +23 -0
  224. zenml/zen_stores/migrations/versions/288f4fb6e112_make_tags_user_scoped.py +2 -2
  225. zenml/zen_stores/migrations/versions/41b28cae31ce_make_artifacts_workspace_scoped.py +2 -2
  226. zenml/zen_stores/migrations/versions/f1d723fd723b_add_secret_private_attr.py +2 -2
  227. zenml/zen_stores/schemas/artifact_visualization_schemas.py +1 -1
  228. zenml/zen_stores/schemas/model_schemas.py +1 -1
  229. zenml/zen_stores/schemas/service_schemas.py +1 -1
  230. zenml/zen_stores/schemas/step_run_schemas.py +1 -1
  231. zenml/zen_stores/schemas/trigger_schemas.py +1 -1
  232. zenml/zen_stores/sql_zen_store.py +5 -0
  233. {zenml_nightly-0.75.0.dev20250318.dist-info → zenml_nightly-0.80.0.dev20250322.dist-info}/METADATA +3 -3
  234. {zenml_nightly-0.75.0.dev20250318.dist-info → zenml_nightly-0.80.0.dev20250322.dist-info}/RECORD +237 -235
  235. zenml/zen_server/dashboard/assets/@reactflow-DMaYqp8l.js +0 -17
  236. zenml/zen_server/dashboard/assets/CodeSnippet-D8ptwPjg.js +0 -9
  237. zenml/zen_server/dashboard/assets/ComponentIcon-gpMJ2Y2e.js +0 -1
  238. zenml/zen_server/dashboard/assets/ExecutionStatus-DHiK3Am-.js +0 -1
  239. zenml/zen_server/dashboard/assets/ProBadge-ypma7R8i.js +0 -1
  240. zenml/zen_server/dashboard/assets/ProviderIcon-DKN3Gdcg.js +0 -1
  241. zenml/zen_server/dashboard/assets/RunSelector-CYmRHGdm.js +0 -1
  242. zenml/zen_server/dashboard/assets/SecretTooltip-CHPWF0bu.js +0 -1
  243. zenml/zen_server/dashboard/assets/Tick-DgU4udUn.js +0 -1
  244. zenml/zen_server/dashboard/assets/configuration-form-BEwWCxqY.js +0 -1
  245. zenml/zen_server/dashboard/assets/flavor-select-C1pyy8gq.js +0 -1
  246. zenml/zen_server/dashboard/assets/login-mutation-7WFxPe10.js +0 -1
  247. zenml/zen_server/dashboard/assets/page-BKN4SYXY.js +0 -1
  248. zenml/zen_server/dashboard/assets/page-BNrOW_3T.js +0 -2
  249. zenml/zen_server/dashboard/assets/page-BX6ZrAVH.js +0 -1
  250. zenml/zen_server/dashboard/assets/page-BnOdORy3.js +0 -1
  251. zenml/zen_server/dashboard/assets/page-BtkfcEI7.js +0 -1
  252. zenml/zen_server/dashboard/assets/page-Bz_grLBY.js +0 -1
  253. zenml/zen_server/dashboard/assets/page-CCEwuGU4.js +0 -1
  254. zenml/zen_server/dashboard/assets/page-COAGXWJu.js +0 -1
  255. zenml/zen_server/dashboard/assets/page-CaibMa0l.js +0 -1
  256. zenml/zen_server/dashboard/assets/page-CskoTYOC.js +0 -1
  257. zenml/zen_server/dashboard/assets/page-Cyoe7AtN.js +0 -1
  258. zenml/zen_server/dashboard/assets/page-D03wm5f1.js +0 -1
  259. zenml/zen_server/dashboard/assets/page-D8UimvyP.js +0 -1
  260. zenml/zen_server/dashboard/assets/page-DEnmFyzi.js +0 -1
  261. zenml/zen_server/dashboard/assets/page-TiOZeeo0.js +0 -1
  262. zenml/zen_server/dashboard/assets/page-cveasWUr.js +0 -6
  263. zenml/zen_server/dashboard/assets/page-iTvxfhgZ.js +0 -1
  264. zenml/zen_server/dashboard/assets/page-niRD8Hqz.js +0 -1
  265. zenml/zen_server/dashboard/assets/stack-detail-query-CI_YMUx6.js +0 -1
  266. zenml/zen_server/dashboard/assets/transform-DKsRLKTv.js +0 -1
  267. zenml/zen_server/dashboard/assets/update-server-settings-mutation-CNYCc-FU.js +0 -1
  268. {zenml_nightly-0.75.0.dev20250318.dist-info → zenml_nightly-0.80.0.dev20250322.dist-info}/LICENSE +0 -0
  269. {zenml_nightly-0.75.0.dev20250318.dist-info → zenml_nightly-0.80.0.dev20250322.dist-info}/WHEEL +0 -0
  270. {zenml_nightly-0.75.0.dev20250318.dist-info → zenml_nightly-0.80.0.dev20250322.dist-info}/entry_points.txt +0 -0
@@ -42,6 +42,7 @@ from zenml.models.v2.base.scoped import (
42
42
  ProjectScopedResponseBody,
43
43
  ProjectScopedResponseMetadata,
44
44
  ProjectScopedResponseResources,
45
+ RunMetadataFilterMixin,
45
46
  TaggableFilter,
46
47
  )
47
48
  from zenml.models.v2.core.model_version import ModelVersionResponse
@@ -582,12 +583,15 @@ class PipelineRunResponse(
582
583
  # ------------------ Filter Model ------------------
583
584
 
584
585
 
585
- class PipelineRunFilter(ProjectScopedFilter, TaggableFilter):
586
+ class PipelineRunFilter(
587
+ ProjectScopedFilter, TaggableFilter, RunMetadataFilterMixin
588
+ ):
586
589
  """Model to enable advanced filtering of all pipeline runs."""
587
590
 
588
591
  CUSTOM_SORTING_OPTIONS: ClassVar[List[str]] = [
589
592
  *ProjectScopedFilter.CUSTOM_SORTING_OPTIONS,
590
593
  *TaggableFilter.CUSTOM_SORTING_OPTIONS,
594
+ *RunMetadataFilterMixin.CUSTOM_SORTING_OPTIONS,
591
595
  "tag",
592
596
  "stack",
593
597
  "pipeline",
@@ -597,6 +601,7 @@ class PipelineRunFilter(ProjectScopedFilter, TaggableFilter):
597
601
  FILTER_EXCLUDE_FIELDS: ClassVar[List[str]] = [
598
602
  *ProjectScopedFilter.FILTER_EXCLUDE_FIELDS,
599
603
  *TaggableFilter.FILTER_EXCLUDE_FIELDS,
604
+ *RunMetadataFilterMixin.FILTER_EXCLUDE_FIELDS,
600
605
  "unlisted",
601
606
  "code_repository_id",
602
607
  "build_id",
@@ -610,11 +615,16 @@ class PipelineRunFilter(ProjectScopedFilter, TaggableFilter):
610
615
  "stack_component",
611
616
  "pipeline_name",
612
617
  "templatable",
613
- "run_metadata",
614
618
  ]
615
619
  CLI_EXCLUDE_FIELDS = [
616
620
  *ProjectScopedFilter.CLI_EXCLUDE_FIELDS,
617
621
  *TaggableFilter.CLI_EXCLUDE_FIELDS,
622
+ *RunMetadataFilterMixin.CLI_EXCLUDE_FIELDS,
623
+ ]
624
+ API_MULTI_INPUT_PARAMS: ClassVar[List[str]] = [
625
+ *ProjectScopedFilter.API_MULTI_INPUT_PARAMS,
626
+ *TaggableFilter.API_MULTI_INPUT_PARAMS,
627
+ *RunMetadataFilterMixin.API_MULTI_INPUT_PARAMS,
618
628
  ]
619
629
 
620
630
  name: Optional[str] = Field(
@@ -680,10 +690,6 @@ class PipelineRunFilter(ProjectScopedFilter, TaggableFilter):
680
690
  union_mode="left_to_right",
681
691
  )
682
692
  unlisted: Optional[bool] = None
683
- run_metadata: Optional[Dict[str, Any]] = Field(
684
- default=None,
685
- description="The run_metadata to filter the pipeline runs by.",
686
- )
687
693
  # TODO: Remove once frontend is ready for it. This is replaced by the more
688
694
  # generic `pipeline` filter below.
689
695
  pipeline_name: Optional[str] = Field(
@@ -740,8 +746,6 @@ class PipelineRunFilter(ProjectScopedFilter, TaggableFilter):
740
746
  PipelineDeploymentSchema,
741
747
  PipelineRunSchema,
742
748
  PipelineSchema,
743
- RunMetadataResourceSchema,
744
- RunMetadataSchema,
745
749
  ScheduleSchema,
746
750
  StackComponentSchema,
747
751
  StackCompositionSchema,
@@ -899,30 +903,6 @@ class PipelineRunFilter(ProjectScopedFilter, TaggableFilter):
899
903
  )
900
904
 
901
905
  custom_filters.append(templatable_filter)
902
- if self.run_metadata is not None:
903
- from zenml.enums import MetadataResourceTypes
904
-
905
- for key, value in self.run_metadata.items():
906
- additional_filter = and_(
907
- RunMetadataResourceSchema.resource_id
908
- == PipelineRunSchema.id,
909
- RunMetadataResourceSchema.resource_type
910
- == MetadataResourceTypes.PIPELINE_RUN.value,
911
- RunMetadataResourceSchema.run_metadata_id
912
- == RunMetadataSchema.id,
913
- self.generate_custom_query_conditions_for_column(
914
- value=key,
915
- table=RunMetadataSchema,
916
- column="key",
917
- ),
918
- self.generate_custom_query_conditions_for_column(
919
- value=value,
920
- table=RunMetadataSchema,
921
- column="value",
922
- json_encode_value=True,
923
- ),
924
- )
925
- custom_filters.append(additional_filter)
926
906
 
927
907
  return custom_filters
928
908
 
@@ -31,6 +31,7 @@ from pydantic import ConfigDict, Field
31
31
  from sqlalchemy.sql.elements import ColumnElement
32
32
 
33
33
  from zenml.constants import STR_FIELD_MAX_LENGTH
34
+ from zenml.enums import ServiceState
34
35
  from zenml.models.v2.base.base import BaseUpdate
35
36
  from zenml.models.v2.base.scoped import (
36
37
  ProjectScopedFilter,
@@ -40,8 +41,7 @@ from zenml.models.v2.base.scoped import (
40
41
  ProjectScopedResponseMetadata,
41
42
  ProjectScopedResponseResources,
42
43
  )
43
- from zenml.services.service_status import ServiceState
44
- from zenml.services.service_type import ServiceType
44
+ from zenml.models.v2.misc.service import ServiceType
45
45
 
46
46
  if TYPE_CHECKING:
47
47
  from zenml.models.v2.core.model_version import ModelVersionResponse
@@ -16,7 +16,6 @@
16
16
  from datetime import datetime
17
17
  from typing import (
18
18
  TYPE_CHECKING,
19
- Any,
20
19
  ClassVar,
21
20
  Dict,
22
21
  List,
@@ -41,6 +40,7 @@ from zenml.models.v2.base.scoped import (
41
40
  ProjectScopedResponseBody,
42
41
  ProjectScopedResponseMetadata,
43
42
  ProjectScopedResponseResources,
43
+ RunMetadataFilterMixin,
44
44
  )
45
45
  from zenml.models.v2.core.artifact_version import ArtifactVersionResponse
46
46
  from zenml.models.v2.core.model_version import ModelVersionResponse
@@ -504,13 +504,25 @@ class StepRunResponse(
504
504
  # ------------------ Filter Model ------------------
505
505
 
506
506
 
507
- class StepRunFilter(ProjectScopedFilter):
507
+ class StepRunFilter(ProjectScopedFilter, RunMetadataFilterMixin):
508
508
  """Model to enable advanced filtering of step runs."""
509
509
 
510
510
  FILTER_EXCLUDE_FIELDS: ClassVar[List[str]] = [
511
511
  *ProjectScopedFilter.FILTER_EXCLUDE_FIELDS,
512
+ *RunMetadataFilterMixin.FILTER_EXCLUDE_FIELDS,
512
513
  "model",
513
- "run_metadata",
514
+ ]
515
+ CLI_EXCLUDE_FIELDS: ClassVar[List[str]] = [
516
+ *ProjectScopedFilter.CLI_EXCLUDE_FIELDS,
517
+ *RunMetadataFilterMixin.CLI_EXCLUDE_FIELDS,
518
+ ]
519
+ CUSTOM_SORTING_OPTIONS: ClassVar[List[str]] = [
520
+ *ProjectScopedFilter.CUSTOM_SORTING_OPTIONS,
521
+ *RunMetadataFilterMixin.CUSTOM_SORTING_OPTIONS,
522
+ ]
523
+ API_MULTI_INPUT_PARAMS: ClassVar[List[str]] = [
524
+ *ProjectScopedFilter.API_MULTI_INPUT_PARAMS,
525
+ *RunMetadataFilterMixin.API_MULTI_INPUT_PARAMS,
514
526
  ]
515
527
 
516
528
  name: Optional[str] = Field(
@@ -563,10 +575,6 @@ class StepRunFilter(ProjectScopedFilter):
563
575
  default=None,
564
576
  description="Name/ID of the model associated with the step run.",
565
577
  )
566
- run_metadata: Optional[Dict[str, Any]] = Field(
567
- default=None,
568
- description="The run_metadata to filter the step runs by.",
569
- )
570
578
  model_config = ConfigDict(protected_namespaces=())
571
579
 
572
580
  def get_custom_filters(
@@ -587,8 +595,6 @@ class StepRunFilter(ProjectScopedFilter):
587
595
  from zenml.zen_stores.schemas import (
588
596
  ModelSchema,
589
597
  ModelVersionSchema,
590
- RunMetadataResourceSchema,
591
- RunMetadataSchema,
592
598
  StepRunSchema,
593
599
  )
594
600
 
@@ -601,28 +607,5 @@ class StepRunFilter(ProjectScopedFilter):
601
607
  ),
602
608
  )
603
609
  custom_filters.append(model_filter)
604
- if self.run_metadata is not None:
605
- from zenml.enums import MetadataResourceTypes
606
-
607
- for key, value in self.run_metadata.items():
608
- additional_filter = and_(
609
- RunMetadataResourceSchema.resource_id == StepRunSchema.id,
610
- RunMetadataResourceSchema.resource_type
611
- == MetadataResourceTypes.STEP_RUN.value,
612
- RunMetadataResourceSchema.run_metadata_id
613
- == RunMetadataSchema.id,
614
- self.generate_custom_query_conditions_for_column(
615
- value=key,
616
- table=RunMetadataSchema,
617
- column="key",
618
- ),
619
- self.generate_custom_query_conditions_for_column(
620
- value=value,
621
- table=RunMetadataSchema,
622
- column="value",
623
- json_encode_value=True,
624
- ),
625
- )
626
- custom_filters.append(additional_filter)
627
610
 
628
611
  return custom_filters
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12
12
  # or implied. See the License for the specific language governing
13
13
  # permissions and limitations under the License.
14
- """Implementation of a ZenML ServiceType class."""
14
+ """Misc models for services."""
15
15
 
16
16
  from pydantic import BaseModel, ConfigDict
17
17
 
@@ -352,7 +352,7 @@ def log_model_version_dashboard_url(
352
352
  """
353
353
  from zenml.utils.dashboard_utils import get_model_version_url
354
354
 
355
- if model_version_url := get_model_version_url(model_version.id):
355
+ if model_version_url := get_model_version_url(model_version):
356
356
  logger.info(
357
357
  "Dashboard URL for Model Version `%s (%s)`:\n%s",
358
358
  model_version.model.name,
@@ -184,7 +184,7 @@ def get_config_environment_vars(
184
184
  "service account API key to authenticate to the ZenML "
185
185
  "server instead of your regular user account. For more "
186
186
  "information, see "
187
- "https://docs.zenml.io/how-to/connecting-to-zenml/connect-with-a-service-account"
187
+ "https://docs.zenml.io/how-to/manage-zenml-server/connecting-to-zenml/connect-with-a-service-account"
188
188
  )
189
189
 
190
190
  # The schedule, pipeline run or step run credentials are scoped to
@@ -51,19 +51,17 @@ from zenml.services.service_monitor import (
51
51
  TCPEndpointHealthMonitor,
52
52
  TCPEndpointHealthMonitorConfig,
53
53
  )
54
- from zenml.services.service_status import ServiceState, ServiceStatus
55
- from zenml.services.service_type import ServiceType
56
-
54
+ from zenml.services.service_status import ServiceStatus
55
+ from zenml.enums import ServiceState
56
+ from zenml.models.v2.misc.service import ServiceType
57
57
 
58
58
  __all__ = [
59
- "ServiceState",
60
59
  "ServiceConfig",
61
60
  "ServiceStatus",
62
61
  "ServiceEndpointProtocol",
63
62
  "ServiceEndpointConfig",
64
63
  "ServiceEndpointStatus",
65
64
  "BaseServiceEndpoint",
66
- "ServiceType",
67
65
  "BaseService",
68
66
  "ServiceEndpointHealthMonitorConfig",
69
67
  "BaseServiceEndpointHealthMonitor",
@@ -27,12 +27,13 @@ from docker.models.containers import Container
27
27
  from pydantic import Field
28
28
 
29
29
  from zenml.constants import ENV_ZENML_CONFIG_PATH
30
+ from zenml.enums import ServiceState
30
31
  from zenml.logger import get_logger
31
32
  from zenml.services.container.container_service_endpoint import (
32
33
  ContainerServiceEndpoint,
33
34
  )
34
35
  from zenml.services.service import BaseService, ServiceConfig
35
- from zenml.services.service_status import ServiceState, ServiceStatus
36
+ from zenml.services.service_status import ServiceStatus
36
37
  from zenml.utils import docker_utils
37
38
  from zenml.utils.io_utils import (
38
39
  create_dir_recursive_if_not_exists,
@@ -26,12 +26,13 @@ import psutil
26
26
  from psutil import NoSuchProcess
27
27
  from pydantic import Field
28
28
 
29
+ from zenml.enums import ServiceState
29
30
  from zenml.logger import get_logger
30
31
  from zenml.services.local.local_service_endpoint import (
31
32
  LocalDaemonServiceEndpoint,
32
33
  )
33
34
  from zenml.services.service import BaseService, ServiceConfig
34
- from zenml.services.service_status import ServiceState, ServiceStatus
35
+ from zenml.services.service_status import ServiceStatus
35
36
  from zenml.utils.io_utils import create_dir_recursive_if_not_exists
36
37
 
37
38
  logger = get_logger(__name__)
zenml/services/service.py CHANGED
@@ -34,11 +34,12 @@ from uuid import UUID
34
34
  from pydantic import ConfigDict
35
35
 
36
36
  from zenml.console import console
37
+ from zenml.enums import ServiceState
37
38
  from zenml.logger import get_logger
39
+ from zenml.models.v2.misc.service import ServiceType
38
40
  from zenml.services.service_endpoint import BaseServiceEndpoint
39
41
  from zenml.services.service_monitor import HTTPEndpointHealthMonitor
40
- from zenml.services.service_status import ServiceState, ServiceStatus
41
- from zenml.services.service_type import ServiceType
42
+ from zenml.services.service_status import ServiceStatus
42
43
  from zenml.utils import source_utils
43
44
  from zenml.utils.typed_model import BaseTypedModel
44
45
 
@@ -16,9 +16,10 @@
16
16
  from typing import Any, Optional, Tuple
17
17
 
18
18
  from zenml.constants import DEFAULT_LOCAL_SERVICE_IP_ADDRESS
19
+ from zenml.enums import ServiceState
19
20
  from zenml.logger import get_logger
20
21
  from zenml.services.service_monitor import BaseServiceEndpointHealthMonitor
21
- from zenml.services.service_status import ServiceState, ServiceStatus
22
+ from zenml.services.service_status import ServiceStatus
22
23
  from zenml.utils.enum_utils import StrEnum
23
24
  from zenml.utils.typed_model import BaseTypedModel
24
25
 
@@ -19,8 +19,8 @@ from typing import TYPE_CHECKING, Optional, Tuple
19
19
  import requests
20
20
  from pydantic import Field
21
21
 
22
+ from zenml.enums import ServiceState
22
23
  from zenml.logger import get_logger
23
- from zenml.services.service_status import ServiceState
24
24
  from zenml.utils.networking_utils import port_is_open
25
25
  from zenml.utils.typed_model import BaseTypedModel
26
26
 
@@ -15,24 +15,13 @@
15
15
 
16
16
  from typing import Optional
17
17
 
18
+ from zenml.enums import ServiceState
18
19
  from zenml.logger import get_logger
19
- from zenml.utils.enum_utils import StrEnum
20
20
  from zenml.utils.typed_model import BaseTypedModel
21
21
 
22
22
  logger = get_logger(__name__)
23
23
 
24
24
 
25
- class ServiceState(StrEnum):
26
- """Possible states for the service and service endpoint."""
27
-
28
- INACTIVE = "inactive"
29
- ACTIVE = "active"
30
- PENDING_STARTUP = "pending_startup"
31
- PENDING_SHUTDOWN = "pending_shutdown"
32
- ERROR = "error"
33
- SCALED_TO_ZERO = "scaled_to_zero"
34
-
35
-
36
25
  class ServiceStatus(BaseTypedModel):
37
26
  """Information about the status of a service or process.
38
27
 
@@ -17,6 +17,10 @@ from typing import ClassVar, Dict, List, Optional
17
17
 
18
18
  from zenml.enums import StackDeploymentProvider
19
19
  from zenml.models import StackDeploymentConfig
20
+ from zenml.stack_deployments.constants import (
21
+ TERRAFORM_AWS_MODULE_VERSION_SPEC,
22
+ TERRAFORM_PROVIDER_VERSION_SPEC,
23
+ )
20
24
  from zenml.stack_deployments.stack_deployment import (
21
25
  STACK_DEPLOYMENT_TERRAFORM,
22
26
  ZenMLCloudStackDeployment,
@@ -203,10 +207,6 @@ console.
203
207
  # Based on the AWS regions listed at
204
208
  # https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
205
209
  return {
206
- "US East (Ohio)": "us-east-2",
207
- "US East (N. Virginia)": "us-east-1",
208
- "US West (N. California)": "us-west-1",
209
- "US West (Oregon)": "us-west-2",
210
210
  "Africa (Cape Town)": "af-south-1",
211
211
  "Asia Pacific (Hong Kong)": "ap-east-1",
212
212
  "Asia Pacific (Hyderabad)": "ap-south-2",
@@ -232,6 +232,10 @@ console.
232
232
  "Middle East (Bahrain)": "me-south-1",
233
233
  "Middle East (UAE)": "me-central-1",
234
234
  "South America (São Paulo)": "sa-east-1",
235
+ "US East (Ohio)": "us-east-2",
236
+ "US East (N. Virginia)": "us-east-1",
237
+ "US West (N. California)": "us-west-1",
238
+ "US West (Oregon)": "us-west-2",
235
239
  }
236
240
 
237
241
  def get_deployment_config(
@@ -287,6 +291,7 @@ console.
287
291
  }}
288
292
  zenml = {{
289
293
  source = "zenml-io/zenml"
294
+ version = "{TERRAFORM_PROVIDER_VERSION_SPEC}"
290
295
  }}
291
296
  }}
292
297
  }}
@@ -302,7 +307,7 @@ provider "zenml" {{
302
307
 
303
308
  module "zenml_stack" {{
304
309
  source = "zenml-io/zenml-stack/aws"
305
-
310
+ version = "{TERRAFORM_AWS_MODULE_VERSION_SPEC}"
306
311
  zenml_stack_name = "{self.stack_name}"
307
312
  zenml_stack_deployment = "{self.deployment_type}"
308
313
  }}
@@ -18,6 +18,10 @@ from typing import ClassVar, Dict, List
18
18
 
19
19
  from zenml.enums import StackDeploymentProvider
20
20
  from zenml.models import StackDeploymentConfig
21
+ from zenml.stack_deployments.constants import (
22
+ TERRAFORM_AZURE_MODULE_VERSION_SPEC,
23
+ TERRAFORM_PROVIDER_VERSION_SPEC,
24
+ )
21
25
  from zenml.stack_deployments.stack_deployment import ZenMLCloudStackDeployment
22
26
 
23
27
  AZURE_DEPLOYMENT_TYPE = "azure-cloud-shell"
@@ -156,70 +160,70 @@ ZenML's access to your Azure subscription.
156
160
  """
157
161
  # Based on `az account list-locations -o table` on 16.07.2024
158
162
  return {
159
- "(US) East US": "eastus",
160
- "(US) South Central US": "southcentralus",
161
- "(US) West US 2": "westus2",
162
- "(US) West US 3": "westus3",
163
- "(Asia Pacific) Australia East": "australiaeast",
164
- "(Asia Pacific) Southeast Asia": "southeastasia",
165
- "(Europe) North Europe": "northeurope",
166
- "(Europe) Sweden Central": "swedencentral",
167
- "(Europe) UK South": "uksouth",
168
- "(Europe) West Europe": "westeurope",
169
- "(US) Central US": "centralus",
170
163
  "(Africa) South Africa North": "southafricanorth",
164
+ "(Africa) South Africa West": "southafricawest",
165
+ "(Asia Pacific) Australia Central": "australiacentral",
166
+ "(Asia Pacific) Australia Central 2": "australiacentral2",
167
+ "(Asia Pacific) Australia East": "australiaeast",
168
+ "(Asia Pacific) Australia Southeast": "australiasoutheast",
171
169
  "(Asia Pacific) Central India": "centralindia",
172
170
  "(Asia Pacific) East Asia": "eastasia",
171
+ "(Asia Pacific) East Asia (Stage)": "eastasiastage",
173
172
  "(Asia Pacific) Japan East": "japaneast",
173
+ "(Asia Pacific) Japan West": "japanwest",
174
+ "(Asia Pacific) Jio India Central": "jioindiacentral",
175
+ "(Asia Pacific) Jio India West": "jioindiawest",
174
176
  "(Asia Pacific) Korea Central": "koreacentral",
177
+ "(Asia Pacific) Korea South": "koreasouth",
178
+ "(Asia Pacific) South India": "southindia",
179
+ "(Asia Pacific) Southeast Asia": "southeastasia",
180
+ "(Asia Pacific) Southeast Asia (Stage)": "southeastasiastage",
181
+ "(Asia Pacific) West India": "westindia",
175
182
  "(Canada) Canada Central": "canadacentral",
183
+ "(Canada) Canada East": "canadaeast",
176
184
  "(Europe) France Central": "francecentral",
185
+ "(Europe) France South": "francesouth",
186
+ "(Europe) Germany North": "germanynorth",
177
187
  "(Europe) Germany West Central": "germanywestcentral",
178
188
  "(Europe) Italy North": "italynorth",
189
+ "(Europe) North Europe": "northeurope",
179
190
  "(Europe) Norway East": "norwayeast",
191
+ "(Europe) Norway West": "norwaywest",
180
192
  "(Europe) Poland Central": "polandcentral",
181
193
  "(Europe) Spain Central": "spaincentral",
194
+ "(Europe) Sweden Central": "swedencentral",
182
195
  "(Europe) Switzerland North": "switzerlandnorth",
196
+ "(Europe) Switzerland West": "switzerlandwest",
197
+ "(Europe) UK South": "uksouth",
198
+ "(Europe) UK West": "ukwest",
199
+ "(Europe) West Europe": "westeurope",
183
200
  "(Mexico) Mexico Central": "mexicocentral",
184
- "(Middle East) UAE North": "uaenorth",
185
- "(South America) Brazil South": "brazilsouth",
186
201
  "(Middle East) Israel Central": "israelcentral",
187
202
  "(Middle East) Qatar Central": "qatarcentral",
203
+ "(Middle East) UAE Central": "uaecentral",
204
+ "(Middle East) UAE North": "uaenorth",
205
+ "(South America) Brazil South": "brazilsouth",
206
+ "(South America) Brazil Southeast": "brazilsoutheast",
207
+ "(South America) Brazil US": "brazilus",
208
+ "(US) Central US": "centralus",
188
209
  "(US) Central US (Stage)": "centralusstage",
210
+ "(US) Central US EUAP": "centraluseuap",
211
+ "(US) East US": "eastus",
189
212
  "(US) East US (Stage)": "eastusstage",
213
+ "(US) East US 2": "eastus2",
190
214
  "(US) East US 2 (Stage)": "eastus2stage",
215
+ "(US) East US 2 EUAP": "eastus2euap",
216
+ "(US) East US STG": "eastusstg",
217
+ "(US) North Central US": "northcentralus",
191
218
  "(US) North Central US (Stage)": "northcentralusstage",
219
+ "(US) South Central US": "southcentralus",
192
220
  "(US) South Central US (Stage)": "southcentralusstage",
221
+ "(US) West Central US": "westcentralus",
222
+ "(US) West US": "westus",
193
223
  "(US) West US (Stage)": "westusstage",
224
+ "(US) West US 2": "westus2",
194
225
  "(US) West US 2 (Stage)": "westus2stage",
195
- "(Asia Pacific) East Asia (Stage)": "eastasiastage",
196
- "(Asia Pacific) Southeast Asia (Stage)": "southeastasiastage",
197
- "(South America) Brazil US": "brazilus",
198
- "(US) East US 2": "eastus2",
199
- "(US) East US STG": "eastusstg",
200
- "(US) North Central US": "northcentralus",
201
- "(US) West US": "westus",
202
- "(Asia Pacific) Japan West": "japanwest",
203
- "(Asia Pacific) Jio India West": "jioindiawest",
204
- "(US) Central US EUAP": "centraluseuap",
205
- "(US) East US 2 EUAP": "eastus2euap",
206
- "(US) West Central US": "westcentralus",
207
- "(Africa) South Africa West": "southafricawest",
208
- "(Asia Pacific) Australia Central": "australiacentral",
209
- "(Asia Pacific) Australia Central 2": "australiacentral2",
210
- "(Asia Pacific) Australia Southeast": "australiasoutheast",
211
- "(Asia Pacific) Jio India Central": "jioindiacentral",
212
- "(Asia Pacific) Korea South": "koreasouth",
213
- "(Asia Pacific) South India": "southindia",
214
- "(Asia Pacific) West India": "westindia",
215
- "(Canada) Canada East": "canadaeast",
216
- "(Europe) France South": "francesouth",
217
- "(Europe) Germany North": "germanynorth",
218
- "(Europe) Norway West": "norwaywest",
219
- "(Europe) Switzerland West": "switzerlandwest",
220
- "(Europe) UK West": "ukwest",
221
- "(Middle East) UAE Central": "uaecentral",
222
- "(South America) Brazil Southeast": "brazilsoutheast",
226
+ "(US) West US 3": "westus3",
223
227
  }
224
228
 
225
229
  @classmethod
@@ -269,6 +273,7 @@ ZenML's access to your Azure subscription.
269
273
  }}
270
274
  zenml = {{
271
275
  source = "zenml-io/zenml"
276
+ version = "{TERRAFORM_PROVIDER_VERSION_SPEC}"
272
277
  }}
273
278
  }}
274
279
  }}
@@ -288,6 +293,7 @@ provider "zenml" {{
288
293
 
289
294
  module "zenml_stack" {{
290
295
  source = "zenml-io/zenml-stack/azure"
296
+ version = "{TERRAFORM_AZURE_MODULE_VERSION_SPEC}"
291
297
 
292
298
  location = "{self.location or "eastus"}"
293
299
  zenml_stack_name = "{self.stack_name}"
@@ -0,0 +1,30 @@
1
+ # Copyright (c) ZenML GmbH 2025. 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
+ """Constants for the stack deployments."""
15
+
16
+ # The ZenML Terraform provider compatible versions
17
+ # (>= 2.0.0, < 3.0.0)
18
+ TERRAFORM_PROVIDER_VERSION_SPEC = "~> 2.0"
19
+
20
+ # The ZenML AWS Terraform module compatible versions
21
+ # (>= 2.0.0, < 3.0.0)
22
+ TERRAFORM_AWS_MODULE_VERSION_SPEC = "~> 2.0"
23
+
24
+ # The ZenML GCP Terraform module compatible versions
25
+ # (>= 2.0.0, < 3.0.0)
26
+ TERRAFORM_GCP_MODULE_VERSION_SPEC = "~> 2.0"
27
+
28
+ # The ZenML Azure Terraform module compatible versions
29
+ # (>= 2.0.0, < 3.0.0)
30
+ TERRAFORM_AZURE_MODULE_VERSION_SPEC = "~> 2.0"
@@ -18,6 +18,10 @@ from typing import ClassVar, Dict, List
18
18
 
19
19
  from zenml.enums import StackDeploymentProvider
20
20
  from zenml.models import StackDeploymentConfig
21
+ from zenml.stack_deployments.constants import (
22
+ TERRAFORM_GCP_MODULE_VERSION_SPEC,
23
+ TERRAFORM_PROVIDER_VERSION_SPEC,
24
+ )
21
25
  from zenml.stack_deployments.stack_deployment import (
22
26
  STACK_DEPLOYMENT_TERRAFORM,
23
27
  ZenMLCloudStackDeployment,
@@ -267,6 +271,7 @@ GCP project and to clean up the resources created by the stack by using
267
271
  }}
268
272
  zenml = {{
269
273
  source = "zenml-io/zenml"
274
+ version = "{TERRAFORM_PROVIDER_VERSION_SPEC}"
270
275
  }}
271
276
  }}
272
277
  }}
@@ -283,6 +288,7 @@ provider "zenml" {{
283
288
 
284
289
  module "zenml_stack" {{
285
290
  source = "zenml-io/zenml-stack/gcp"
291
+ version = "{TERRAFORM_GCP_MODULE_VERSION_SPEC}"
286
292
 
287
293
  zenml_stack_name = "{self.stack_name}"
288
294
  zenml_stack_deployment = "{self.deployment_type}"
@@ -174,7 +174,7 @@ class EntrypointFunctionDefinition(NamedTuple):
174
174
  f"'{key}' is not JSON serializable and can not be passed as "
175
175
  "a parameter. This input can either be provided by the "
176
176
  "output of another step or as an external artifact: "
177
- "https://docs.zenml.io/user-guide/starter-guide/manage-artifacts#managing-artifacts-not-produced-by-zenml-pipelines"
177
+ "https://docs.zenml.io/user-guides/starter-guide/manage-artifacts#managing-artifacts-not-produced-by-zenml-pipelines"
178
178
  )
179
179
 
180
180
  try: