zenml-nightly 0.82.1.dev20250527__py3-none-any.whl → 0.83.0.dev20250529__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.
- zenml/VERSION +1 -1
- zenml/cli/base.py +6 -1
- zenml/cli/model.py +16 -36
- zenml/cli/server.py +8 -3
- zenml/client.py +20 -4
- zenml/client_lazy_loader.py +2 -0
- zenml/config/docker_settings.py +15 -2
- zenml/enums.py +3 -0
- zenml/event_hub/event_hub.py +1 -1
- zenml/integrations/bitbucket/plugins/event_sources/bitbucket_webhook_event_source.py +1 -1
- zenml/integrations/github/plugins/event_sources/github_webhook_event_source.py +1 -1
- zenml/integrations/kubernetes/flavors/kubernetes_orchestrator_flavor.py +3 -0
- zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator_entrypoint.py +37 -26
- zenml/integrations/skypilot/flavors/skypilot_orchestrator_base_vm_config.py +45 -4
- zenml/integrations/skypilot/orchestrators/skypilot_base_vm_orchestrator.py +92 -84
- zenml/integrations/skypilot/orchestrators/skypilot_orchestrator_entrypoint.py +207 -179
- zenml/integrations/skypilot/utils.py +273 -0
- zenml/integrations/skypilot_aws/__init__.py +1 -2
- zenml/integrations/skypilot_azure/__init__.py +1 -2
- zenml/integrations/skypilot_gcp/__init__.py +9 -1
- zenml/integrations/skypilot_kubernetes/__init__.py +2 -3
- zenml/integrations/skypilot_lambda/__init__.py +1 -2
- zenml/login/web_login.py +1 -1
- zenml/model/model.py +13 -23
- zenml/models/__init__.py +39 -2
- zenml/models/v2/base/scoped.py +34 -15
- zenml/models/v2/core/artifact.py +10 -9
- zenml/models/v2/core/artifact_version.py +16 -16
- zenml/models/v2/core/logs.py +8 -50
- zenml/models/v2/core/model.py +10 -10
- zenml/models/v2/core/model_version.py +155 -88
- zenml/models/v2/core/pipeline.py +10 -11
- zenml/models/v2/core/pipeline_deployment.py +1 -9
- zenml/models/v2/core/pipeline_run.py +10 -17
- zenml/models/v2/core/run_template.py +10 -10
- zenml/models/v2/core/step_run.py +100 -16
- zenml/models/v2/core/tag.py +5 -4
- zenml/models/v2/misc/pipeline_run_dag.py +46 -0
- zenml/orchestrators/base_orchestrator.py +8 -19
- zenml/orchestrators/cache_utils.py +48 -1
- zenml/orchestrators/input_utils.py +35 -39
- zenml/orchestrators/step_launcher.py +1 -1
- zenml/orchestrators/step_run_utils.py +26 -10
- zenml/pipelines/pipeline_definition.py +3 -3
- zenml/pipelines/run_utils.py +2 -3
- zenml/service_connectors/service_connector.py +5 -1
- zenml/stack/stack_component.py +1 -4
- zenml/steps/step_context.py +1 -1
- zenml/utils/dashboard_utils.py +3 -3
- zenml/zen_server/auth.py +6 -3
- zenml/zen_server/dashboard/assets/{404-_AtuLtaX.js → 404-DmJUgorp.js} +1 -1
- zenml/zen_server/dashboard/assets/{@radix-C7hRs6Kx.js → @radix-Cdvw4jJ8.js} +1 -1
- zenml/zen_server/dashboard/assets/{@react-router-CNP6g_RL.js → @react-router-DeDfXbUF.js} +5 -5
- zenml/zen_server/dashboard/assets/{@reactflow-CQi1Z1Wq.js → @reactflow-8OCk19Fi.js} +1 -1
- zenml/zen_server/dashboard/assets/{@tanstack-CSxjHCME.js → @tanstack-5gTMR7G2.js} +4 -4
- zenml/zen_server/dashboard/assets/AlertDialogDropdownItem-CZW4QyWn.js +1 -0
- zenml/zen_server/dashboard/assets/ButtonGroup-DFWWFGUE.js +1 -0
- zenml/zen_server/dashboard/assets/{CodeSnippet-CvI6D0wx.js → CodeSnippet-D2HkkAGr.js} +1 -1
- zenml/zen_server/dashboard/assets/CollapsibleCard-CnS09ljw.js +1 -0
- zenml/zen_server/dashboard/assets/{ComponentBadge-DKw7Gndh.js → ComponentBadge-CDgdd0Ks.js} +1 -1
- zenml/zen_server/dashboard/assets/ComponentIcon-CbbOc7lb.js +1 -0
- zenml/zen_server/dashboard/assets/{DeleteAlertDialog-DVvXt-S6.js → DeleteAlertDialog-VIOMDLmx.js} +1 -1
- zenml/zen_server/dashboard/assets/DialogItem-ClFCqxEp.js +1 -0
- zenml/zen_server/dashboard/assets/{DisplayDate-CYVBBSgr.js → DisplayDate-8RESqe5H.js} +1 -1
- zenml/zen_server/dashboard/assets/{EmptyState-M1jafpg6.js → EmptyState-CjrgDtVk.js} +1 -1
- zenml/zen_server/dashboard/assets/{Error-BWaXP0VK.js → Error-CQzjbDcN.js} +1 -1
- zenml/zen_server/dashboard/assets/ExecutionStatus-CWreILP0.js +1 -0
- zenml/zen_server/dashboard/assets/{Helpbox-iE1xLmiZ.js → Helpbox-CiKxG5_X.js} +1 -1
- zenml/zen_server/dashboard/assets/Infobox-CGxFvqzi.js +1 -0
- zenml/zen_server/dashboard/assets/LeftSideMenu-DCsKdIjC.js +1 -0
- zenml/zen_server/dashboard/assets/{Lock-DW-0_M0o.js → Lock-CrIAdQo6.js} +1 -1
- zenml/zen_server/dashboard/assets/NestedCollapsible-3M4llYtH.js +1 -0
- zenml/zen_server/dashboard/assets/NumberBox-C0mQktmV.js +1 -0
- zenml/zen_server/dashboard/assets/Partials-DSjkttlz.js +1 -0
- zenml/zen_server/dashboard/assets/{PasswordChecker-lYTOtNom.js → PasswordChecker-B88WjuCe.js} +1 -1
- zenml/zen_server/dashboard/assets/ProCta-Dm5cWKpS.js +1 -0
- zenml/zen_server/dashboard/assets/{ProviderIcon-DLo7t1lo.js → ProviderIcon-DPwMR6nF.js} +1 -1
- zenml/zen_server/dashboard/assets/ProviderRadio-DEDNRgAb.js +1 -0
- zenml/zen_server/dashboard/assets/RunsBody-BRBn1e2O.js +1 -0
- zenml/zen_server/dashboard/assets/SearchField-DY6-UbRT.js +1 -0
- zenml/zen_server/dashboard/assets/SecretTooltip-CZTRnaCV.js +1 -0
- zenml/zen_server/dashboard/assets/{SetPassword-DR-EiLI5.js → SetPassword-BjNGDC5e.js} +1 -1
- zenml/zen_server/dashboard/assets/SheetHeader-CASpN2Lz.js +1 -0
- zenml/zen_server/dashboard/assets/StackComponentList-Be1pQt9m.js +1 -0
- zenml/zen_server/dashboard/assets/StackList-BdiR5DvR.js +1 -0
- zenml/zen_server/dashboard/assets/StackName-ojLC6xdl.js +1 -0
- zenml/zen_server/dashboard/assets/Tabs-DNSKblCM.js +1 -0
- zenml/zen_server/dashboard/assets/Tick-BPrWnNlN.js +1 -0
- zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-DbFEaezI.js → UpdatePasswordSchemas-CNfKDo2Q.js} +1 -1
- zenml/zen_server/dashboard/assets/UsageReason-Cb-mpV8M.js +1 -0
- zenml/zen_server/dashboard/assets/{Wizard-CMI6Ksgz.js → Wizard-Dg8Pmn5A.js} +1 -1
- zenml/zen_server/dashboard/assets/WizardFooter-BcNDIvlQ.js +1 -0
- zenml/zen_server/dashboard/assets/{all-pipeline-runs-query-BGASHYtF.js → all-pipeline-runs-query-DCdax7I5.js} +1 -1
- zenml/zen_server/dashboard/assets/{arrow-left-CwgF2MEM.js → arrow-left-MRXv5pAH.js} +1 -1
- zenml/zen_server/dashboard/assets/bulk-delete-C_kpIB9A.js +3 -0
- zenml/zen_server/dashboard/assets/{check-DK77doTf.js → check-B9QMTa3f.js} +1 -1
- zenml/zen_server/dashboard/assets/{check-circle-mvyzYvIW.js → check-circle-C4tYvbtw.js} +1 -1
- zenml/zen_server/dashboard/assets/{chevron-down-A-rmltmI.js → chevron-down-jbbQh82s.js} +1 -1
- zenml/zen_server/dashboard/assets/{chevron-right-double-uNWbJT-C.js → chevron-right-double-Dgp_gEsp.js} +1 -1
- zenml/zen_server/dashboard/assets/{clock-CPA5cYxq.js → clock-B_mTG8PH.js} +1 -1
- zenml/zen_server/dashboard/assets/{code-browser-j2EpcxIA.js → code-browser-CiD8qkBx.js} +1 -1
- zenml/zen_server/dashboard/assets/configuration-form-B2hmKGnF.js +1 -0
- zenml/zen_server/dashboard/assets/connectivity-4UKGMYnr.webp +0 -0
- zenml/zen_server/dashboard/assets/constants-1EZZxtay.js +1 -0
- zenml/zen_server/dashboard/assets/create-stack-TKmMtrkQ.js +1 -0
- zenml/zen_server/dashboard/assets/dates-Buh6SMo7.js +1 -0
- zenml/zen_server/dashboard/assets/delete-run-CCR9md_s.js +1 -0
- zenml/zen_server/dashboard/assets/eye-CbVlAYty.js +1 -0
- zenml/zen_server/dashboard/assets/{file-text-BdxZdjP_.js → file-text-Cd8wVfq5.js} +1 -1
- zenml/zen_server/dashboard/assets/form-DFJkaFDX.js +1 -0
- zenml/zen_server/dashboard/assets/form-schemas-CrznJVzA.js +1 -0
- zenml/zen_server/dashboard/assets/{gcp-CHNvgEss.js → gcp-B1I3Qvcx.js} +1 -1
- zenml/zen_server/dashboard/assets/{help-DyMolRxD.js → help-Co6aedki.js} +1 -1
- zenml/zen_server/dashboard/assets/index-BFqbGSck.js +308 -0
- zenml/zen_server/dashboard/assets/{index-CrhdX_qG.js → index-BjUu1mP4.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-DR30v9MZ.js → index-DWpiv-Ft.js} +1 -1
- zenml/zen_server/dashboard/assets/index-DuhuqTCI.css +1 -0
- zenml/zen_server/dashboard/assets/index-U992soPJ.js +1 -0
- zenml/zen_server/dashboard/assets/index.es-C1gfATPn.js +14 -0
- zenml/zen_server/dashboard/assets/{index.esm-D7jFlf5N.js → index.esm-DhJo3mA6.js} +1 -1
- zenml/zen_server/dashboard/assets/info-QkbQz4QU.js +1 -0
- zenml/zen_server/dashboard/assets/{key-icon-DO4DPJHZ.js → key-icon-C07HKw8z.js} +1 -1
- zenml/zen_server/dashboard/assets/{layout-h3cbx8WZ.js → layout-DBbfEFBe.js} +1 -1
- zenml/zen_server/dashboard/assets/layout-Do9YI4QX.js +1 -0
- zenml/zen_server/dashboard/assets/login-mutation-D3tFP6Wm.js +1 -0
- zenml/zen_server/dashboard/assets/{logs-B5n0U7tB.js → logs-CQKlJjo0.js} +1 -1
- zenml/zen_server/dashboard/assets/{package-D1Mhqeh8.js → package-miExReQl.js} +1 -1
- zenml/zen_server/dashboard/assets/page-9RjCitFH.js +1 -0
- zenml/zen_server/dashboard/assets/page-B0PsXWiT.js +1 -0
- zenml/zen_server/dashboard/assets/page-BCrKmYIZ.js +1 -0
- zenml/zen_server/dashboard/assets/page-BcRI3-aR.js +29 -0
- zenml/zen_server/dashboard/assets/page-Be3R2uYn.js +1 -0
- zenml/zen_server/dashboard/assets/page-BgknnddT.js +1 -0
- zenml/zen_server/dashboard/assets/page-BrT0_zSJ.js +40 -0
- zenml/zen_server/dashboard/assets/page-Bs3W2FDi.js +1 -0
- zenml/zen_server/dashboard/assets/page-C210HcBA.js +1 -0
- zenml/zen_server/dashboard/assets/page-C6KaiZ_W.js +1 -0
- zenml/zen_server/dashboard/assets/page-CAJ8B0vb.js +1 -0
- zenml/zen_server/dashboard/assets/page-CAUYrfui.js +1 -0
- zenml/zen_server/dashboard/assets/page-CHxVhF3x.js +1 -0
- zenml/zen_server/dashboard/assets/{page-CSwZxZMQ.js → page-CN7lkvXr.js} +1 -1
- zenml/zen_server/dashboard/assets/page-CUaMMoPG.js +1 -0
- zenml/zen_server/dashboard/assets/page-Cal6XQ4U.js +1 -0
- zenml/zen_server/dashboard/assets/page-CdZCmszX.js +1 -0
- zenml/zen_server/dashboard/assets/page-ChGcZI_6.js +1 -0
- zenml/zen_server/dashboard/assets/page-CktmtZ8Z.js +1 -0
- zenml/zen_server/dashboard/assets/page-ClvmVesa.js +1 -0
- zenml/zen_server/dashboard/assets/page-CnbIYE80.js +1 -0
- zenml/zen_server/dashboard/assets/page-CoXzjeEY.js +1 -0
- zenml/zen_server/dashboard/assets/page-CtiuMP_r.js +1 -0
- zenml/zen_server/dashboard/assets/page-D9Hfx6GV.js +1 -0
- zenml/zen_server/dashboard/assets/page-D9iuB88h.js +1 -0
- zenml/zen_server/dashboard/assets/page-DCcuPZ8P.js +1 -0
- zenml/zen_server/dashboard/assets/page-DEohTSz6.js +1 -0
- zenml/zen_server/dashboard/assets/page-DJIGaUQ9.js +1 -0
- zenml/zen_server/dashboard/assets/page-DKK6ulgy.js +1 -0
- zenml/zen_server/dashboard/assets/page-DNjKHjnH.js +1 -0
- zenml/zen_server/dashboard/assets/page-DUK0Nd_1.js +1 -0
- zenml/zen_server/dashboard/assets/page-DUKbOhaD.js +1 -0
- zenml/zen_server/dashboard/assets/page-DYOucPtA.js +1 -0
- zenml/zen_server/dashboard/assets/page-DpqRelAy.js +1 -0
- zenml/zen_server/dashboard/assets/{page-ZfTtFicG.js → page-DwVPpCFg.js} +2 -2
- zenml/zen_server/dashboard/assets/page-XURWnYZP.js +1 -0
- zenml/zen_server/dashboard/assets/page-abw-2oeW.js +1 -0
- zenml/zen_server/dashboard/assets/page-akLcPcKw.js +1 -0
- zenml/zen_server/dashboard/assets/page-n9ejQ2V3.js +2 -0
- zenml/zen_server/dashboard/assets/page-sJjNT9xA.js +6 -0
- zenml/zen_server/dashboard/assets/{persist-UUym702q.js → persist-DWMWVP-y.js} +1 -1
- zenml/zen_server/dashboard/assets/{persist-D87V82eO.js → persist-Dec_w7aB.js} +1 -1
- zenml/zen_server/dashboard/assets/pipeline-CSUlkd50.js +1 -0
- zenml/zen_server/dashboard/assets/{plus-COjQg3AG.js → plus-Cl0_rCVF.js} +1 -1
- zenml/zen_server/dashboard/assets/{react-error-boundary.esm-fyoUBS25.js → react-error-boundary.esm-7_MuhCay.js} +1 -1
- zenml/zen_server/dashboard/assets/{refresh-CM5T3QeU.js → refresh-BcTM09NW.js} +1 -1
- zenml/zen_server/dashboard/assets/resource-tyes-list-o2LXiMay.js +1 -0
- zenml/zen_server/dashboard/assets/resource-type-tooltip-DwHrJstL.js +1 -0
- zenml/zen_server/dashboard/assets/service-connectors-DSEMwJ5A.js +1 -0
- zenml/zen_server/dashboard/assets/{service-BQ9KIhls.js → service-jxtvgks0.js} +2 -2
- zenml/zen_server/dashboard/assets/sharedSchema-BXzg0EZz.js +1 -0
- zenml/zen_server/dashboard/assets/stack-detail-query-Cm0fsgo-.js +1 -0
- zenml/zen_server/dashboard/assets/{terminal-square-DMtel8mb.js → terminal-XFL_4QN-.js} +1 -1
- zenml/zen_server/dashboard/assets/terminal-square-XFL_4QN-.js +1 -0
- zenml/zen_server/dashboard/assets/transform-CeZdrxDZ.js +1 -0
- zenml/zen_server/dashboard/assets/{trash-BWSZ7NRK.js → trash-DP6Tpp_E.js} +1 -1
- zenml/zen_server/dashboard/assets/type-guards-CNgPYg8l.js +1 -0
- zenml/zen_server/dashboard/assets/update-current-user-mutation-D5MjcQ6F.js +1 -0
- zenml/zen_server/dashboard/assets/update-server-settings-mutation-CmnxdxiK.js +1 -0
- zenml/zen_server/dashboard/assets/{zod-C0xYeTvL.js → zod-XdS2h1ws.js} +1 -1
- zenml/zen_server/dashboard/index.html +7 -7
- zenml/zen_server/rbac/utils.py +2 -2
- zenml/zen_server/routers/auth_endpoints.py +2 -2
- zenml/zen_server/routers/devices_endpoints.py +8 -5
- zenml/zen_server/routers/pipeline_deployments_endpoints.py +1 -1
- zenml/zen_server/routers/pipelines_endpoints.py +1 -1
- zenml/zen_server/routers/run_templates_endpoints.py +3 -3
- zenml/zen_server/routers/runs_endpoints.py +35 -0
- zenml/zen_server/template_execution/utils.py +6 -6
- zenml/zen_stores/dag_generator.py +171 -0
- zenml/zen_stores/migrations/versions/0.83.0_release.py +23 -0
- zenml/zen_stores/rest_zen_store.py +17 -3
- zenml/zen_stores/schemas/action_schemas.py +40 -4
- zenml/zen_stores/schemas/api_key_schemas.py +29 -1
- zenml/zen_stores/schemas/artifact_schemas.py +168 -48
- zenml/zen_stores/schemas/base_schemas.py +26 -1
- zenml/zen_stores/schemas/code_repository_schemas.py +46 -5
- zenml/zen_stores/schemas/component_schemas.py +44 -3
- zenml/zen_stores/schemas/device_schemas.py +43 -2
- zenml/zen_stores/schemas/event_source_schemas.py +41 -5
- zenml/zen_stores/schemas/flavor_schemas.py +42 -2
- zenml/zen_stores/schemas/model_schemas.py +113 -77
- zenml/zen_stores/schemas/pipeline_build_schemas.py +53 -4
- zenml/zen_stores/schemas/pipeline_deployment_schemas.py +53 -4
- zenml/zen_stores/schemas/pipeline_run_schemas.py +111 -47
- zenml/zen_stores/schemas/pipeline_schemas.py +41 -9
- zenml/zen_stores/schemas/run_template_schemas.py +75 -11
- zenml/zen_stores/schemas/schedule_schema.py +50 -5
- zenml/zen_stores/schemas/secret_schemas.py +39 -2
- zenml/zen_stores/schemas/service_connector_schemas.py +39 -2
- zenml/zen_stores/schemas/service_schemas.py +39 -4
- zenml/zen_stores/schemas/stack_schemas.py +47 -2
- zenml/zen_stores/schemas/step_run_schemas.py +89 -26
- zenml/zen_stores/schemas/tag_schemas.py +69 -5
- zenml/zen_stores/schemas/trigger_schemas.py +44 -5
- zenml/zen_stores/schemas/utils.py +25 -4
- zenml/zen_stores/sql_zen_store.py +471 -28
- zenml/zen_stores/zen_store_interface.py +9 -1
- {zenml_nightly-0.82.1.dev20250527.dist-info → zenml_nightly-0.83.0.dev20250529.dist-info}/METADATA +2 -2
- {zenml_nightly-0.82.1.dev20250527.dist-info → zenml_nightly-0.83.0.dev20250529.dist-info}/RECORD +230 -222
- zenml/zen_server/dashboard/assets/AlertDialogDropdownItem-BG7-Ki1L.js +0 -1
- zenml/zen_server/dashboard/assets/CollapsibleCard-D20FtrzC.js +0 -1
- zenml/zen_server/dashboard/assets/Commands-DGbAvMDk.js +0 -1
- zenml/zen_server/dashboard/assets/ComponentIcon-ils7uNAk.js +0 -1
- zenml/zen_server/dashboard/assets/CsvVizualization-DVN541XF.js +0 -15
- zenml/zen_server/dashboard/assets/DialogItem-BHWf3sIB.js +0 -1
- zenml/zen_server/dashboard/assets/ExecutionStatus-XrvT2r65.js +0 -1
- zenml/zen_server/dashboard/assets/Infobox-D9k5TFH4.js +0 -1
- zenml/zen_server/dashboard/assets/InlineAvatar-Cfz4WSLK.js +0 -1
- zenml/zen_server/dashboard/assets/MarkdownVisualization-URCyUPcZ.js +0 -14
- zenml/zen_server/dashboard/assets/NestedCollapsible-Dor-bi98.js +0 -1
- zenml/zen_server/dashboard/assets/NumberBox-D2A7ENHb.js +0 -1
- zenml/zen_server/dashboard/assets/Partials-DQJFw1yW.js +0 -1
- zenml/zen_server/dashboard/assets/ProBadge-Cp4hb1YT.js +0 -1
- zenml/zen_server/dashboard/assets/ProCta-EYoV9CvK.js +0 -1
- zenml/zen_server/dashboard/assets/ProviderRadio-BVDA-fAr.js +0 -1
- zenml/zen_server/dashboard/assets/RunSelector-BLuBYNJt.js +0 -1
- zenml/zen_server/dashboard/assets/RunsBody-W4WHf-sq.js +0 -1
- zenml/zen_server/dashboard/assets/SearchField-D-h6jXyg.js +0 -1
- zenml/zen_server/dashboard/assets/SecretTooltip-CePCL8kd.js +0 -1
- zenml/zen_server/dashboard/assets/StackList-CgmN5H-i.js +0 -1
- zenml/zen_server/dashboard/assets/Tabs-DxQ8PDOD.js +0 -1
- zenml/zen_server/dashboard/assets/Tick-CEsT3HPR.js +0 -1
- zenml/zen_server/dashboard/assets/UsageReason-DjI5qMje.js +0 -1
- zenml/zen_server/dashboard/assets/WizardFooter-CFBHFZas.js +0 -1
- zenml/zen_server/dashboard/assets/cloud-squares-DeRLMopf.svg +0 -43
- zenml/zen_server/dashboard/assets/configuration-form-BtI2Y4eX.js +0 -1
- zenml/zen_server/dashboard/assets/connectors-video-C9qY4syJ.svg +0 -21
- zenml/zen_server/dashboard/assets/constants-DP3ZEnXH.js +0 -1
- zenml/zen_server/dashboard/assets/create-stack-BJ6x5rzj.js +0 -1
- zenml/zen_server/dashboard/assets/dates-3pMLCNrD.js +0 -1
- zenml/zen_server/dashboard/assets/delete-run-DlSLEl5T.js +0 -1
- zenml/zen_server/dashboard/assets/docker-BuDBFEDL.js +0 -1
- zenml/zen_server/dashboard/assets/dots-horizontal-BGRJCPCs.js +0 -1
- zenml/zen_server/dashboard/assets/flavor-select-BnPxvQDN.js +0 -1
- zenml/zen_server/dashboard/assets/form-schemas-CbvoEUHr.js +0 -1
- zenml/zen_server/dashboard/assets/index-CFESYpe4.js +0 -1
- zenml/zen_server/dashboard/assets/index-CmLcvK2z.js +0 -1
- zenml/zen_server/dashboard/assets/index-CzX3ZYlI.css +0 -1
- zenml/zen_server/dashboard/assets/index-D2iSHVZq.js +0 -64
- zenml/zen_server/dashboard/assets/kubernetes-D6OUjwSK.js +0 -1
- zenml/zen_server/dashboard/assets/link-external-DUhCSKNm.js +0 -1
- zenml/zen_server/dashboard/assets/login-command-CkqxPtV3.js +0 -1
- zenml/zen_server/dashboard/assets/login-mutation-CXc-Klim.js +0 -1
- zenml/zen_server/dashboard/assets/not-found-olRU3fnu.js +0 -1
- zenml/zen_server/dashboard/assets/page-7keIM1V3.js +0 -1
- zenml/zen_server/dashboard/assets/page-B31neFwG.js +0 -1
- zenml/zen_server/dashboard/assets/page-B3zo4KYS.js +0 -1
- zenml/zen_server/dashboard/assets/page-BN3MHq1a.js +0 -1
- zenml/zen_server/dashboard/assets/page-BNgVExjN.js +0 -1
- zenml/zen_server/dashboard/assets/page-BPtvu74G.js +0 -1
- zenml/zen_server/dashboard/assets/page-BTIuG0ki.js +0 -2
- zenml/zen_server/dashboard/assets/page-BcQzleH6.js +0 -1
- zenml/zen_server/dashboard/assets/page-C05Jw4M2.js +0 -1
- zenml/zen_server/dashboard/assets/page-C28a7K8h.js +0 -1
- zenml/zen_server/dashboard/assets/page-C9WLk0X-.js +0 -1
- zenml/zen_server/dashboard/assets/page-CINMx64X.js +0 -1
- zenml/zen_server/dashboard/assets/page-CYrJbk7P.js +0 -1
- zenml/zen_server/dashboard/assets/page-Ce0cqLo3.js +0 -1
- zenml/zen_server/dashboard/assets/page-CgNsEkw-.js +0 -1
- zenml/zen_server/dashboard/assets/page-Ct2FUYuR.js +0 -1
- zenml/zen_server/dashboard/assets/page-D8G2B3Bu.js +0 -1
- zenml/zen_server/dashboard/assets/page-DL8a4_lg.js +0 -3
- zenml/zen_server/dashboard/assets/page-DMhYn1cF.js +0 -1
- zenml/zen_server/dashboard/assets/page-Dd_Yq-Uf.js +0 -6
- zenml/zen_server/dashboard/assets/page-DfSvqT8g.js +0 -1
- zenml/zen_server/dashboard/assets/page-Dt6ANUTx.js +0 -1
- zenml/zen_server/dashboard/assets/page-DtvTleaT.js +0 -1
- zenml/zen_server/dashboard/assets/page-DwfGTiVs.js +0 -1
- zenml/zen_server/dashboard/assets/page-JgomSTDc.js +0 -1
- zenml/zen_server/dashboard/assets/page-L84ig6HB.js +0 -1
- zenml/zen_server/dashboard/assets/page-Mabsn4QJ.js +0 -1
- zenml/zen_server/dashboard/assets/page-P04L5cm9.js +0 -1
- zenml/zen_server/dashboard/assets/page-PfhAnvq4.js +0 -1
- zenml/zen_server/dashboard/assets/page-WdRrlNt_.js +0 -1
- zenml/zen_server/dashboard/assets/page-cqJDDDeK.js +0 -1
- zenml/zen_server/dashboard/assets/page-k-Wxh9L_.js +0 -1
- zenml/zen_server/dashboard/assets/page-y-zV4n0c.js +0 -1
- zenml/zen_server/dashboard/assets/rocket-Cf-B-XOR.js +0 -1
- zenml/zen_server/dashboard/assets/settings_preview-0JLrRgHP.webp +0 -0
- zenml/zen_server/dashboard/assets/sharedSchema-Bse2agAf.js +0 -14
- zenml/zen_server/dashboard/assets/stack-detail-query-BAcZJrN3.js +0 -1
- zenml/zen_server/dashboard/assets/tick-circle-m94Aa6Zt.js +0 -1
- zenml/zen_server/dashboard/assets/tour-cover-BYfeen6M.webp +0 -0
- zenml/zen_server/dashboard/assets/type-guards-CaeD8wHO.js +0 -1
- zenml/zen_server/dashboard/assets/update-server-settings-mutation-DwMM1LJz.js +0 -1
- {zenml_nightly-0.82.1.dev20250527.dist-info → zenml_nightly-0.83.0.dev20250529.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.82.1.dev20250527.dist-info → zenml_nightly-0.83.0.dev20250529.dist-info}/WHEEL +0 -0
- {zenml_nightly-0.82.1.dev20250527.dist-info → zenml_nightly-0.83.0.dev20250529.dist-info}/entry_points.txt +0 -0
@@ -29,6 +29,7 @@ from pydantic import ConfigDict, Field, field_validator
|
|
29
29
|
|
30
30
|
from zenml.constants import STR_FIELD_MAX_LENGTH, TEXT_FIELD_MAX_LENGTH
|
31
31
|
from zenml.enums import ArtifactType, ModelStages
|
32
|
+
from zenml.logger import get_logger
|
32
33
|
from zenml.metadata.metadata_types import MetadataType
|
33
34
|
from zenml.models.v2.base.base import BaseUpdate
|
34
35
|
from zenml.models.v2.base.page import Page
|
@@ -44,6 +45,7 @@ from zenml.models.v2.base.scoped import (
|
|
44
45
|
)
|
45
46
|
from zenml.models.v2.core.service import ServiceResponse
|
46
47
|
from zenml.models.v2.core.tag import TagResponse
|
48
|
+
from zenml.utils import pagination_utils
|
47
49
|
|
48
50
|
if TYPE_CHECKING:
|
49
51
|
from sqlalchemy.sql.elements import ColumnElement
|
@@ -59,6 +61,8 @@ if TYPE_CHECKING:
|
|
59
61
|
AnySchema = TypeVar("AnySchema", bound=BaseSchema)
|
60
62
|
|
61
63
|
|
64
|
+
logger = get_logger(__name__)
|
65
|
+
|
62
66
|
# ------------------ Request Model ------------------
|
63
67
|
|
64
68
|
|
@@ -151,25 +155,6 @@ class ModelVersionResponseBody(ProjectScopedResponseBody):
|
|
151
155
|
model: "ModelResponse" = Field(
|
152
156
|
description="The model containing version",
|
153
157
|
)
|
154
|
-
model_artifact_ids: Dict[str, Dict[str, UUID]] = Field(
|
155
|
-
description="Model artifacts linked to the model version",
|
156
|
-
default={},
|
157
|
-
)
|
158
|
-
data_artifact_ids: Dict[str, Dict[str, UUID]] = Field(
|
159
|
-
description="Data artifacts linked to the model version",
|
160
|
-
default={},
|
161
|
-
)
|
162
|
-
deployment_artifact_ids: Dict[str, Dict[str, UUID]] = Field(
|
163
|
-
description="Deployment artifacts linked to the model version",
|
164
|
-
default={},
|
165
|
-
)
|
166
|
-
pipeline_run_ids: Dict[str, UUID] = Field(
|
167
|
-
description="Pipeline runs linked to the model version",
|
168
|
-
default={},
|
169
|
-
)
|
170
|
-
tags: List[TagResponse] = Field(
|
171
|
-
title="Tags associated with the model version", default=[]
|
172
|
-
)
|
173
158
|
|
174
159
|
# TODO: In Pydantic v2, the `model_` is a protected namespaces for all
|
175
160
|
# fields defined under base models. If not handled, this raises a warning.
|
@@ -200,6 +185,9 @@ class ModelVersionResponseResources(ProjectScopedResponseResources):
|
|
200
185
|
services: Page[ServiceResponse] = Field(
|
201
186
|
description="Services linked to the model version",
|
202
187
|
)
|
188
|
+
tags: List[TagResponse] = Field(
|
189
|
+
title="Tags associated with the model version", default=[]
|
190
|
+
)
|
203
191
|
|
204
192
|
|
205
193
|
class ModelVersionResponse(
|
@@ -244,42 +232,6 @@ class ModelVersionResponse(
|
|
244
232
|
"""
|
245
233
|
return self.get_body().model
|
246
234
|
|
247
|
-
@property
|
248
|
-
def model_artifact_ids(self) -> Dict[str, Dict[str, UUID]]:
|
249
|
-
"""The `model_artifact_ids` property.
|
250
|
-
|
251
|
-
Returns:
|
252
|
-
the value of the property.
|
253
|
-
"""
|
254
|
-
return self.get_body().model_artifact_ids
|
255
|
-
|
256
|
-
@property
|
257
|
-
def data_artifact_ids(self) -> Dict[str, Dict[str, UUID]]:
|
258
|
-
"""The `data_artifact_ids` property.
|
259
|
-
|
260
|
-
Returns:
|
261
|
-
the value of the property.
|
262
|
-
"""
|
263
|
-
return self.get_body().data_artifact_ids
|
264
|
-
|
265
|
-
@property
|
266
|
-
def deployment_artifact_ids(self) -> Dict[str, Dict[str, UUID]]:
|
267
|
-
"""The `deployment_artifact_ids` property.
|
268
|
-
|
269
|
-
Returns:
|
270
|
-
the value of the property.
|
271
|
-
"""
|
272
|
-
return self.get_body().deployment_artifact_ids
|
273
|
-
|
274
|
-
@property
|
275
|
-
def pipeline_run_ids(self) -> Dict[str, UUID]:
|
276
|
-
"""The `pipeline_run_ids` property.
|
277
|
-
|
278
|
-
Returns:
|
279
|
-
the value of the property.
|
280
|
-
"""
|
281
|
-
return self.get_body().pipeline_run_ids
|
282
|
-
|
283
235
|
@property
|
284
236
|
def tags(self) -> List[TagResponse]:
|
285
237
|
"""The `tags` property.
|
@@ -287,7 +239,7 @@ class ModelVersionResponse(
|
|
287
239
|
Returns:
|
288
240
|
the value of the property.
|
289
241
|
"""
|
290
|
-
return self.
|
242
|
+
return self.get_resources().tags
|
291
243
|
|
292
244
|
@property
|
293
245
|
def description(self) -> Optional[str]:
|
@@ -360,14 +312,86 @@ class ModelVersionResponse(
|
|
360
312
|
Dictionary of model artifacts with versions as
|
361
313
|
Dict[str, Dict[str, ArtifactResponse]]
|
362
314
|
"""
|
315
|
+
logger.warning(
|
316
|
+
"ModelVersionResponse.model_artifacts is deprecated and will be "
|
317
|
+
"removed in a future release."
|
318
|
+
)
|
363
319
|
from zenml.client import Client
|
364
320
|
|
321
|
+
artifact_versions = pagination_utils.depaginate(
|
322
|
+
Client().list_artifact_versions,
|
323
|
+
model_version_id=self.id,
|
324
|
+
type=ArtifactType.MODEL,
|
325
|
+
project=self.project_id,
|
326
|
+
)
|
327
|
+
|
328
|
+
result: Dict[str, Dict[str, "ArtifactVersionResponse"]] = {}
|
329
|
+
for artifact_version in artifact_versions:
|
330
|
+
result.setdefault(artifact_version.name, {})
|
331
|
+
result[artifact_version.name][artifact_version.version] = (
|
332
|
+
artifact_version
|
333
|
+
)
|
334
|
+
|
335
|
+
return result
|
336
|
+
|
337
|
+
@property
|
338
|
+
def data_artifact_ids(self) -> Dict[str, Dict[str, UUID]]:
|
339
|
+
"""Data artifacts linked to this model version.
|
340
|
+
|
341
|
+
Returns:
|
342
|
+
Data artifacts linked to this model version.
|
343
|
+
"""
|
344
|
+
logger.warning(
|
345
|
+
"ModelVersionResponse.data_artifact_ids is deprecated and will "
|
346
|
+
"be removed in a future release."
|
347
|
+
)
|
348
|
+
|
365
349
|
return {
|
366
|
-
|
367
|
-
|
368
|
-
for
|
350
|
+
artifact_name: {
|
351
|
+
version_name: version_response.id
|
352
|
+
for version_name, version_response in artifact_versions.items()
|
369
353
|
}
|
370
|
-
for
|
354
|
+
for artifact_name, artifact_versions in self.data_artifacts.items()
|
355
|
+
}
|
356
|
+
|
357
|
+
@property
|
358
|
+
def model_artifact_ids(self) -> Dict[str, Dict[str, UUID]]:
|
359
|
+
"""Model artifacts linked to this model version.
|
360
|
+
|
361
|
+
Returns:
|
362
|
+
Model artifacts linked to this model version.
|
363
|
+
"""
|
364
|
+
logger.warning(
|
365
|
+
"ModelVersionResponse.model_artifact_ids is deprecated and will "
|
366
|
+
"be removed in a future release."
|
367
|
+
)
|
368
|
+
|
369
|
+
return {
|
370
|
+
artifact_name: {
|
371
|
+
version_name: version_response.id
|
372
|
+
for version_name, version_response in artifact_versions.items()
|
373
|
+
}
|
374
|
+
for artifact_name, artifact_versions in self.model_artifacts.items()
|
375
|
+
}
|
376
|
+
|
377
|
+
@property
|
378
|
+
def deployment_artifact_ids(self) -> Dict[str, Dict[str, UUID]]:
|
379
|
+
"""Deployment artifacts linked to this model version.
|
380
|
+
|
381
|
+
Returns:
|
382
|
+
Deployment artifacts linked to this model version.
|
383
|
+
"""
|
384
|
+
logger.warning(
|
385
|
+
"ModelVersionResponse.deployment_artifact_ids is deprecated and "
|
386
|
+
"will be removed in a future release."
|
387
|
+
)
|
388
|
+
|
389
|
+
return {
|
390
|
+
artifact_name: {
|
391
|
+
version_name: version_response.id
|
392
|
+
for version_name, version_response in artifact_versions.items()
|
393
|
+
}
|
394
|
+
for artifact_name, artifact_versions in self.deployment_artifacts.items()
|
371
395
|
}
|
372
396
|
|
373
397
|
@property
|
@@ -380,15 +404,28 @@ class ModelVersionResponse(
|
|
380
404
|
Dictionary of data artifacts with versions as
|
381
405
|
Dict[str, Dict[str, ArtifactResponse]]
|
382
406
|
"""
|
407
|
+
logger.warning(
|
408
|
+
"ModelVersionResponse.data_artifacts is deprecated and will be "
|
409
|
+
"removed in a future release."
|
410
|
+
)
|
411
|
+
|
383
412
|
from zenml.client import Client
|
384
413
|
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
414
|
+
artifact_versions = pagination_utils.depaginate(
|
415
|
+
Client().list_artifact_versions,
|
416
|
+
model_version_id=self.id,
|
417
|
+
type=ArtifactType.DATA,
|
418
|
+
project=self.project_id,
|
419
|
+
)
|
420
|
+
|
421
|
+
result: Dict[str, Dict[str, "ArtifactVersionResponse"]] = {}
|
422
|
+
for artifact_version in artifact_versions:
|
423
|
+
result.setdefault(artifact_version.name, {})
|
424
|
+
result[artifact_version.name][artifact_version.version] = (
|
425
|
+
artifact_version
|
426
|
+
)
|
427
|
+
|
428
|
+
return result
|
392
429
|
|
393
430
|
@property
|
394
431
|
def deployment_artifacts(
|
@@ -400,14 +437,49 @@ class ModelVersionResponse(
|
|
400
437
|
Dictionary of deployment artifacts with versions as
|
401
438
|
Dict[str, Dict[str, ArtifactResponse]]
|
402
439
|
"""
|
440
|
+
logger.warning(
|
441
|
+
"ModelVersionResponse.deployment_artifacts is deprecated and will "
|
442
|
+
"be removed in a future release."
|
443
|
+
)
|
444
|
+
|
445
|
+
from zenml.client import Client
|
446
|
+
|
447
|
+
artifact_versions = pagination_utils.depaginate(
|
448
|
+
Client().list_artifact_versions,
|
449
|
+
model_version_id=self.id,
|
450
|
+
type=ArtifactType.SERVICE,
|
451
|
+
project=self.project_id,
|
452
|
+
)
|
453
|
+
|
454
|
+
result: Dict[str, Dict[str, "ArtifactVersionResponse"]] = {}
|
455
|
+
for artifact_version in artifact_versions:
|
456
|
+
result.setdefault(artifact_version.name, {})
|
457
|
+
result[artifact_version.name][artifact_version.version] = (
|
458
|
+
artifact_version
|
459
|
+
)
|
460
|
+
|
461
|
+
return result
|
462
|
+
|
463
|
+
@property
|
464
|
+
def pipeline_run_ids(self) -> Dict[str, UUID]:
|
465
|
+
"""Pipeline runs linked to this model version.
|
466
|
+
|
467
|
+
Returns:
|
468
|
+
Pipeline runs linked to this model version.
|
469
|
+
"""
|
470
|
+
logger.warning(
|
471
|
+
"ModelVersionResponse.pipeline_run_ids is deprecated and will be "
|
472
|
+
"removed in a future release."
|
473
|
+
)
|
474
|
+
|
403
475
|
from zenml.client import Client
|
404
476
|
|
405
477
|
return {
|
406
|
-
name:
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
478
|
+
link.pipeline_run.name: link.pipeline_run.id
|
479
|
+
for link in pagination_utils.depaginate(
|
480
|
+
Client().list_model_version_pipeline_run_links,
|
481
|
+
model_version_id=self.id,
|
482
|
+
)
|
411
483
|
}
|
412
484
|
|
413
485
|
@property
|
@@ -417,11 +489,19 @@ class ModelVersionResponse(
|
|
417
489
|
Returns:
|
418
490
|
Dictionary of Pipeline Runs as PipelineRunResponseModel
|
419
491
|
"""
|
492
|
+
logger.warning(
|
493
|
+
"ModelVersionResponse.pipeline_runs is deprecated and will be "
|
494
|
+
"removed in a future release."
|
495
|
+
)
|
496
|
+
|
420
497
|
from zenml.client import Client
|
421
498
|
|
422
499
|
return {
|
423
|
-
name:
|
424
|
-
for
|
500
|
+
link.pipeline_run.name: link.pipeline_run
|
501
|
+
for link in pagination_utils.depaginate(
|
502
|
+
Client().list_model_version_pipeline_run_links,
|
503
|
+
model_version_id=self.id,
|
504
|
+
)
|
425
505
|
}
|
426
506
|
|
427
507
|
def _get_linked_object(
|
@@ -450,6 +530,7 @@ class ModelVersionResponse(
|
|
450
530
|
version=version,
|
451
531
|
model_version_id=self.id,
|
452
532
|
type=type,
|
533
|
+
project=self.project_id,
|
453
534
|
hydrate=True,
|
454
535
|
)
|
455
536
|
|
@@ -525,19 +606,6 @@ class ModelVersionResponse(
|
|
525
606
|
"""
|
526
607
|
return self._get_linked_object(name, version, ArtifactType.SERVICE)
|
527
608
|
|
528
|
-
def get_pipeline_run(self, name: str) -> "PipelineRunResponse":
|
529
|
-
"""Get pipeline run linked to this version.
|
530
|
-
|
531
|
-
Args:
|
532
|
-
name: The name of the pipeline run to retrieve.
|
533
|
-
|
534
|
-
Returns:
|
535
|
-
PipelineRun as PipelineRunResponseModel
|
536
|
-
"""
|
537
|
-
from zenml.client import Client
|
538
|
-
|
539
|
-
return Client().get_pipeline_run(self.pipeline_run_ids[name])
|
540
|
-
|
541
609
|
def set_stage(
|
542
610
|
self, stage: Union[str, ModelStages], force: bool = False
|
543
611
|
) -> None:
|
@@ -638,7 +706,6 @@ class ModelVersionFilter(
|
|
638
706
|
custom_filters = super().get_custom_filters(table)
|
639
707
|
|
640
708
|
if self.model:
|
641
|
-
value, operator = self._resolve_operator(self.model)
|
642
709
|
model_filter = and_(
|
643
710
|
ModelVersionSchema.model_id == ModelSchema.id, # type: ignore[arg-type]
|
644
711
|
self.generate_name_or_id_query_conditions(
|
zenml/models/v2/core/pipeline.py
CHANGED
@@ -98,15 +98,6 @@ class PipelineUpdate(BaseUpdate):
|
|
98
98
|
class PipelineResponseBody(ProjectScopedResponseBody):
|
99
99
|
"""Response body for pipelines."""
|
100
100
|
|
101
|
-
latest_run_id: Optional[UUID] = Field(
|
102
|
-
default=None,
|
103
|
-
title="The ID of the latest run of the pipeline.",
|
104
|
-
)
|
105
|
-
latest_run_status: Optional[ExecutionStatus] = Field(
|
106
|
-
default=None,
|
107
|
-
title="The status of the latest run of the pipeline.",
|
108
|
-
)
|
109
|
-
|
110
101
|
|
111
102
|
class PipelineResponseMetadata(ProjectScopedResponseMetadata):
|
112
103
|
"""Response metadata for pipelines."""
|
@@ -124,6 +115,14 @@ class PipelineResponseResources(ProjectScopedResponseResources):
|
|
124
115
|
default=None,
|
125
116
|
title="The user that created the latest run of this pipeline.",
|
126
117
|
)
|
118
|
+
latest_run_id: Optional[UUID] = Field(
|
119
|
+
default=None,
|
120
|
+
title="The ID of the latest run of the pipeline.",
|
121
|
+
)
|
122
|
+
latest_run_status: Optional[ExecutionStatus] = Field(
|
123
|
+
default=None,
|
124
|
+
title="The status of the latest run of the pipeline.",
|
125
|
+
)
|
127
126
|
tags: List[TagResponse] = Field(
|
128
127
|
title="Tags associated with the pipeline.",
|
129
128
|
)
|
@@ -233,7 +232,7 @@ class PipelineResponse(
|
|
233
232
|
Returns:
|
234
233
|
the value of the property.
|
235
234
|
"""
|
236
|
-
return self.
|
235
|
+
return self.get_resources().latest_run_id
|
237
236
|
|
238
237
|
@property
|
239
238
|
def latest_run_status(self) -> Optional[ExecutionStatus]:
|
@@ -242,7 +241,7 @@ class PipelineResponse(
|
|
242
241
|
Returns:
|
243
242
|
the value of the property.
|
244
243
|
"""
|
245
|
-
return self.
|
244
|
+
return self.get_resources().latest_run_status
|
246
245
|
|
247
246
|
@property
|
248
247
|
def tags(self) -> List[TagResponse]:
|
@@ -13,7 +13,7 @@
|
|
13
13
|
# permissions and limitations under the License.
|
14
14
|
"""Models representing pipeline deployments."""
|
15
15
|
|
16
|
-
from typing import Any, Dict, Optional,
|
16
|
+
from typing import Any, Dict, Optional, Union
|
17
17
|
from uuid import UUID
|
18
18
|
|
19
19
|
from pydantic import Field
|
@@ -22,7 +22,6 @@ from zenml.config.pipeline_configurations import PipelineConfiguration
|
|
22
22
|
from zenml.config.pipeline_spec import PipelineSpec
|
23
23
|
from zenml.config.step_configurations import Step
|
24
24
|
from zenml.models.v2.base.base import BaseZenModel
|
25
|
-
from zenml.models.v2.base.page import Page
|
26
25
|
from zenml.models.v2.base.scoped import (
|
27
26
|
ProjectScopedFilter,
|
28
27
|
ProjectScopedRequest,
|
@@ -41,9 +40,6 @@ from zenml.models.v2.core.pipeline_build import (
|
|
41
40
|
)
|
42
41
|
from zenml.models.v2.core.schedule import ScheduleResponse
|
43
42
|
from zenml.models.v2.core.stack import StackResponse
|
44
|
-
from zenml.models.v2.core.trigger import TriggerResponse
|
45
|
-
|
46
|
-
TriggerPage = TypeVar("TriggerPage", bound=Page[TriggerResponse])
|
47
43
|
|
48
44
|
# ------------------ Request Model ------------------
|
49
45
|
|
@@ -189,10 +185,6 @@ class PipelineDeploymentResponseMetadata(ProjectScopedResponseMetadata):
|
|
189
185
|
class PipelineDeploymentResponseResources(ProjectScopedResponseResources):
|
190
186
|
"""Class for all resource models associated with the pipeline deployment entity."""
|
191
187
|
|
192
|
-
triggers: TriggerPage = Field( # type: ignore[valid-type]
|
193
|
-
title="The triggers configured with this event source.",
|
194
|
-
)
|
195
|
-
|
196
188
|
|
197
189
|
class PipelineDeploymentResponse(
|
198
190
|
ProjectScopedResponse[
|
@@ -48,6 +48,7 @@ from zenml.models.v2.base.scoped import (
|
|
48
48
|
from zenml.models.v2.core.logs import LogsRequest
|
49
49
|
from zenml.models.v2.core.model_version import ModelVersionResponse
|
50
50
|
from zenml.models.v2.core.tag import TagResponse
|
51
|
+
from zenml.utils import pagination_utils
|
51
52
|
from zenml.utils.tag_utils import Tag
|
52
53
|
|
53
54
|
if TYPE_CHECKING:
|
@@ -193,9 +194,6 @@ class PipelineRunResponseMetadata(ProjectScopedResponseMetadata):
|
|
193
194
|
default={},
|
194
195
|
title="Metadata associated with this pipeline run.",
|
195
196
|
)
|
196
|
-
steps: Dict[str, "StepRunResponse"] = Field(
|
197
|
-
default={}, title="The steps of this run."
|
198
|
-
)
|
199
197
|
config: PipelineConfiguration = Field(
|
200
198
|
title="The pipeline configuration used for this pipeline run.",
|
201
199
|
)
|
@@ -238,10 +236,6 @@ class PipelineRunResponseMetadata(ProjectScopedResponseMetadata):
|
|
238
236
|
default=False,
|
239
237
|
description="Whether a template can be created from this run.",
|
240
238
|
)
|
241
|
-
step_substitutions: Dict[str, Dict[str, str]] = Field(
|
242
|
-
title="Substitutions used in the step runs of this pipeline run.",
|
243
|
-
default_factory=dict,
|
244
|
-
)
|
245
239
|
|
246
240
|
|
247
241
|
class PipelineRunResponseResources(ProjectScopedResponseResources):
|
@@ -472,7 +466,15 @@ class PipelineRunResponse(
|
|
472
466
|
Returns:
|
473
467
|
the value of the property.
|
474
468
|
"""
|
475
|
-
|
469
|
+
from zenml.client import Client
|
470
|
+
|
471
|
+
return {
|
472
|
+
step.name: step
|
473
|
+
for step in pagination_utils.depaginate(
|
474
|
+
Client().list_run_steps,
|
475
|
+
pipeline_run_id=self.id,
|
476
|
+
)
|
477
|
+
}
|
476
478
|
|
477
479
|
@property
|
478
480
|
def config(self) -> PipelineConfiguration:
|
@@ -555,15 +557,6 @@ class PipelineRunResponse(
|
|
555
557
|
"""
|
556
558
|
return self.get_metadata().is_templatable
|
557
559
|
|
558
|
-
@property
|
559
|
-
def step_substitutions(self) -> Dict[str, Dict[str, str]]:
|
560
|
-
"""The `step_substitutions` property.
|
561
|
-
|
562
|
-
Returns:
|
563
|
-
the value of the property.
|
564
|
-
"""
|
565
|
-
return self.get_metadata().step_substitutions
|
566
|
-
|
567
560
|
@property
|
568
561
|
def model_version(self) -> Optional[ModelVersionResponse]:
|
569
562
|
"""The `model_version` property.
|
@@ -130,14 +130,6 @@ class RunTemplateResponseBody(ProjectScopedResponseBody):
|
|
130
130
|
default=False,
|
131
131
|
title="Whether the run template is hidden.",
|
132
132
|
)
|
133
|
-
latest_run_id: Optional[UUID] = Field(
|
134
|
-
default=None,
|
135
|
-
title="The ID of the latest run of the run template.",
|
136
|
-
)
|
137
|
-
latest_run_status: Optional[ExecutionStatus] = Field(
|
138
|
-
default=None,
|
139
|
-
title="The status of the latest run of the run template.",
|
140
|
-
)
|
141
133
|
|
142
134
|
|
143
135
|
class RunTemplateResponseMetadata(ProjectScopedResponseMetadata):
|
@@ -179,6 +171,14 @@ class RunTemplateResponseResources(ProjectScopedResponseResources):
|
|
179
171
|
tags: List[TagResponse] = Field(
|
180
172
|
title="Tags associated with the run template.",
|
181
173
|
)
|
174
|
+
latest_run_id: Optional[UUID] = Field(
|
175
|
+
default=None,
|
176
|
+
title="The ID of the latest run of the run template.",
|
177
|
+
)
|
178
|
+
latest_run_status: Optional[ExecutionStatus] = Field(
|
179
|
+
default=None,
|
180
|
+
title="The status of the latest run of the run template.",
|
181
|
+
)
|
182
182
|
|
183
183
|
|
184
184
|
class RunTemplateResponse(
|
@@ -233,7 +233,7 @@ class RunTemplateResponse(
|
|
233
233
|
Returns:
|
234
234
|
the value of the property.
|
235
235
|
"""
|
236
|
-
return self.
|
236
|
+
return self.get_resources().latest_run_id
|
237
237
|
|
238
238
|
@property
|
239
239
|
def latest_run_status(self) -> Optional[ExecutionStatus]:
|
@@ -242,7 +242,7 @@ class RunTemplateResponse(
|
|
242
242
|
Returns:
|
243
243
|
the value of the property.
|
244
244
|
"""
|
245
|
-
return self.
|
245
|
+
return self.get_resources().latest_run_status
|
246
246
|
|
247
247
|
@property
|
248
248
|
def description(self) -> Optional[str]:
|