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
@@ -13,9 +13,10 @@
13
13
  # permissions and limitations under the License.
14
14
  """Utility functions for building manifests for k8s pods."""
15
15
 
16
+ import base64
16
17
  import os
17
18
  import sys
18
- from typing import Any, Dict, List, Optional
19
+ from typing import Any, Dict, List, Mapping, Optional
19
20
 
20
21
  from kubernetes import client as k8s_client
21
22
 
@@ -390,3 +391,34 @@ def build_namespace_manifest(namespace: str) -> Dict[str, Any]:
390
391
  "name": namespace,
391
392
  },
392
393
  }
394
+
395
+
396
+ def build_secret_manifest(
397
+ name: str,
398
+ data: Mapping[str, Optional[str]],
399
+ secret_type: str = "Opaque",
400
+ ) -> Dict[str, Any]:
401
+ """Builds a Kubernetes secret manifest.
402
+
403
+ Args:
404
+ name: Name of the secret.
405
+ data: The secret data.
406
+ secret_type: The secret type.
407
+
408
+ Returns:
409
+ The secret manifest.
410
+ """
411
+ encoded_data = {
412
+ key: base64.b64encode(value.encode()).decode() if value else None
413
+ for key, value in data.items()
414
+ }
415
+
416
+ return {
417
+ "apiVersion": "v1",
418
+ "kind": "Secret",
419
+ "metadata": {
420
+ "name": name,
421
+ },
422
+ "type": secret_type,
423
+ "data": encoded_data,
424
+ }
@@ -42,5 +42,3 @@ class LabelStudioIntegration(Integration):
42
42
 
43
43
  return [LabelStudioAnnotatorFlavor]
44
44
 
45
-
46
- LabelStudioIntegration.check_installation()
@@ -38,5 +38,3 @@ class LangchainIntegration(Integration):
38
38
  """Activates the integration."""
39
39
  from zenml.integrations.langchain import materializers # noqa
40
40
 
41
-
42
- LangchainIntegration.check_installation()
@@ -30,4 +30,3 @@ class LightGBMIntegration(Integration):
30
30
  from zenml.integrations.lightgbm import materializers # noqa
31
31
 
32
32
 
33
- LightGBMIntegration.check_installation()
@@ -44,5 +44,3 @@ class LightningIntegration(Integration):
44
44
  return [
45
45
  LightningOrchestratorFlavor,
46
46
  ]
47
-
48
- LightningIntegration.check_installation()
@@ -58,7 +58,7 @@ class MlflowIntegration(Integration):
58
58
  from zenml.integrations.pandas import PandasIntegration
59
59
 
60
60
  reqs = [
61
- "mlflow>=2.1.1,<3",
61
+ "mlflow>=2.1.1,<2.21.0",
62
62
  # TODO: remove this requirement once rapidjson is fixed
63
63
  "python-rapidjson<1.15",
64
64
  # When you do:
@@ -111,5 +111,3 @@ class MlflowIntegration(Integration):
111
111
  MLFlowModelRegistryFlavor,
112
112
  ]
113
113
 
114
-
115
- MlflowIntegration.check_installation()
@@ -30,6 +30,7 @@ from zenml.integrations.mlflow.experiment_trackers.mlflow_experiment_tracker imp
30
30
  MLFlowExperimentTracker,
31
31
  )
32
32
  from zenml.logger import get_logger
33
+ from zenml.models.v2.misc.service import ServiceType
33
34
  from zenml.services import (
34
35
  HTTPEndpointHealthMonitor,
35
36
  HTTPEndpointHealthMonitorConfig,
@@ -38,7 +39,6 @@ from zenml.services import (
38
39
  LocalDaemonServiceEndpoint,
39
40
  LocalDaemonServiceEndpointConfig,
40
41
  ServiceEndpointProtocol,
41
- ServiceType,
42
42
  )
43
43
  from zenml.services.service import BaseDeploymentService
44
44
 
@@ -43,4 +43,3 @@ class ModalIntegration(Integration):
43
43
  return [ModalStepOperatorFlavor]
44
44
 
45
45
 
46
- ModalIntegration.check_installation()
@@ -46,5 +46,3 @@ class NeptuneIntegration(Integration):
46
46
  NeptuneExperimentTrackerFlavor,
47
47
  ]
