zenml-nightly 0.82.1.dev20250526__py3-none-any.whl → 0.82.1.dev20250528__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 (311) hide show
  1. zenml/VERSION +1 -1
  2. zenml/artifacts/utils.py +8 -0
  3. zenml/cli/base.py +6 -1
  4. zenml/cli/model.py +16 -36
  5. zenml/cli/server.py +8 -3
  6. zenml/client.py +20 -4
  7. zenml/client_lazy_loader.py +2 -0
  8. zenml/config/docker_settings.py +15 -2
  9. zenml/enums.py +3 -0
  10. zenml/event_hub/event_hub.py +1 -1
  11. zenml/integrations/bitbucket/plugins/event_sources/bitbucket_webhook_event_source.py +1 -1
  12. zenml/integrations/github/plugins/event_sources/github_webhook_event_source.py +1 -1
  13. zenml/integrations/kubernetes/flavors/kubernetes_orchestrator_flavor.py +3 -0
  14. zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator_entrypoint.py +37 -26
  15. zenml/logging/step_logging.py +17 -4
  16. zenml/login/web_login.py +1 -1
  17. zenml/model/model.py +13 -23
  18. zenml/models/__init__.py +39 -2
  19. zenml/models/v2/base/scoped.py +34 -15
  20. zenml/models/v2/core/artifact.py +10 -9
  21. zenml/models/v2/core/artifact_version.py +16 -16
  22. zenml/models/v2/core/logs.py +8 -50
  23. zenml/models/v2/core/model.py +10 -10
  24. zenml/models/v2/core/model_version.py +155 -88
  25. zenml/models/v2/core/pipeline.py +10 -11
  26. zenml/models/v2/core/pipeline_deployment.py +1 -9
  27. zenml/models/v2/core/pipeline_run.py +10 -17
  28. zenml/models/v2/core/run_template.py +10 -10
  29. zenml/models/v2/core/step_run.py +100 -16
  30. zenml/models/v2/core/tag.py +5 -4
  31. zenml/models/v2/misc/pipeline_run_dag.py +46 -0
  32. zenml/orchestrators/base_orchestrator.py +8 -19
  33. zenml/orchestrators/cache_utils.py +48 -1
  34. zenml/orchestrators/input_utils.py +35 -39
  35. zenml/orchestrators/step_launcher.py +1 -1
  36. zenml/orchestrators/step_run_utils.py +26 -10
  37. zenml/pipelines/pipeline_definition.py +3 -3
  38. zenml/pipelines/run_utils.py +2 -3
  39. zenml/service_connectors/service_connector.py +5 -1
  40. zenml/stack/stack_component.py +1 -4
  41. zenml/steps/step_context.py +1 -1
  42. zenml/utils/dashboard_utils.py +3 -3
  43. zenml/zen_server/auth.py +6 -3
  44. zenml/zen_server/cloud_utils.py +2 -2
  45. zenml/zen_server/dashboard/assets/{404-_AtuLtaX.js → 404-DmJUgorp.js} +1 -1
  46. zenml/zen_server/dashboard/assets/{@radix-C7hRs6Kx.js → @radix-Cdvw4jJ8.js} +1 -1
  47. zenml/zen_server/dashboard/assets/{@react-router-CNP6g_RL.js → @react-router-DeDfXbUF.js} +5 -5
  48. zenml/zen_server/dashboard/assets/{@reactflow-CQi1Z1Wq.js → @reactflow-8OCk19Fi.js} +1 -1
  49. zenml/zen_server/dashboard/assets/{@tanstack-CSxjHCME.js → @tanstack-5gTMR7G2.js} +4 -4
  50. zenml/zen_server/dashboard/assets/AlertDialogDropdownItem-CZW4QyWn.js +1 -0
  51. zenml/zen_server/dashboard/assets/ButtonGroup-DFWWFGUE.js +1 -0
  52. zenml/zen_server/dashboard/assets/{CodeSnippet-CvI6D0wx.js → CodeSnippet-D2HkkAGr.js} +1 -1
  53. zenml/zen_server/dashboard/assets/CollapsibleCard-CnS09ljw.js +1 -0
  54. zenml/zen_server/dashboard/assets/{ComponentBadge-DKw7Gndh.js → ComponentBadge-CDgdd0Ks.js} +1 -1
  55. zenml/zen_server/dashboard/assets/ComponentIcon-CbbOc7lb.js +1 -0
  56. zenml/zen_server/dashboard/assets/{DeleteAlertDialog-DVvXt-S6.js → DeleteAlertDialog-VIOMDLmx.js} +1 -1
  57. zenml/zen_server/dashboard/assets/DialogItem-ClFCqxEp.js +1 -0
  58. zenml/zen_server/dashboard/assets/{DisplayDate-CYVBBSgr.js → DisplayDate-8RESqe5H.js} +1 -1
  59. zenml/zen_server/dashboard/assets/{EmptyState-M1jafpg6.js → EmptyState-CjrgDtVk.js} +1 -1
  60. zenml/zen_server/dashboard/assets/{Error-BWaXP0VK.js → Error-CQzjbDcN.js} +1 -1
  61. zenml/zen_server/dashboard/assets/ExecutionStatus-CWreILP0.js +1 -0
  62. zenml/zen_server/dashboard/assets/{Helpbox-iE1xLmiZ.js → Helpbox-CiKxG5_X.js} +1 -1
  63. zenml/zen_server/dashboard/assets/Infobox-CGxFvqzi.js +1 -0
  64. zenml/zen_server/dashboard/assets/LeftSideMenu-DCsKdIjC.js +1 -0
  65. zenml/zen_server/dashboard/assets/{Lock-DW-0_M0o.js → Lock-CrIAdQo6.js} +1 -1
  66. zenml/zen_server/dashboard/assets/NestedCollapsible-3M4llYtH.js +1 -0
  67. zenml/zen_server/dashboard/assets/NumberBox-C0mQktmV.js +1 -0
  68. zenml/zen_server/dashboard/assets/Partials-DSjkttlz.js +1 -0
  69. zenml/zen_server/dashboard/assets/{PasswordChecker-lYTOtNom.js → PasswordChecker-B88WjuCe.js} +1 -1
  70. zenml/zen_server/dashboard/assets/ProCta-Dm5cWKpS.js +1 -0
  71. zenml/zen_server/dashboard/assets/{ProviderIcon-DLo7t1lo.js → ProviderIcon-DPwMR6nF.js} +1 -1
  72. zenml/zen_server/dashboard/assets/ProviderRadio-DEDNRgAb.js +1 -0
  73. zenml/zen_server/dashboard/assets/RunsBody-BRBn1e2O.js +1 -0
  74. zenml/zen_server/dashboard/assets/SearchField-DY6-UbRT.js +1 -0
  75. zenml/zen_server/dashboard/assets/SecretTooltip-CZTRnaCV.js +1 -0
  76. zenml/zen_server/dashboard/assets/{SetPassword-DR-EiLI5.js → SetPassword-BjNGDC5e.js} +1 -1
  77. zenml/zen_server/dashboard/assets/SheetHeader-CASpN2Lz.js +1 -0
  78. zenml/zen_server/dashboard/assets/StackComponentList-Be1pQt9m.js +1 -0
  79. zenml/zen_server/dashboard/assets/StackList-BdiR5DvR.js +1 -0
  80. zenml/zen_server/dashboard/assets/StackName-ojLC6xdl.js +1 -0
  81. zenml/zen_server/dashboard/assets/Tabs-DNSKblCM.js +1 -0
  82. zenml/zen_server/dashboard/assets/Tick-BPrWnNlN.js +1 -0
  83. zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-DbFEaezI.js → UpdatePasswordSchemas-CNfKDo2Q.js} +1 -1
  84. zenml/zen_server/dashboard/assets/UsageReason-Cb-mpV8M.js +1 -0
  85. zenml/zen_server/dashboard/assets/{Wizard-CMI6Ksgz.js → Wizard-Dg8Pmn5A.js} +1 -1
  86. zenml/zen_server/dashboard/assets/WizardFooter-BcNDIvlQ.js +1 -0
  87. zenml/zen_server/dashboard/assets/{all-pipeline-runs-query-BGASHYtF.js → all-pipeline-runs-query-DCdax7I5.js} +1 -1
  88. zenml/zen_server/dashboard/assets/{arrow-left-CwgF2MEM.js → arrow-left-MRXv5pAH.js} +1 -1
  89. zenml/zen_server/dashboard/assets/bulk-delete-C_kpIB9A.js +3 -0
  90. zenml/zen_server/dashboard/assets/{check-DK77doTf.js → check-B9QMTa3f.js} +1 -1
  91. zenml/zen_server/dashboard/assets/{check-circle-mvyzYvIW.js → check-circle-C4tYvbtw.js} +1 -1
  92. zenml/zen_server/dashboard/assets/{chevron-down-A-rmltmI.js → chevron-down-jbbQh82s.js} +1 -1
  93. zenml/zen_server/dashboard/assets/{chevron-right-double-uNWbJT-C.js → chevron-right-double-Dgp_gEsp.js} +1 -1
  94. zenml/zen_server/dashboard/assets/{clock-CPA5cYxq.js → clock-B_mTG8PH.js} +1 -1
  95. zenml/zen_server/dashboard/assets/{code-browser-j2EpcxIA.js → code-browser-CiD8qkBx.js} +1 -1
  96. zenml/zen_server/dashboard/assets/configuration-form-B2hmKGnF.js +1 -0
  97. zenml/zen_server/dashboard/assets/connectivity-4UKGMYnr.webp +0 -0
  98. zenml/zen_server/dashboard/assets/constants-1EZZxtay.js +1 -0
  99. zenml/zen_server/dashboard/assets/create-stack-TKmMtrkQ.js +1 -0
  100. zenml/zen_server/dashboard/assets/dates-Buh6SMo7.js +1 -0
  101. zenml/zen_server/dashboard/assets/delete-run-CCR9md_s.js +1 -0
  102. zenml/zen_server/dashboard/assets/eye-CbVlAYty.js +1 -0
  103. zenml/zen_server/dashboard/assets/{file-text-BdxZdjP_.js → file-text-Cd8wVfq5.js} +1 -1
  104. zenml/zen_server/dashboard/assets/form-DFJkaFDX.js +1 -0
  105. zenml/zen_server/dashboard/assets/form-schemas-CrznJVzA.js +1 -0
  106. zenml/zen_server/dashboard/assets/{gcp-CHNvgEss.js → gcp-B1I3Qvcx.js} +1 -1
  107. zenml/zen_server/dashboard/assets/{help-DyMolRxD.js → help-Co6aedki.js} +1 -1
  108. zenml/zen_server/dashboard/assets/index-BFqbGSck.js +308 -0
  109. zenml/zen_server/dashboard/assets/{index-CrhdX_qG.js → index-BjUu1mP4.js} +1 -1
  110. zenml/zen_server/dashboard/assets/{index-DR30v9MZ.js → index-DWpiv-Ft.js} +1 -1
  111. zenml/zen_server/dashboard/assets/index-DuhuqTCI.css +1 -0
  112. zenml/zen_server/dashboard/assets/index-U992soPJ.js +1 -0
  113. zenml/zen_server/dashboard/assets/index.es-C1gfATPn.js +14 -0
  114. zenml/zen_server/dashboard/assets/{index.esm-D7jFlf5N.js → index.esm-DhJo3mA6.js} +1 -1
  115. zenml/zen_server/dashboard/assets/info-QkbQz4QU.js +1 -0
  116. zenml/zen_server/dashboard/assets/{key-icon-DO4DPJHZ.js → key-icon-C07HKw8z.js} +1 -1
  117. zenml/zen_server/dashboard/assets/{layout-h3cbx8WZ.js → layout-DBbfEFBe.js} +1 -1
  118. zenml/zen_server/dashboard/assets/layout-Do9YI4QX.js +1 -0
  119. zenml/zen_server/dashboard/assets/login-mutation-D3tFP6Wm.js +1 -0
  120. zenml/zen_server/dashboard/assets/{logs-B5n0U7tB.js → logs-CQKlJjo0.js} +1 -1
  121. zenml/zen_server/dashboard/assets/{package-D1Mhqeh8.js → package-miExReQl.js} +1 -1
  122. zenml/zen_server/dashboard/assets/page-9RjCitFH.js +1 -0
  123. zenml/zen_server/dashboard/assets/page-B0PsXWiT.js +1 -0
  124. zenml/zen_server/dashboard/assets/page-BCrKmYIZ.js +1 -0
  125. zenml/zen_server/dashboard/assets/page-BcRI3-aR.js +29 -0
  126. zenml/zen_server/dashboard/assets/page-Be3R2uYn.js +1 -0
  127. zenml/zen_server/dashboard/assets/page-BgknnddT.js +1 -0
  128. zenml/zen_server/dashboard/assets/page-BrT0_zSJ.js +40 -0
  129. zenml/zen_server/dashboard/assets/page-Bs3W2FDi.js +1 -0
  130. zenml/zen_server/dashboard/assets/page-C210HcBA.js +1 -0
  131. zenml/zen_server/dashboard/assets/page-C6KaiZ_W.js +1 -0
  132. zenml/zen_server/dashboard/assets/page-CAJ8B0vb.js +1 -0
  133. zenml/zen_server/dashboard/assets/page-CAUYrfui.js +1 -0
  134. zenml/zen_server/dashboard/assets/page-CHxVhF3x.js +1 -0
  135. zenml/zen_server/dashboard/assets/{page-CSwZxZMQ.js → page-CN7lkvXr.js} +1 -1
  136. zenml/zen_server/dashboard/assets/page-CUaMMoPG.js +1 -0
  137. zenml/zen_server/dashboard/assets/page-Cal6XQ4U.js +1 -0
  138. zenml/zen_server/dashboard/assets/page-CdZCmszX.js +1 -0
  139. zenml/zen_server/dashboard/assets/page-ChGcZI_6.js +1 -0
  140. zenml/zen_server/dashboard/assets/page-CktmtZ8Z.js +1 -0
  141. zenml/zen_server/dashboard/assets/page-ClvmVesa.js +1 -0
  142. zenml/zen_server/dashboard/assets/page-CnbIYE80.js +1 -0
  143. zenml/zen_server/dashboard/assets/page-CoXzjeEY.js +1 -0
  144. zenml/zen_server/dashboard/assets/page-CtiuMP_r.js +1 -0
  145. zenml/zen_server/dashboard/assets/page-D9Hfx6GV.js +1 -0
  146. zenml/zen_server/dashboard/assets/page-D9iuB88h.js +1 -0
  147. zenml/zen_server/dashboard/assets/page-DCcuPZ8P.js +1 -0
  148. zenml/zen_server/dashboard/assets/page-DEohTSz6.js +1 -0
  149. zenml/zen_server/dashboard/assets/page-DJIGaUQ9.js +1 -0
  150. zenml/zen_server/dashboard/assets/page-DKK6ulgy.js +1 -0
  151. zenml/zen_server/dashboard/assets/page-DNjKHjnH.js +1 -0
  152. zenml/zen_server/dashboard/assets/page-DUK0Nd_1.js +1 -0
  153. zenml/zen_server/dashboard/assets/page-DUKbOhaD.js +1 -0
  154. zenml/zen_server/dashboard/assets/page-DYOucPtA.js +1 -0
  155. zenml/zen_server/dashboard/assets/page-DpqRelAy.js +1 -0
  156. zenml/zen_server/dashboard/assets/{page-ZfTtFicG.js → page-DwVPpCFg.js} +2 -2
  157. zenml/zen_server/dashboard/assets/page-XURWnYZP.js +1 -0
  158. zenml/zen_server/dashboard/assets/page-abw-2oeW.js +1 -0
  159. zenml/zen_server/dashboard/assets/page-akLcPcKw.js +1 -0
  160. zenml/zen_server/dashboard/assets/page-n9ejQ2V3.js +2 -0
  161. zenml/zen_server/dashboard/assets/page-sJjNT9xA.js +6 -0
  162. zenml/zen_server/dashboard/assets/{persist-UUym702q.js → persist-DWMWVP-y.js} +1 -1
  163. zenml/zen_server/dashboard/assets/{persist-D87V82eO.js → persist-Dec_w7aB.js} +1 -1
  164. zenml/zen_server/dashboard/assets/pipeline-CSUlkd50.js +1 -0
  165. zenml/zen_server/dashboard/assets/{plus-COjQg3AG.js → plus-Cl0_rCVF.js} +1 -1
  166. zenml/zen_server/dashboard/assets/{react-error-boundary.esm-fyoUBS25.js → react-error-boundary.esm-7_MuhCay.js} +1 -1
  167. zenml/zen_server/dashboard/assets/{refresh-CM5T3QeU.js → refresh-BcTM09NW.js} +1 -1
  168. zenml/zen_server/dashboard/assets/resource-tyes-list-o2LXiMay.js +1 -0
  169. zenml/zen_server/dashboard/assets/resource-type-tooltip-DwHrJstL.js +1 -0
  170. zenml/zen_server/dashboard/assets/service-connectors-DSEMwJ5A.js +1 -0
  171. zenml/zen_server/dashboard/assets/{service-BQ9KIhls.js → service-jxtvgks0.js} +2 -2
  172. zenml/zen_server/dashboard/assets/sharedSchema-BXzg0EZz.js +1 -0
  173. zenml/zen_server/dashboard/assets/stack-detail-query-Cm0fsgo-.js +1 -0
  174. zenml/zen_server/dashboard/assets/{terminal-square-DMtel8mb.js → terminal-XFL_4QN-.js} +1 -1
  175. zenml/zen_server/dashboard/assets/terminal-square-XFL_4QN-.js +1 -0
  176. zenml/zen_server/dashboard/assets/transform-CeZdrxDZ.js +1 -0
  177. zenml/zen_server/dashboard/assets/{trash-BWSZ7NRK.js → trash-DP6Tpp_E.js} +1 -1
  178. zenml/zen_server/dashboard/assets/type-guards-CNgPYg8l.js +1 -0
  179. zenml/zen_server/dashboard/assets/update-current-user-mutation-D5MjcQ6F.js +1 -0
  180. zenml/zen_server/dashboard/assets/update-server-settings-mutation-CmnxdxiK.js +1 -0
  181. zenml/zen_server/dashboard/assets/{zod-C0xYeTvL.js → zod-XdS2h1ws.js} +1 -1
  182. zenml/zen_server/dashboard/index.html +7 -7
  183. zenml/zen_server/rbac/utils.py +2 -2
  184. zenml/zen_server/rbac/zenml_cloud_rbac.py +4 -3
  185. zenml/zen_server/routers/auth_endpoints.py +2 -2
  186. zenml/zen_server/routers/devices_endpoints.py +8 -5
  187. zenml/zen_server/routers/pipeline_deployments_endpoints.py +1 -1
  188. zenml/zen_server/routers/pipelines_endpoints.py +1 -1
  189. zenml/zen_server/routers/run_templates_endpoints.py +3 -3
  190. zenml/zen_server/routers/runs_endpoints.py +35 -0
  191. zenml/zen_server/routers/steps_endpoints.py +3 -0
  192. zenml/zen_server/template_execution/utils.py +6 -6
  193. zenml/zen_stores/dag_generator.py +171 -0
  194. zenml/zen_stores/rest_zen_store.py +17 -3
  195. zenml/zen_stores/schemas/action_schemas.py +40 -4
  196. zenml/zen_stores/schemas/api_key_schemas.py +29 -1
  197. zenml/zen_stores/schemas/artifact_schemas.py +168 -48
  198. zenml/zen_stores/schemas/base_schemas.py +26 -1
  199. zenml/zen_stores/schemas/code_repository_schemas.py +46 -5
  200. zenml/zen_stores/schemas/component_schemas.py +44 -3
  201. zenml/zen_stores/schemas/device_schemas.py +43 -2
  202. zenml/zen_stores/schemas/event_source_schemas.py +41 -5
  203. zenml/zen_stores/schemas/flavor_schemas.py +42 -2
  204. zenml/zen_stores/schemas/model_schemas.py +113 -77
  205. zenml/zen_stores/schemas/pipeline_build_schemas.py +53 -4
  206. zenml/zen_stores/schemas/pipeline_deployment_schemas.py +53 -4
  207. zenml/zen_stores/schemas/pipeline_run_schemas.py +111 -47
  208. zenml/zen_stores/schemas/pipeline_schemas.py +41 -9
  209. zenml/zen_stores/schemas/run_template_schemas.py +75 -11
  210. zenml/zen_stores/schemas/schedule_schema.py +50 -5
  211. zenml/zen_stores/schemas/secret_schemas.py +39 -2
  212. zenml/zen_stores/schemas/service_connector_schemas.py +39 -2
  213. zenml/zen_stores/schemas/service_schemas.py +39 -4
  214. zenml/zen_stores/schemas/stack_schemas.py +47 -2
  215. zenml/zen_stores/schemas/step_run_schemas.py +89 -26
  216. zenml/zen_stores/schemas/tag_schemas.py +69 -5
  217. zenml/zen_stores/schemas/trigger_schemas.py +44 -5
  218. zenml/zen_stores/schemas/utils.py +25 -4
  219. zenml/zen_stores/sql_zen_store.py +471 -28
  220. zenml/zen_stores/zen_store_interface.py +9 -1
  221. {zenml_nightly-0.82.1.dev20250526.dist-info → zenml_nightly-0.82.1.dev20250528.dist-info}/METADATA +1 -1
  222. {zenml_nightly-0.82.1.dev20250526.dist-info → zenml_nightly-0.82.1.dev20250528.dist-info}/RECORD +225 -219
  223. zenml/zen_server/dashboard/assets/AlertDialogDropdownItem-BG7-Ki1L.js +0 -1
  224. zenml/zen_server/dashboard/assets/CollapsibleCard-D20FtrzC.js +0 -1
  225. zenml/zen_server/dashboard/assets/Commands-DGbAvMDk.js +0 -1
  226. zenml/zen_server/dashboard/assets/ComponentIcon-ils7uNAk.js +0 -1
  227. zenml/zen_server/dashboard/assets/CsvVizualization-DVN541XF.js +0 -15
  228. zenml/zen_server/dashboard/assets/DialogItem-BHWf3sIB.js +0 -1
  229. zenml/zen_server/dashboard/assets/ExecutionStatus-XrvT2r65.js +0 -1
  230. zenml/zen_server/dashboard/assets/Infobox-D9k5TFH4.js +0 -1
  231. zenml/zen_server/dashboard/assets/InlineAvatar-Cfz4WSLK.js +0 -1
  232. zenml/zen_server/dashboard/assets/MarkdownVisualization-URCyUPcZ.js +0 -14
  233. zenml/zen_server/dashboard/assets/NestedCollapsible-Dor-bi98.js +0 -1
  234. zenml/zen_server/dashboard/assets/NumberBox-D2A7ENHb.js +0 -1
  235. zenml/zen_server/dashboard/assets/Partials-DQJFw1yW.js +0 -1
  236. zenml/zen_server/dashboard/assets/ProBadge-Cp4hb1YT.js +0 -1
  237. zenml/zen_server/dashboard/assets/ProCta-EYoV9CvK.js +0 -1
  238. zenml/zen_server/dashboard/assets/ProviderRadio-BVDA-fAr.js +0 -1
  239. zenml/zen_server/dashboard/assets/RunSelector-BLuBYNJt.js +0 -1
  240. zenml/zen_server/dashboard/assets/RunsBody-W4WHf-sq.js +0 -1
  241. zenml/zen_server/dashboard/assets/SearchField-D-h6jXyg.js +0 -1
  242. zenml/zen_server/dashboard/assets/SecretTooltip-CePCL8kd.js +0 -1
  243. zenml/zen_server/dashboard/assets/StackList-CgmN5H-i.js +0 -1
  244. zenml/zen_server/dashboard/assets/Tabs-DxQ8PDOD.js +0 -1
  245. zenml/zen_server/dashboard/assets/Tick-CEsT3HPR.js +0 -1
  246. zenml/zen_server/dashboard/assets/UsageReason-DjI5qMje.js +0 -1
  247. zenml/zen_server/dashboard/assets/WizardFooter-CFBHFZas.js +0 -1
  248. zenml/zen_server/dashboard/assets/cloud-squares-DeRLMopf.svg +0 -43
  249. zenml/zen_server/dashboard/assets/configuration-form-BtI2Y4eX.js +0 -1
  250. zenml/zen_server/dashboard/assets/connectors-video-C9qY4syJ.svg +0 -21
  251. zenml/zen_server/dashboard/assets/constants-DP3ZEnXH.js +0 -1
  252. zenml/zen_server/dashboard/assets/create-stack-BJ6x5rzj.js +0 -1
  253. zenml/zen_server/dashboard/assets/dates-3pMLCNrD.js +0 -1
  254. zenml/zen_server/dashboard/assets/delete-run-DlSLEl5T.js +0 -1
  255. zenml/zen_server/dashboard/assets/docker-BuDBFEDL.js +0 -1
  256. zenml/zen_server/dashboard/assets/dots-horizontal-BGRJCPCs.js +0 -1
  257. zenml/zen_server/dashboard/assets/flavor-select-BnPxvQDN.js +0 -1
  258. zenml/zen_server/dashboard/assets/form-schemas-CbvoEUHr.js +0 -1
  259. zenml/zen_server/dashboard/assets/index-CFESYpe4.js +0 -1
  260. zenml/zen_server/dashboard/assets/index-CmLcvK2z.js +0 -1
  261. zenml/zen_server/dashboard/assets/index-CzX3ZYlI.css +0 -1
  262. zenml/zen_server/dashboard/assets/index-D2iSHVZq.js +0 -64
  263. zenml/zen_server/dashboard/assets/kubernetes-D6OUjwSK.js +0 -1
  264. zenml/zen_server/dashboard/assets/link-external-DUhCSKNm.js +0 -1
  265. zenml/zen_server/dashboard/assets/login-command-CkqxPtV3.js +0 -1
  266. zenml/zen_server/dashboard/assets/login-mutation-CXc-Klim.js +0 -1
  267. zenml/zen_server/dashboard/assets/not-found-olRU3fnu.js +0 -1
  268. zenml/zen_server/dashboard/assets/page-7keIM1V3.js +0 -1
  269. zenml/zen_server/dashboard/assets/page-B31neFwG.js +0 -1
  270. zenml/zen_server/dashboard/assets/page-B3zo4KYS.js +0 -1
  271. zenml/zen_server/dashboard/assets/page-BN3MHq1a.js +0 -1
  272. zenml/zen_server/dashboard/assets/page-BNgVExjN.js +0 -1
  273. zenml/zen_server/dashboard/assets/page-BPtvu74G.js +0 -1
  274. zenml/zen_server/dashboard/assets/page-BTIuG0ki.js +0 -2
  275. zenml/zen_server/dashboard/assets/page-BcQzleH6.js +0 -1
  276. zenml/zen_server/dashboard/assets/page-C05Jw4M2.js +0 -1
  277. zenml/zen_server/dashboard/assets/page-C28a7K8h.js +0 -1
  278. zenml/zen_server/dashboard/assets/page-C9WLk0X-.js +0 -1
  279. zenml/zen_server/dashboard/assets/page-CINMx64X.js +0 -1
  280. zenml/zen_server/dashboard/assets/page-CYrJbk7P.js +0 -1
  281. zenml/zen_server/dashboard/assets/page-Ce0cqLo3.js +0 -1
  282. zenml/zen_server/dashboard/assets/page-CgNsEkw-.js +0 -1
  283. zenml/zen_server/dashboard/assets/page-Ct2FUYuR.js +0 -1
  284. zenml/zen_server/dashboard/assets/page-D8G2B3Bu.js +0 -1
  285. zenml/zen_server/dashboard/assets/page-DL8a4_lg.js +0 -3
  286. zenml/zen_server/dashboard/assets/page-DMhYn1cF.js +0 -1
  287. zenml/zen_server/dashboard/assets/page-Dd_Yq-Uf.js +0 -6
  288. zenml/zen_server/dashboard/assets/page-DfSvqT8g.js +0 -1
  289. zenml/zen_server/dashboard/assets/page-Dt6ANUTx.js +0 -1
  290. zenml/zen_server/dashboard/assets/page-DtvTleaT.js +0 -1
  291. zenml/zen_server/dashboard/assets/page-DwfGTiVs.js +0 -1
  292. zenml/zen_server/dashboard/assets/page-JgomSTDc.js +0 -1
  293. zenml/zen_server/dashboard/assets/page-L84ig6HB.js +0 -1
  294. zenml/zen_server/dashboard/assets/page-Mabsn4QJ.js +0 -1
  295. zenml/zen_server/dashboard/assets/page-P04L5cm9.js +0 -1
  296. zenml/zen_server/dashboard/assets/page-PfhAnvq4.js +0 -1
  297. zenml/zen_server/dashboard/assets/page-WdRrlNt_.js +0 -1
  298. zenml/zen_server/dashboard/assets/page-cqJDDDeK.js +0 -1
  299. zenml/zen_server/dashboard/assets/page-k-Wxh9L_.js +0 -1
  300. zenml/zen_server/dashboard/assets/page-y-zV4n0c.js +0 -1
  301. zenml/zen_server/dashboard/assets/rocket-Cf-B-XOR.js +0 -1
  302. zenml/zen_server/dashboard/assets/settings_preview-0JLrRgHP.webp +0 -0
  303. zenml/zen_server/dashboard/assets/sharedSchema-Bse2agAf.js +0 -14
  304. zenml/zen_server/dashboard/assets/stack-detail-query-BAcZJrN3.js +0 -1
  305. zenml/zen_server/dashboard/assets/tick-circle-m94Aa6Zt.js +0 -1
  306. zenml/zen_server/dashboard/assets/tour-cover-BYfeen6M.webp +0 -0
  307. zenml/zen_server/dashboard/assets/type-guards-CaeD8wHO.js +0 -1
  308. zenml/zen_server/dashboard/assets/update-server-settings-mutation-DwMM1LJz.js +0 -1
  309. {zenml_nightly-0.82.1.dev20250526.dist-info → zenml_nightly-0.82.1.dev20250528.dist-info}/LICENSE +0 -0
  310. {zenml_nightly-0.82.1.dev20250526.dist-info → zenml_nightly-0.82.1.dev20250528.dist-info}/WHEEL +0 -0
  311. {zenml_nightly-0.82.1.dev20250526.dist-info → zenml_nightly-0.82.1.dev20250528.dist-info}/entry_points.txt +0 -0