48
48
 
49
-
50
- NeptuneIntegration.check_installation() # this checks if the requirements are installed
@@ -33,5 +33,3 @@ class NeuralProphetIntegration(Integration):
33
33
  """Activates the integration."""
34
34
  from zenml.integrations.neural_prophet import materializers # noqa
35
35
 
36
-
37
- NeuralProphetIntegration.check_installation()
@@ -28,5 +28,3 @@ class NumpyIntegration(Integration):
28
28
  """Activates the integration."""
29
29
  from zenml.integrations.numpy import materializers # noqa
30
30
 
31
-
32
- NumpyIntegration.check_installation()
@@ -24,4 +24,3 @@ class OpenAIIntegration(Integration):
24
24
  REQUIREMENTS = ["openai>=1.0.0"]
25
25
 
26
26
 
27
- OpenAIIntegration.check_installation()
@@ -28,5 +28,3 @@ class PandasIntegration(Integration):
28
28
  """Activates the integration."""
29
29
  from zenml.integrations.pandas import materializers # noqa
30
30
 
31
-
32
- PandasIntegration.check_installation()
@@ -41,4 +41,3 @@ class PigeonIntegration(Integration):
41
41
  return [PigeonAnnotatorFlavor]
42
42
 
43
43
 
44
- PigeonIntegration.check_installation()
@@ -27,6 +27,3 @@ class PillowIntegration(Integration):
27
27
  def activate(cls) -> None:
28
28
  """Activates the integration."""
29
29
  from zenml.integrations.pillow import materializers # noqa
30
-
31
-
32
- PillowIntegration.check_installation()
@@ -32,5 +32,3 @@ class PolarsIntegration(Integration):
32
32
  """Activates the integration."""
33
33
  from zenml.integrations.polars import materializers # noqa
34
34
 
35
-
36
- PolarsIntegration.check_installation()
@@ -45,4 +45,3 @@ class ProdigyIntegration(Integration):
45
45
  return [ProdigyAnnotatorFlavor]
46
46
 
47
47
 
48
- ProdigyIntegration.check_installation()
@@ -40,5 +40,3 @@ class PyCaretIntegration(Integration):
40
40
  """Activates the integration."""
41
41
  from zenml.integrations.pycaret import materializers # noqa
42
42
 
43
-
44
- PyCaretIntegration.check_installation()
@@ -31,4 +31,3 @@ class PytorchIntegration(Integration):
31
31
  from zenml.integrations.pytorch import materializers # noqa
32
32
 
33
33
 
34
- PytorchIntegration.check_installation()
@@ -28,5 +28,3 @@ class PytorchLightningIntegration(Integration):
28
28
  """Activates the integration."""
29
29
  from zenml.integrations.pytorch_lightning import materializers # noqa
30
30
 
31
-
32
- PytorchLightningIntegration.check_installation()
@@ -13,6 +13,8 @@
13
13
  # permissions and limitations under the License.
14
14
  """Implementation of a registry to track ZenML integrations."""
15
15
 
16
+ import importlib
17
+ import os
16
18
  from typing import TYPE_CHECKING, Any, Dict, List, Optional, Type
17
19
 
18
20
  from zenml.exceptions import IntegrationError
@@ -30,6 +32,7 @@ class IntegrationRegistry(object):
30
32
  def __init__(self) -> None:
31
33
  """Initializing the integration registry."""
32
34
  self._integrations: Dict[str, Type["Integration"]] = {}
35
+ self._initialized = False
33
36
 
34
37
  @property
35
38
  def integrations(self) -> Dict[str, Type["Integration"]]:
@@ -38,6 +41,7 @@ class IntegrationRegistry(object):
38
41
  Returns:
39
42
  A dict of integration key to type of `Integration`.
40
43
  """
44
+ self._initialize()
41
45
  return self._integrations
42
46
 
43
47
  @integrations.setter
@@ -68,8 +72,33 @@ class IntegrationRegistry(object):
68
72
  """
69
73
  self._integrations[key] = type_
70
74
 
75
+ def _initialize(self) -> None:
76
+ """Method to register all integrations."""
77
+ if self._initialized:
78
+ return
79
+ self._initialized = True
80
+
81
+ # Load all submodules in the integrations module
82
+ integrations_dir = os.path.dirname(__file__)
83
+ for file in os.listdir(integrations_dir):
84
+ full_path = os.path.join(integrations_dir, file)
85
+ # Skip anything that isn't a directory
86
+ if not os.path.isdir(full_path):
87
+ continue
88
+ # Skip anything that doesn't have a __init__.py file
89
+ if not os.path.exists(os.path.join(full_path, "__init__.py")):
90
+ continue
91
+ # Import the module
92
+ module_path = f"zenml.integrations.{file}"
93
+ try:
94
+ importlib.import_module(module_path)
95
+ except ImportError:
96
+ logger.exception(f"Failed to import module `{module_path}`.")
97
+ continue
98
+
71
99
  def activate_integrations(self) -> None:
72
100
  """Method to activate the integrations with are registered in the registry."""
101
+ self._initialize()
73
102
  for name, integration in self._integrations.items():
74
103
  if integration.check_installation():
75
104
  logger.debug(f"Activating integration `{name}`...")
@@ -85,6 +114,7 @@ class IntegrationRegistry(object):
85
114
  Returns:
86
115
  A list of all possible integrations.
87
116
  """
117
+ self._initialize()
88
118
  return [name for name in self._integrations]
89
119
 
90
120
  def select_integration_requirements(
@@ -104,6 +134,7 @@ class IntegrationRegistry(object):
104
134
  Raises:
105
135
  KeyError: If the integration is not found.
106
136
  """
137
+ self._initialize()
107
138
  if integration_name:
108
139
  if integration_name in self.list_integration_names:
109
140
  return self._integrations[integration_name].get_requirements(
@@ -141,6 +172,7 @@ class IntegrationRegistry(object):
141
172
  Raises:
142
173
  KeyError: If the integration is not found.
143
174
  """
175
+ self._initialize()
144
176
  if integration_name:
145
177
  if integration_name in self.list_integration_names:
146
178
  return self._integrations[
@@ -173,6 +205,7 @@ class IntegrationRegistry(object):
173
205
  Raises:
174
206
  KeyError: If the integration is not found.
175
207
  """
208
+ self._initialize()
176
209
  if integration_name in self.list_integration_names:
177
210
  return self._integrations[integration_name].check_installation()
178
211
  elif not integration_name:
@@ -194,6 +227,7 @@ class IntegrationRegistry(object):
194
227
  Returns:
195
228
  List of installed integrations.
196
229
  """
230
+ self._initialize()
197
231
  return [
198
232
  name
199
233
  for name, integration in integration_registry.integrations.items()
@@ -58,5 +58,3 @@ class S3Integration(Integration):
58
58
 
59
59
  return [S3ArtifactStoreFlavor]
60
60
 
61
-
62
- S3Integration.check_installation()
@@ -28,5 +28,3 @@ class ScipyIntegration(Integration):
28
28
  """Activates the integration."""
29
29
  from zenml.integrations.scipy import materializers # noqa
30
30
 
31
-
32
- ScipyIntegration.check_installation()
@@ -67,5 +67,3 @@ class SeldonIntegration(Integration):
67
67
  return cls.REQUIREMENTS + \
68
68
  NumpyIntegration.get_requirements(target_os=target_os)
69
69
 
70
-
71
- SeldonIntegration.check_installation()
@@ -22,6 +22,7 @@ import requests
22
22
  from pydantic import Field, ValidationError
23
23
 
24
24
  from zenml import __version__
25
+ from zenml.enums import ServiceState
25
26
  from zenml.integrations.seldon.seldon_client import (
26
27
  SeldonClient,
27
28
  SeldonDeployment,
@@ -30,9 +31,9 @@ from zenml.integrations.seldon.seldon_client import (
30
31
  SeldonResourceRequirements,
31
32
  )
32
33
  from zenml.logger import get_logger
34
+ from zenml.models.v2.misc.service import ServiceType
33
35
  from zenml.services.service import BaseDeploymentService, ServiceConfig
34
- from zenml.services.service_status import ServiceState, ServiceStatus
35
- from zenml.services.service_type import ServiceType
36
+ from zenml.services.service_status import ServiceStatus
36
37
 
37
38
  logger = get_logger(__name__)
38
39
 
@@ -28,5 +28,5 @@ class SklearnIntegration(Integration):
28
28
  """Activates the integration."""
29
29
  from zenml.integrations.sklearn import materializers # noqa
30
30
 
31
-
32
31
  SklearnIntegration.check_installation()
32
+
@@ -318,30 +318,36 @@ class SkypilotBaseOrchestrator(ContainerizedOrchestrator):
318
318
  disk_tier=settings.disk_tier,
319
319
  )
320
320
  )
321
- # Set the cluster name
321
+ # Do not detach run if logs are being streamed
322
+ # Otherwise, the logs will not be streamed after the task is submitted
323
+ # Could also be a parameter in the settings to control this behavior
324
+ detach_run = not settings.stream_logs
325
+
326
+ launch_new_cluster = True
322
327
  if settings.cluster_name:
323
- sky.exec(
324
- task,
325
- settings.cluster_name,
326
- down=down,
327
- stream_logs=settings.stream_logs,
328
- backend=None,
329
- detach_run=True,
328
+ cluster_info = sky.status(
329
+ refresh=True, cluster_names=settings.cluster_name
330
330
  )
331
+ if cluster_info:
332
+ logger.info(
333
+ f"Found existing cluster {settings.cluster_name}. Reusing..."
334
+ )
335
+ launch_new_cluster = False
336
+
337
+ else:
338
+ logger.info(
339
+ f"Cluster {settings.cluster_name} not found. Launching a new one..."
340
+ )
341
+ cluster_name = settings.cluster_name
331
342
  else:
332
- # Find existing cluster
333
- for i in sky.status(refresh=True):
334
- if isinstance(
335
- i["handle"].launched_resources.cloud, type(self.cloud)
336
- ):
337
- cluster_name = i["handle"].cluster_name
338
- logger.info(
339
- f"Found existing cluster {cluster_name}. Reusing..."
340
- )
341
343
  cluster_name = self.sanitize_cluster_name(
342
344
  f"{orchestrator_run_name}"
343
345
  )
344
- # Launch the cluster
346
+ logger.info(
347
+ f"No cluster name provided. Launching a new cluster with name {cluster_name}..."
348
+ )
349
+
350
+ if launch_new_cluster:
345
351
  sky.launch(
346
352
  task,
347
353
  cluster_name,
@@ -349,7 +355,26 @@ class SkypilotBaseOrchestrator(ContainerizedOrchestrator):
349
355
  idle_minutes_to_autostop=idle_minutes_to_autostop,
350
356
  down=down,
351
357
  stream_logs=settings.stream_logs,
358
+ backend=None,
352
359
  detach_setup=True,
360
+ detach_run=detach_run,
361
+ )
362
+ else:
363
+ # Make sure the cluster is up -
364
+ # If the cluster is already up, this will not do anything
365
+ sky.start(
366
+ settings.cluster_name,
367
+ down=down,
368
+ idle_minutes_to_autostop=idle_minutes_to_autostop,
369
+ retry_until_up=settings.retry_until_up,
370
+ )
371
+ sky.exec(
372
+ task,
373
+ settings.cluster_name,
374
+ down=down,
375
+ stream_logs=settings.stream_logs,
376
+ backend=None,
377
+ detach_run=detach_run,
353
378
  )
354
379
 
355
380
  except Exception as e:
@@ -32,7 +32,7 @@ class SkypilotAWSIntegration(Integration):
32
32
 
33
33
  NAME = SKYPILOT_AWS
34
34
  # all 0.6.x versions of skypilot[aws] are compatible
35
- REQUIREMENTS = ["skypilot[aws]~=0.6.0"]
35
+ REQUIREMENTS = ["skypilot[aws]~=0.8.0"]
36
36
  APT_PACKAGES = ["openssh-client", "rsync"]
37
37
 
38
38
  @classmethod
@@ -48,5 +48,3 @@ class SkypilotAWSIntegration(Integration):
48
48
 
49
49
  return [SkypilotAWSOrchestratorFlavor]
50
50
 
51
-
52
- SkypilotAWSIntegration.check_installation()
@@ -31,7 +31,7 @@ class SkypilotAzureIntegration(Integration):
31
31
  """Definition of Skypilot (Azure) Integration for ZenML."""
32
32
 
33
33
  NAME = SKYPILOT_AZURE
34
- REQUIREMENTS = ["skypilot[azure]>=0.6.1"]
34
+ REQUIREMENTS = ["skypilot[azure]~=0.8.0"]
35
35
  APT_PACKAGES = ["openssh-client", "rsync"]
36
36
 
37
37
  @classmethod
@@ -47,4 +47,3 @@ class SkypilotAzureIntegration(Integration):
47
47
 
48
48
  return [SkypilotAzureOrchestratorFlavor]
49
49
 
50
- SkypilotAzureIntegration.check_installation()
@@ -31,7 +31,7 @@ class SkypilotGCPIntegration(Integration):
31
31
  """Definition of Skypilot (GCP) Integration for ZenML."""
32
32
 
33
33
  NAME = SKYPILOT_GCP
34
- REQUIREMENTS = ["skypilot[gcp]~=0.6.0"]
34
+ REQUIREMENTS = ["skypilot[gcp]~=0.8.0"]
35
35
  APT_PACKAGES = ["openssh-client", "rsync"]
36
36
 
37
37
  @classmethod
@@ -46,5 +46,3 @@ class SkypilotGCPIntegration(Integration):
46
46
  )
47
47
 
48
48
  return [SkypilotGCPOrchestratorFlavor]
49
-
50
- SkypilotGCPIntegration.check_installation()
@@ -32,7 +32,7 @@ class SkypilotKubernetesIntegration(Integration):
32
32
 
33
33
  NAME = SKYPILOT_KUBERNETES
34
34
  # all 0.6.x versions of skypilot[kubernetes] are compatible
35
- REQUIREMENTS = ["skypilot[kubernetes]~=0.6.1"]
35
+ REQUIREMENTS = ["skypilot[kubernetes]~=0.8.0"]
36
36
  APT_PACKAGES = ["openssh-client", "rsync"]
37
37
 
38
38
  @classmethod
@@ -48,5 +48,3 @@ class SkypilotKubernetesIntegration(Integration):
48
48
 
49
49
  return [SkypilotKubernetesOrchestratorFlavor]
50
50
 
51
-
52
- SkypilotKubernetesIntegration.check_installation()
@@ -31,7 +31,7 @@ class SkypilotLambdaIntegration(Integration):
31
31
  """Definition of Skypilot Lambda Integration for ZenML."""
32
32
 
33
33
  NAME = SKYPILOT_LAMBDA
34
- REQUIREMENTS = ["skypilot[lambda]~=0.6.0"]
34
+ REQUIREMENTS = ["skypilot[lambda]~=0.8.0"]
35
35
 
36
36
  @classmethod
37
37
  def flavors(cls) -> List[Type[Flavor]]:
@@ -46,5 +46,3 @@ class SkypilotLambdaIntegration(Integration):
46
46
 
47
47
  return [SkypilotLambdaOrchestratorFlavor]
48
48
 
49
-
50
- SkypilotLambdaIntegration.check_installation()
@@ -44,4 +44,3 @@ class SlackIntegration(Integration):
44
44
  return [SlackAlerterFlavor]
45
45
 
46
46
 
47
- SlackIntegration.check_installation()
@@ -49,4 +49,3 @@ class SparkIntegration(Integration):
49
49
  return [KubernetesSparkStepOperatorFlavor]
50
50
 
51
51
 
52
- SparkIntegration.check_installation()
@@ -46,4 +46,3 @@ class TektonIntegration(Integration):
46
46
  return [TektonOrchestratorFlavor]
47
47
 
48
48
 
49
- TektonIntegration.check_installation()
@@ -42,5 +42,3 @@ class TensorBoardIntegration(Integration):
42
42
  """Activates the integration."""
43
43
  from zenml.integrations.tensorboard import services # noqa
44
44
 
45
-
46
- TensorBoardIntegration.check_installation()
@@ -19,6 +19,7 @@ from typing import Any, Dict, Union
19
19
  from tensorboard import default, program # type: ignore [import-untyped]
20
20
 
21
21
  from zenml.logger import get_logger
22
+ from zenml.models.v2.misc.service import ServiceType
22
23
  from zenml.services import (
23
24
  HTTPEndpointHealthMonitor,
24
25
  HTTPEndpointHealthMonitorConfig,
@@ -27,7 +28,6 @@ from zenml.services import (
27
28
  LocalDaemonServiceEndpoint,
28
29
  LocalDaemonServiceEndpointConfig,
29
30
  ServiceEndpointProtocol,
30
- ServiceType,
31
31
  )
32
32
 
33
33
  logger = get_logger(__name__)
@@ -64,5 +64,3 @@ class TensorflowIntegration(Integration):
64
64
  requirements.append("typing-extensions>=4.6.1")
65
65
  return requirements
66
66
 
67
-
68
- TensorflowIntegration.check_installation()
@@ -47,4 +47,3 @@ class VLLMIntegration(Integration):
47
47
  return [VLLMModelDeployerFlavor]
48
48
 
49
49
 
50
- VLLMIntegration.check_installation()
@@ -19,6 +19,7 @@ from typing import Any, List, Optional, Union
19
19
 
20
20
  from zenml.constants import DEFAULT_LOCAL_SERVICE_IP_ADDRESS
21
21
  from zenml.logger import get_logger
22
+ from zenml.models.v2.misc.service import ServiceType
22
23
  from zenml.services import (
23
24
  HTTPEndpointHealthMonitor,
24
25
  HTTPEndpointHealthMonitorConfig,
@@ -27,7 +28,6 @@ from zenml.services import (
27
28
  LocalDaemonServiceEndpoint,
28
29
  LocalDaemonServiceEndpointConfig,
29
30
  ServiceEndpointProtocol,
30
- ServiceType,
31
31
  )
32
32
  from zenml.services.service import BaseDeploymentService
33
33
 
@@ -47,4 +47,3 @@ class WandbIntegration(Integration):
47
47
  return [WandbExperimentTrackerFlavor]
48
48
 
49
49
 
50
- WandbIntegration.check_installation()
@@ -65,4 +65,3 @@ class WhylogsIntegration(Integration):
65
65
  PandasIntegration.get_requirements(target_os=target_os)
66
66
 
67
67
 
68
- WhylogsIntegration.check_installation()
@@ -28,5 +28,3 @@ class XgboostIntegration(Integration):
28
28
  """Activates the integration."""
29
29
  from zenml.integrations.xgboost import materializers # noqa
30
30
 
31
-
32
- XgboostIntegration.check_installation()
@@ -20,11 +20,11 @@ from uuid import UUID
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict
22
22
 
23
+ from zenml.enums import ServiceState
23
24
  from zenml.login.pro.constants import ZENML_PRO_API_URL, ZENML_PRO_URL
24
25
  from zenml.login.pro.workspace.models import WorkspaceRead, WorkspaceStatus
25
26
  from zenml.models import ServerModel
26
27
  from zenml.models.v2.misc.server_models import ServerDeploymentType
27
- from zenml.services.service_status import ServiceState
28
28
  from zenml.utils.enum_utils import StrEnum
29
29
  from zenml.utils.string_utils import get_human_readable_time
30
30
  from zenml.utils.time_utils import to_local_tz, utc_now
@@ -33,6 +33,7 @@ from zenml.materializers.pydantic_materializer import PydanticMaterializer
33
33
  from zenml.materializers.service_materializer import ServiceMaterializer
34
34
  from zenml.materializers.uuid_materializer import UUIDMaterializer
35
35
 
36
+
36
37
  __all__ = [
37
38
  "BuiltInContainerMaterializer",
38
39
  "BuiltInMaterializer",
@@ -30,9 +30,9 @@ from uuid import UUID
30
30
  from zenml.client import Client
31
31
  from zenml.enums import StackComponentType
32
32
  from zenml.logger import get_logger
33
+ from zenml.models.v2.misc.service import ServiceType
33
34
  from zenml.services import BaseService, ServiceConfig
34
35
  from zenml.services.service import BaseDeploymentService
35
- from zenml.services.service_type import ServiceType
36
36
  from zenml.stack import StackComponent
37
37
  from zenml.stack.flavor import Flavor
38
38
  from zenml.stack.stack_component import StackComponentConfig