zenml/model/model.py CHANGED
@@ -29,6 +29,7 @@ from zenml.enums import MetadataResourceTypes, ModelStages
29
29
  from zenml.exceptions import EntityExistsError
30
30
  from zenml.logger import get_logger
31
31
  from zenml.pipelines.pipeline_context import get_pipeline_context
32
+ from zenml.utils import pagination_utils
32
33
  from zenml.utils.pydantic_utils import before_validator_handler
33
34
  from zenml.utils.string_utils import format_name_template
34
35
 
@@ -38,7 +39,6 @@ if TYPE_CHECKING:
38
39
  ArtifactVersionResponse,
39
40
  ModelResponse,
40
41
  ModelVersionResponse,
41
- PipelineRunResponse,
42
42
  )
43
43
 
44
44
  logger = get_logger(__name__)
@@ -303,17 +303,6 @@ class Model(BaseModel):
303
303
  version=version,
304
304
  )
305
305
 
306
- def get_pipeline_run(self, name: str) -> "PipelineRunResponse":
307
- """Get pipeline run linked to this version.
308
-
309
- Args:
310
- name: The name of the pipeline run to retrieve.
311
-
312
- Returns:
313
- PipelineRun as PipelineRunResponse
314
- """
315
- return self._get_or_create_model_version().get_pipeline_run(name=name)
316
-
317
306
  def set_stage(
318
307
  self, stage: Union[str, ModelStages], force: bool = False
319
308
  ) -> None:
@@ -431,19 +420,20 @@ class Model(BaseModel):
431
420
 
432
421
  client = Client()
433
422
 
423
+ mv = self._get_or_create_model_version()
424
+
434
425
  if not only_link and delete_from_artifact_store:
435
- mv = self._get_model_version()
436
- artifact_responses = mv.data_artifacts
437
- artifact_responses.update(mv.model_artifacts)
438
- artifact_responses.update(mv.deployment_artifacts)
439
-
440
- for artifact_ in artifact_responses.values():
441
- for artifact_response_ in artifact_.values():
442
- client._delete_artifact_from_artifact_store(
443
- artifact_version=artifact_response_
444
- )
426
+ artifact_versions = pagination_utils.depaginate(
427
+ client.list_artifact_versions,
428
+ model_version_id=mv.id,
429
+ project=mv.project_id,
430
+ )
431
+ for artifact_version in artifact_versions:
432
+ client._delete_artifact_from_artifact_store(
433
+ artifact_version=artifact_version
434
+ )
445
435
 
446
- client.delete_all_model_version_artifact_links(self.id, only_link)
436
+ client.delete_all_model_version_artifact_links(mv.id, only_link)
447
437
 
448
438
  def _lazy_artifact_get(
449
439
  self,
zenml/models/__init__.py CHANGED
@@ -86,6 +86,7 @@ from zenml.models.v2.core.artifact import (
86
86
  ArtifactResponse,
87
87
  ArtifactResponseBody,
88
88
  ArtifactResponseMetadata,
89
+ ArtifactResponseResources,
89
90
  ArtifactUpdate,
90
91
  )
91
92
  from zenml.models.v2.core.artifact_version import (
@@ -94,6 +95,7 @@ from zenml.models.v2.core.artifact_version import (
94
95
  ArtifactVersionResponse,
95
96
  ArtifactVersionResponseBody,
96
97
  ArtifactVersionResponseMetadata,
98
+ ArtifactVersionResponseResources,
97
99
  ArtifactVersionUpdate,
98
100
  LazyArtifactVersionResponse
99
101
  )
@@ -125,6 +127,7 @@ from zenml.models.v2.core.code_repository import (
125
127
  CodeRepositoryResponse,
126
128
  CodeRepositoryResponseBody,
127
129
  CodeRepositoryResponseMetadata,
130
+ CodeRepositoryResponseResources,
128
131
  )
129
132
  from zenml.models.v2.core.component import (
130
133
  ComponentBase,
@@ -149,6 +152,7 @@ from zenml.models.v2.core.device import (
149
152
  OAuthDeviceResponse,
150
153
  OAuthDeviceResponseBody,
151
154
  OAuthDeviceResponseMetadata,
155
+ OAuthDeviceResponseResources,
152
156
  OAuthDeviceInternalRequest,
153
157
  OAuthDeviceInternalUpdate,
154
158
  OAuthDeviceInternalResponse,
@@ -160,6 +164,7 @@ from zenml.models.v2.core.flavor import (
160
164
  FlavorResponse,
161
165
  FlavorResponseBody,
162
166
  FlavorResponseMetadata,
167
+ FlavorResponseResources,
163
168
  )
164
169
  from zenml.models.v2.core.logs import (
165
170
  LogsRequest,
@@ -172,6 +177,7 @@ from zenml.models.v2.core.model import (
172
177
  ModelResponse,
173
178
  ModelResponseBody,
174
179
  ModelResponseMetadata,
180
+ ModelResponseResources,
175
181
  ModelRequest,
176
182
  ModelUpdate,
177
183
  )
@@ -212,6 +218,7 @@ from zenml.models.v2.core.pipeline_build import (
212
218
  PipelineBuildResponse,
213
219
  PipelineBuildResponseBody,
214
220
  PipelineBuildResponseMetadata,
221
+ PipelineBuildResponseResources,
215
222
  )
216
223
  from zenml.models.v2.core.pipeline_deployment import (
217
224
  PipelineDeploymentBase,
@@ -251,6 +258,7 @@ from zenml.models.v2.core.schedule import (
251
258
  ScheduleResponse,
252
259
  ScheduleResponseBody,
253
260
  ScheduleResponseMetadata,
261
+ ScheduleResponseResources,
254
262
  )
255
263
  from zenml.models.v2.core.secret import (
256
264
  SecretFilter,
@@ -258,6 +266,7 @@ from zenml.models.v2.core.secret import (
258
266
  SecretResponse,
259
267
  SecretResponseBody,
260
268
  SecretResponseMetadata,
269
+ SecretResponseResources,
261
270
  SecretUpdate,
262
271
  )
263
272
  from zenml.models.v2.core.service_account import (
@@ -275,6 +284,7 @@ from zenml.models.v2.core.service_connector import (
275
284
  ServiceConnectorResponse,
276
285
  ServiceConnectorResponseBody,
277
286
  ServiceConnectorResponseMetadata,
287
+ ServiceConnectorResponseResources,
278
288
  )
279
289
  from zenml.models.v2.core.stack import (
280
290
  DefaultStackRequest,
@@ -284,6 +294,7 @@ from zenml.models.v2.core.stack import (
284
294
  StackResponse,
285
295
  StackResponseBody,
286
296
  StackResponseMetadata,
297
+ StackResponseResources
287
298
  )
288
299
  from zenml.models.v2.misc.statistics import (
289
300
  ProjectStatistics,
@@ -303,6 +314,7 @@ from zenml.models.v2.core.tag import (
303
314
  TagResponse,
304
315
  TagResponseBody,
305
316
  TagResponseMetadata,
317
+ TagResponseResources,
306
318
  TagRequest,
307
319
  TagUpdate,
308
320
  )
@@ -381,6 +393,7 @@ from zenml.models.v2.misc.auth_models import (
381
393
  OAuthRedirectResponse,
382
394
  OAuthTokenResponse,
383
395
  )
396
+ from zenml.models.v2.misc.pipeline_run_dag import PipelineRunDAG
384
397
  from zenml.models.v2.misc.run_metadata import (
385
398
  RunMetadataEntry,
386
399
  RunMetadataResource,
@@ -423,12 +436,15 @@ APIKeyResponseBody.model_rebuild()
423
436
  ArtifactResponse.model_rebuild()
424
437
  ArtifactResponseBody.model_rebuild()
425
438
  ArtifactResponseMetadata.model_rebuild()
439
+ ArtifactResponseResources.model_rebuild()
426
440
  ArtifactVersionRequest.model_rebuild()
427
441
  ArtifactVersionResponseBody.model_rebuild()
428
442
  ArtifactVersionResponseMetadata.model_rebuild()
443
+ ArtifactVersionResponseResources.model_rebuild()
429
444
  CodeReferenceResponseBody.model_rebuild()
430
445
  CodeRepositoryResponseBody.model_rebuild()
431
446
  CodeRepositoryResponseMetadata.model_rebuild()
447
+ CodeRepositoryResponseResources.model_rebuild()
432
448
  ComponentResponseBody.model_rebuild()
433
449
  ComponentResponseMetadata.model_rebuild()
434
450
  ComponentResponseResources.model_rebuild()
@@ -437,21 +453,24 @@ EventSourceResponseMetadata.model_rebuild()
437
453
  EventSourceResponseResources.model_rebuild()
438
454
  FlavorResponseBody.model_rebuild()
439
455
  FlavorResponseMetadata.model_rebuild()
456
+ FlavorResponseResources.model_rebuild()
440
457
  LazyArtifactVersionResponse.model_rebuild()
441
458
  ModelResponseBody.model_rebuild()
442
459
  ModelResponseMetadata.model_rebuild()
460
+ ModelResponseResources.model_rebuild()
443
461
  ModelVersionResponseBody.model_rebuild()
444
462
  ModelVersionResponseMetadata.model_rebuild()
445
463
  ModelVersionResponseResources.model_rebuild()
446
464
  ModelVersionArtifactResponseBody.model_rebuild()
447
465
  ModelVersionPipelineRunResponseBody.model_rebuild()
448
- OAuthDeviceResponseBody.model_rebuild()
466
+ OAuthDeviceResponseResources.model_rebuild()
449
467
  PipelineResponseBody.model_rebuild()
450
468
  PipelineResponseMetadata.model_rebuild()
451
469
  PipelineResponseResources.model_rebuild()
452
470
  PipelineBuildBase.model_rebuild()
453
471
  PipelineBuildResponseBody.model_rebuild()
454
472
  PipelineBuildResponseMetadata.model_rebuild()
473
+ PipelineBuildResponseResources.model_rebuild()
455
474
  PipelineDeploymentRequest.model_rebuild()
456
475
  PipelineDeploymentResponseBody.model_rebuild()
457
476
  PipelineDeploymentResponseMetadata.model_rebuild()
@@ -466,22 +485,26 @@ RunTemplateResponseResources.model_rebuild()
466
485
  RunTemplateResponseBody.model_rebuild()
467
486
  ScheduleResponseBody.model_rebuild()
468
487
  ScheduleResponseMetadata.model_rebuild()
488
+ ScheduleResponseResources.model_rebuild()
469
489
  SecretResponseBody.model_rebuild()
470
490
  SecretResponseMetadata.model_rebuild()
491
+ SecretResponseResources.model_rebuild()
471
492
  ServiceResponseBody.model_rebuild()
472
493
  ServiceResponseMetadata.model_rebuild()
473
494
  ServiceResponseResources.model_rebuild()
474
495
  ServiceConnectorResponseBody.model_rebuild()
475
496
  ServiceConnectorResponseMetadata.model_rebuild()
497
+ ServiceConnectorResponseResources.model_rebuild()
476
498
  StackRequest.model_rebuild()
477
499
  StackResponseBody.model_rebuild()
478
500
  StackResponseMetadata.model_rebuild()
479
- StackResponse.model_rebuild()
501
+ StackResponseResources.model_rebuild()
480
502
  StepRunRequest.model_rebuild()
481
503
  StepRunResponseBody.model_rebuild()
482
504
  StepRunResponseMetadata.model_rebuild()
483
505
  StepRunResponseResources.model_rebuild()
484
506
  TagResponseBody.model_rebuild()
507
+ TagResponseResources.model_rebuild()
485
508
  TriggerExecutionResponseResources.model_rebuild()
486
509
  TriggerResponseBody.model_rebuild()
487
510
  TriggerResponseMetadata.model_rebuild()
@@ -552,12 +575,14 @@ __all__ = [
552
575
  "ArtifactResponse",
553
576
  "ArtifactResponseBody",
554
577
  "ArtifactResponseMetadata",
578
+ "ArtifactResponseResources",
555
579
  "ArtifactUpdate",
556
580
  "ArtifactVersionRequest",
557
581
  "ArtifactVersionFilter",
558
582
  "ArtifactVersionResponse",
559
583
  "ArtifactVersionResponseBody",
560
584
  "ArtifactVersionResponseMetadata",
585
+ "ArtifactVersionResponseResources",
561
586
  "ArtifactVersionUpdate",
562
587
  "ArtifactVisualizationRequest",
563
588
  "ArtifactVisualizationResponse",
@@ -573,6 +598,7 @@ __all__ = [
573
598
  "CodeRepositoryResponse",
574
599
  "CodeRepositoryResponseBody",
575
600
  "CodeRepositoryResponseMetadata",
601
+ "CodeRepositoryResponseResources",
576
602
  "ComponentBase",
577
603
  "ComponentRequest",
578
604
  "ComponentUpdate",
@@ -593,6 +619,7 @@ __all__ = [
593
619
  "FlavorResponse",
594
620
  "FlavorResponseBody",
595
621
  "FlavorResponseMetadata",
622
+ "FlavorResponseResources",
596
623
  "LogsRequest",
597
624
  "LogsResponse",
598
625
  "LogsResponseBody",
@@ -602,6 +629,7 @@ __all__ = [
602
629
  "ModelResponse",
603
630
  "ModelResponseBody",
604
631
  "ModelResponseMetadata",
632
+ "ModelResponseResources",
605
633
  "ModelUpdate",
606
634
  "ModelVersionFilter",
607
635
  "ModelVersionRequest",
@@ -623,6 +651,7 @@ __all__ = [
623
651
  "OAuthDeviceResponse",
624
652
  "OAuthDeviceResponseBody",
625
653
  "OAuthDeviceResponseMetadata",
654
+ "OAuthDeviceResponseResources",
626
655
  "OAuthDeviceInternalRequest",
627
656
  "OAuthDeviceInternalUpdate",
628
657
  "OAuthDeviceInternalResponse",
@@ -639,12 +668,14 @@ __all__ = [
639
668
  "PipelineBuildResponse",
640
669
  "PipelineBuildResponseBody",
641
670
  "PipelineBuildResponseMetadata",
671
+ "PipelineBuildResponseResources",
642
672
  "PipelineDeploymentBase",
643
673
  "PipelineDeploymentRequest",
644
674
  "PipelineDeploymentFilter",
645
675
  "PipelineDeploymentResponse",
646
676
  "PipelineDeploymentResponseBody",
647
677
  "PipelineDeploymentResponseMetadata",
678
+ "PipelineDeploymentResponseResources",
648
679
  "PipelineRunRequest",
649
680
  "PipelineRunUpdate",
650
681
  "PipelineRunFilter",
@@ -666,11 +697,13 @@ __all__ = [
666
697
  "ScheduleResponse",
667
698
  "ScheduleResponseBody",
668
699
  "ScheduleResponseMetadata",
700
+ "ScheduleResponseResources",
669
701
  "SecretFilter",
670
702
  "SecretRequest",
671
703
  "SecretResponse",
672
704
  "SecretResponseBody",
673
705
  "SecretResponseMetadata",
706
+ "SecretResponseResources",
674
707
  "SecretUpdate",
675
708
  "ServiceResponse",
676
709
  "ServiceResponseBody",
@@ -697,12 +730,14 @@ __all__ = [
697
730
  "ServiceConnectorResponse",
698
731
  "ServiceConnectorResponseBody",
699
732
  "ServiceConnectorResponseMetadata",
733
+ "ServiceConnectorResponseResources",
700
734
  "StackRequest",
701
735
  "StackUpdate",
702
736
  "StackFilter",
703
737
  "StackResponse",
704
738
  "StackResponseBody",
705
739
  "StackResponseMetadata",
740
+ "StackResponseResources",
706
741
  "StepRunRequest",
707
742
  "StepRunUpdate",
708
743
  "StepRunFilter",
@@ -717,6 +752,7 @@ __all__ = [
717
752
  "TagResponse",
718
753
  "TagResponseBody",
719
754
  "TagResponseMetadata",
755
+ "TagResponseResources",
720
756
  "TagRequest",
721
757
  "TagUpdate",
722
758
  "TriggerResponse",
@@ -786,4 +822,5 @@ __all__ = [
786
822
  "RunMetadataEntry",
787
823
  "RunMetadataResource",
788
824
  "ProjectStatistics",
825
+ "PipelineRunDAG",
789
826
  ]
@@ -106,9 +106,7 @@ class ProjectScopedRequest(UserScopedRequest):
106
106
  class UserScopedResponseBody(BaseDatedResponseBody):
107
107
  """Base user-owned body."""
108
108
 
109
- user: Optional["UserResponse"] = Field(
110
- title="The user who created this resource.", default=None
111
- )
109
+ user_id: Optional[UUID] = Field(title="The user id.", default=None)
112
110
 
113
111
 
114
112
  class UserScopedResponseMetadata(BaseResponseMetadata):
@@ -118,6 +116,10 @@ class UserScopedResponseMetadata(BaseResponseMetadata):
118
116
  class UserScopedResponseResources(BaseResponseResources):
119
117
  """Base class for all resource models associated with the user."""
120
118
 
119
+ user: Optional["UserResponse"] = Field(
120
+ title="The user who created this resource.", default=None
121
+ )
122
+
121
123
 
122
124
  UserBody = TypeVar("UserBody", bound=UserScopedResponseBody)
123
125
  UserMetadata = TypeVar("UserMetadata", bound=UserScopedResponseMetadata)
@@ -141,19 +143,28 @@ class UserScopedResponse(
141
143
  The analytics metadata.
142
144
  """
143
145
  metadata = super().get_analytics_metadata()
144
- if self.user is not None:
145
- metadata["user_id"] = self.user.id
146
+ if user_id := self.user_id:
147
+ metadata["user_id"] = user_id
146
148
  return metadata
147
149
 
148
150
  # Body and metadata properties
151
+ @property
152
+ def user_id(self) -> Optional[UUID]:
153
+ """The user ID property.
154
+
155
+ Returns:
156
+ the value of the property.
157
+ """
158
+ return self.get_body().user_id
159
+
149
160
  @property
150
161
  def user(self) -> Optional["UserResponse"]:
151
- """The `user` property.
162
+ """The user property.
152
163
 
153
164
  Returns:
154
165
  the value of the property.
155
166
  """
156
- return self.get_body().user
167
+ return self.get_resources().user
157
168
 
158
169
 
159
170
  class UserScopedFilter(BaseFilter):
@@ -289,12 +300,12 @@ class UserScopedFilter(BaseFilter):
289
300
  class ProjectScopedResponseBody(UserScopedResponseBody):
290
301
  """Base project-scoped body."""
291
302
 
303
+ project_id: UUID = Field(title="The project id.")
304
+
292
305
 
293
306
  class ProjectScopedResponseMetadata(UserScopedResponseMetadata):
294
307
  """Base project-scoped metadata."""
295
308
 
296
- project: "ProjectResponse" = Field(title="The project of this resource.")
297
-
298
309
 
299
310
  class ProjectScopedResponseResources(UserScopedResponseResources):
300
311
  """Base project-scoped resources."""
@@ -318,8 +329,6 @@ class ProjectScopedResponse(
318
329
  Used as a base class for all domain models that are project-scoped.
319
330
  """
320
331
 
321
- project_id: UUID = Field(title="The project id.")
322
-
323
332
  # Analytics
324
333
  def get_analytics_metadata(self) -> Dict[str, Any]:
325
334
  """Fetches the analytics metadata for project scoped models.
@@ -328,11 +337,19 @@ class ProjectScopedResponse(
328
337
  The analytics metadata.
329
338
  """
330
339
  metadata = super().get_analytics_metadata()
331
- if self.project is not None:
332
- metadata["project_id"] = self.project.id
340
+ metadata["project_id"] = self.project_id
333
341
  return metadata
334
342
 
335
- # Body and metadata properties
343
+ @property
344
+ def project_id(self) -> UUID:
345
+ """The project ID property.
346
+
347
+ Returns:
348
+ the value of the property.
349
+ """
350
+ return self.get_body().project_id
351
+
352
+ # Helper
336
353
  @property
337
354
  def project(self) -> "ProjectResponse":
338
355
  """The project property.
@@ -340,7 +357,9 @@ class ProjectScopedResponse(
340
357
  Returns:
341
358
  the value of the property.
342
359
  """
343
- return self.get_metadata().project
360
+ from zenml.client import Client
361
+
362
+ return Client().get_project(self.project_id)
344
363
 
345
364
 
346
365
  # ---------------------- Filter Models ----------------------
@@ -87,12 +87,6 @@ class ArtifactUpdate(BaseUpdate):
87
87
  class ArtifactResponseBody(ProjectScopedResponseBody):
88
88
  """Response body for artifacts."""
89
89
 
90
- tags: List[TagResponse] = Field(
91
- title="Tags associated with the model",
92
- )
93
- latest_version_name: Optional[str] = None
94
- latest_version_id: Optional[UUID] = None
95
-
96
90
 
97
91
  class ArtifactResponseMetadata(ProjectScopedResponseMetadata):
98
92
  """Response metadata for artifacts."""
@@ -106,6 +100,13 @@ class ArtifactResponseMetadata(ProjectScopedResponseMetadata):
106
100
  class ArtifactResponseResources(ProjectScopedResponseResources):
107
101
  """Class for all resource models associated with the Artifact Entity."""
108
102
 
103
+ tags: List[TagResponse] = Field(
104
+ title="Tags associated with the artifact.",
105
+ )
106
+ # TODO: maybe move these back to body or figure out a better solution
107
+ latest_version_name: Optional[str] = None
108
+ latest_version_id: Optional[UUID] = None
109
+
109
110
 
110
111
  class ArtifactResponse(
111
112
  ProjectScopedResponse[
@@ -139,7 +140,7 @@ class ArtifactResponse(
139
140
  Returns:
140
141
  the value of the property.
141
142
  """
142
- return self.get_body().tags
143
+ return self.get_resources().tags
143
144
 
144
145
  @property
145
146
  def latest_version_name(self) -> Optional[str]:
@@ -148,7 +149,7 @@ class ArtifactResponse(
148
149
  Returns:
149
150
  the value of the property.
150
151
  """
151
- return self.get_body().latest_version_name
152
+ return self.get_resources().latest_version_name
152
153
 
153
154
  @property
154
155
  def latest_version_id(self) -> Optional[UUID]:
@@ -157,7 +158,7 @@ class ArtifactResponse(
157
158
  Returns:
158
159
  the value of the property.
159
160
  """
160
- return self.get_body().latest_version_id
161
+ return self.get_resources().latest_version_id
161
162
 
162
163
  @property
163
164
  def has_custom_name(self) -> bool:
@@ -194,13 +194,6 @@ class ArtifactVersionResponseBody(ProjectScopedResponseBody):
194
194
  data_type: SourceWithValidator = Field(
195
195
  title="Data type of the artifact.",
196
196
  )
197
- tags: List[TagResponse] = Field(
198
- title="Tags associated with the model",
199
- )
200
- producer_pipeline_run_id: Optional[UUID] = Field(
201
- title="The ID of the pipeline run that generated this artifact version.",
202
- default=None,
203
- )
204
197
  save_type: ArtifactSaveType = Field(
205
198
  title="The save type of the artifact version.",
206
199
  )
@@ -234,10 +227,6 @@ class ArtifactVersionResponseBody(ProjectScopedResponseBody):
234
227
  class ArtifactVersionResponseMetadata(ProjectScopedResponseMetadata):
235
228
  """Response metadata for artifact versions."""
236
229
 
237
- producer_step_run_id: Optional[UUID] = Field(
238
- title="ID of the step run that produced this artifact.",
239
- default=None,
240
- )
241
230
  visualizations: Optional[List["ArtifactVisualizationResponse"]] = Field(
242
231
  default=None, title="Visualizations of the artifact."
243
232
  )
@@ -249,6 +238,18 @@ class ArtifactVersionResponseMetadata(ProjectScopedResponseMetadata):
249
238
  class ArtifactVersionResponseResources(ProjectScopedResponseResources):
250
239
  """Class for all resource models associated with the artifact version entity."""
251
240
 
241
+ tags: List[TagResponse] = Field(
242
+ title="Tags associated with the artifact version.",
243
+ )
244
+ producer_step_run_id: Optional[UUID] = Field(
245
+ title="ID of the step run that produced this artifact.",
246
+ default=None,
247
+ )
248
+ producer_pipeline_run_id: Optional[UUID] = Field(
249
+ title="The ID of the pipeline run that generated this artifact version.",
250
+ default=None,
251
+ )
252
+
252
253
 
253
254
  class ArtifactVersionResponse(
254
255
  ProjectScopedResponse[
@@ -280,7 +281,7 @@ class ArtifactVersionResponse(
280
281
  return self.get_body().artifact
281
282
 
282
283
  @property
283
- def version(self) -> Union[str, int]:
284
+ def version(self) -> str:
284
285
  """The `version` property.
285
286
 
286
287
  Returns:
@@ -313,7 +314,7 @@ class ArtifactVersionResponse(
313
314
  Returns:
314
315
  the value of the property.
315
316
  """
316
- return self.get_body().tags
317
+ return self.get_resources().tags
317
318
 
318
319
  @property
319
320
  def producer_pipeline_run_id(self) -> Optional[UUID]:
@@ -322,7 +323,7 @@ class ArtifactVersionResponse(
322
323
  Returns:
323
324
  the value of the property.
324
325
  """
325
- return self.get_body().producer_pipeline_run_id
326
+ return self.get_resources().producer_pipeline_run_id
326
327
 
327
328
  @property
328
329
  def save_type(self) -> ArtifactSaveType:
@@ -349,7 +350,7 @@ class ArtifactVersionResponse(
349
350
  Returns:
350
351
  the value of the property.
351
352
  """
352
- return self.get_metadata().producer_step_run_id
353
+ return self.get_resources().producer_step_run_id
353
354
 
354
355
  @property
355
356
  def visualizations(
@@ -710,7 +711,6 @@ class LazyArtifactVersionResponse(ArtifactVersionResponse):
710
711
  """
711
712
 
712
713
  id: Optional[UUID] = None # type: ignore[assignment]
713
- project_id: Optional[UUID] = None # type: ignore[assignment]
714
714
  lazy_load_name: Optional[str] = None
715
715
  lazy_load_version: Optional[str] = None
716
716
  lazy_load_model_name: str
@@ -13,12 +13,12 @@
13
13
  # permissions and limitations under the License.
14
14
  """Models representing logs."""
15
15
 
16
- from typing import Any, Optional, Union
16
+ from typing import Any, Optional
17
17
  from uuid import UUID
18
18
 
19
19
  from pydantic import Field, field_validator
20
20
 
21
- from zenml.constants import STR_FIELD_MAX_LENGTH, TEXT_FIELD_MAX_LENGTH
21
+ from zenml.constants import TEXT_FIELD_MAX_LENGTH
22
22
  from zenml.models.v2.base.base import (
23
23
  BaseDatedResponseBody,
24
24
  BaseIdentifiedResponse,
@@ -60,27 +60,6 @@ class LogsRequest(BaseRequest):
60
60
  )
61
61
  return value
62
62
 
63
- @field_validator("artifact_store_id")
64
- @classmethod
65
- def str_field_max_length_check(cls, value: Any) -> Any:
66
- """Checks if the length of the value exceeds the maximum text length.
67
-
68
- Args:
69
- value: the value set in the field
70
-
71
- Returns:
72
- the value itself.
73
-
74
- Raises:
75
- AssertionError: if the length of the field is longer than the
76
- maximum threshold.
77
- """
78
- assert len(str(value)) < STR_FIELD_MAX_LENGTH, (
79
- "The length of the value for this field can not "
80
- f"exceed {STR_FIELD_MAX_LENGTH}"
81
- )
82
- return value
83
-
84
63
 
85
64
  # ------------------ Update Model ------------------
86
65
 
@@ -101,41 +80,20 @@ class LogsResponseBody(BaseDatedResponseBody):
101
80
  class LogsResponseMetadata(BaseResponseMetadata):
102
81
  """Response metadata for logs."""
103
82
 
104
- step_run_id: Optional[Union[str, UUID]] = Field(
83
+ step_run_id: Optional[UUID] = Field(
105
84
  title="Step ID to associate the logs with.",
106
85
  default=None,
107
86
  description="When this is set, pipeline_run_id should be set to None.",
108
- union_mode="left_to_right",
109
87
  )
110
- pipeline_run_id: Optional[Union[str, UUID]] = Field(
88
+ pipeline_run_id: Optional[UUID] = Field(
111
89
  title="Pipeline run ID to associate the logs with.",
112
90
  default=None,
113
91
  description="When this is set, step_run_id should be set to None.",
114
- union_mode="left_to_right",
115
92
  )
116
- artifact_store_id: Union[str, UUID] = Field(
93
+ artifact_store_id: UUID = Field(
117
94
  title="The artifact store ID to associate the logs with.",
118
- union_mode="left_to_right",
119
95
  )
120
96
 
121
- @field_validator("artifact_store_id")
122
- @classmethod
123
- def str_field_max_length_check(cls, value: Any) -> Any:
124
- """Checks if the length of the value exceeds the maximum text length.
125
-
126
- Args:
127
- value: the value set in the field
128
-
129
- Returns:
130
- the value itself.
131
-
132
- Raises:
133
- AssertionError: if the length of the field is longer than the
134
- maximum threshold.
135
- """
136
- assert len(str(value)) < STR_FIELD_MAX_LENGTH
137
- return value
138
-
139
97
 
140
98
  class LogsResponseResources(BaseResponseResources):
141
99
  """Class for all resource models associated with the Logs entity."""
@@ -169,7 +127,7 @@ class LogsResponse(
169
127
  return self.get_body().uri
170
128
 
171
129
  @property
172
- def step_run_id(self) -> Optional[Union[str, UUID]]:
130
+ def step_run_id(self) -> Optional[UUID]:
173
131
  """The `step_run_id` property.
174
132
 
175
133
  Returns:
@@ -178,7 +136,7 @@ class LogsResponse(
178
136
  return self.get_metadata().step_run_id
179
137
 
180
138
  @property
181
- def pipeline_run_id(self) -> Optional[Union[str, UUID]]:
139
+ def pipeline_run_id(self) -> Optional[UUID]:
182
140
  """The `pipeline_run_id` property.
183
141
 
184
142
  Returns:
@@ -187,7 +145,7 @@ class LogsResponse(
187
145
  return self.get_metadata().pipeline_run_id
188
146
 
189
147
  @property
190
- def artifact_store_id(self) -> Union[str, UUID]:
148
+ def artifact_store_id(self) -> UUID:
191
149
  """The `artifact_store_id` property.
192
150
 
193
151
  Returns: