zenml-nightly 0.57.1.dev20240523__py3-none-any.whl → 0.58.0.dev20240528__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 (116) hide show
  1. README.md +1 -1
  2. RELEASE_NOTES.md +88 -0
  3. zenml/VERSION +1 -1
  4. zenml/cli/base.py +15 -16
  5. zenml/client.py +11 -1
  6. zenml/config/__init__.py +2 -0
  7. zenml/config/compiler.py +2 -2
  8. zenml/config/pipeline_configurations.py +2 -0
  9. zenml/config/pipeline_run_configuration.py +2 -0
  10. zenml/config/retry_config.py +27 -0
  11. zenml/config/server_config.py +13 -9
  12. zenml/config/step_configurations.py +2 -0
  13. zenml/constants.py +1 -0
  14. zenml/integrations/kubernetes/flavors/kubernetes_orchestrator_flavor.py +2 -0
  15. zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator.py +14 -0
  16. zenml/integrations/kubernetes/orchestrators/manifest_utils.py +4 -0
  17. zenml/integrations/mlflow/steps/mlflow_deployer.py +1 -1
  18. zenml/integrations/slack/alerters/slack_alerter.py +0 -2
  19. zenml/model/model.py +77 -45
  20. zenml/models/v2/core/model_version.py +1 -1
  21. zenml/models/v2/core/pipeline_run.py +12 -0
  22. zenml/models/v2/core/step_run.py +12 -0
  23. zenml/models/v2/misc/server_models.py +9 -3
  24. zenml/new/pipelines/run_utils.py +8 -2
  25. zenml/new/steps/step_context.py +6 -6
  26. zenml/new/steps/step_decorator.py +5 -0
  27. zenml/orchestrators/step_launcher.py +71 -53
  28. zenml/orchestrators/step_runner.py +28 -134
  29. zenml/orchestrators/utils.py +158 -1
  30. zenml/steps/base_step.py +16 -9
  31. zenml/utils/dashboard_utils.py +4 -8
  32. zenml/zen_server/dashboard/assets/{404-DtHkZQ2t.js → 404-DIgYOHj5.js} +1 -1
  33. zenml/zen_server/dashboard/assets/{@reactflow-BfgHyCG7.js → @reactflow-CF_wPv-n.js} +1 -1
  34. zenml/zen_server/dashboard/assets/{AwarenessChannel--3KuLcwp.js → AwarenessChannel-CqRB1HO9.js} +1 -1
  35. zenml/zen_server/dashboard/assets/{Cards-BzhQtXRm.js → Cards-DuJ8uYGM.js} +1 -1
  36. zenml/zen_server/dashboard/assets/{CodeSnippet-DpWTCS7Y.js → CodeSnippet-CBFcxTGW.js} +1 -1
  37. zenml/zen_server/dashboard/assets/Commands-BQb0_PAa.js +1 -0
  38. zenml/zen_server/dashboard/assets/CopyButton-BOFZCr5Z.js +2 -0
  39. zenml/zen_server/dashboard/assets/{CsvVizualization-B9nkywOx.js → CsvVizualization-D4QRvdDk.js} +1 -1
  40. zenml/zen_server/dashboard/assets/{Error-BbzLqrpR.js → Error-C9i5GdiH.js} +1 -1
  41. zenml/zen_server/dashboard/assets/{Helpbox-SS5TXXFE.js → Helpbox-CnuWjxcc.js} +1 -1
  42. zenml/zen_server/dashboard/assets/{Infobox-CV3EG_9t.js → Infobox-DV6YqO5N.js} +1 -1
  43. zenml/zen_server/dashboard/assets/{InlineAvatar-wz4SSxG5.js → InlineAvatar-DE_1-SDN.js} +1 -1
  44. zenml/zen_server/dashboard/assets/{PageHeader-Bz7qVuF9.js → PageHeader-D7r1Jb6H.js} +1 -1
  45. zenml/zen_server/dashboard/assets/{Pagination-BEP_9EMH.js → Pagination-0-Hv-4DJ.js} +1 -1
  46. zenml/zen_server/dashboard/assets/{SetPassword-B0yU0HIe.js → SetPassword-074iDZCm.js} +1 -1
  47. zenml/zen_server/dashboard/assets/SuccessStep-DEeKB0Wq.js +1 -0
  48. zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-yy-qBmO9.js → UpdatePasswordSchemas-4be5el9x.js} +1 -1
  49. zenml/zen_server/dashboard/assets/{cloud-only-DhayG_Yj.js → cloud-only-lInATL8-.js} +1 -1
  50. zenml/zen_server/dashboard/assets/connectors-video-C9qY4syJ.svg +21 -0
  51. zenml/zen_server/dashboard/assets/{index-Bbgc_ynV.css → index-D4zsM9tz.css} +1 -1
  52. zenml/zen_server/dashboard/assets/{index-UnEiujvd.js → index-DKgtNG83.js} +3 -3
  53. zenml/zen_server/dashboard/assets/{login-mutation-uNylFM6V.js → login-mutation-BfEeVmSl.js} +1 -1
  54. zenml/zen_server/dashboard/assets/{not-found-CvNr1Owb.js → not-found-an_3Z-Ep.js} +1 -1
  55. zenml/zen_server/dashboard/assets/page-0AGNIDYi.js +1 -0
  56. zenml/zen_server/dashboard/assets/{page-1rE3Idho.js → page-68OLHx44.js} +2 -2
  57. zenml/zen_server/dashboard/assets/page-6Gp_NCQL.js +14 -0
  58. zenml/zen_server/dashboard/assets/{page-BAuah6Do.js → page-B90yVxNb.js} +1 -1
  59. zenml/zen_server/dashboard/assets/page-Ba5l9-eg.js +1 -0
  60. zenml/zen_server/dashboard/assets/{page-BCpiaYh8.js → page-BiyORkbM.js} +1 -1
  61. zenml/zen_server/dashboard/assets/{page-DIZKf8ZO.js → page-Bjj9GHVF.js} +1 -1
  62. zenml/zen_server/dashboard/assets/{page-CM80cPrr.js → page-BnrWbXYJ.js} +1 -1
  63. zenml/zen_server/dashboard/assets/{page-CjxYF1Om.js → page-C0opS_t4.js} +1 -1
  64. zenml/zen_server/dashboard/assets/{page-BldrIvaZ.js → page-C1Jl09zF.js} +1 -1
  65. zenml/zen_server/dashboard/assets/{page-BVZ01rdG.js → page-C6Xn5o3F.js} +1 -1
  66. zenml/zen_server/dashboard/assets/page-CUqLUGbU.js +1 -0
  67. zenml/zen_server/dashboard/assets/page-CWpGAjSi.js +1 -0
  68. zenml/zen_server/dashboard/assets/{page-Btc7hKsa.js → page-Cea5XeRB.js} +1 -1
  69. zenml/zen_server/dashboard/assets/{page-BBUhx49Q.js → page-DFQa6C6e.js} +1 -1
  70. zenml/zen_server/dashboard/assets/page-DVAcOIuw.js +1 -0
  71. zenml/zen_server/dashboard/assets/{page-aQgPR2HA.js → page-Dn87PjPv.js} +1 -1
  72. zenml/zen_server/dashboard/assets/{page-sPFYi62U.js → page-GXA0bsIT.js} +1 -1
  73. zenml/zen_server/dashboard/assets/{page-PQQVONmL.js → page-NTQrxRsu.js} +2 -2
  74. zenml/zen_server/dashboard/assets/page-NlxFzoaz.js +1 -0
  75. zenml/zen_server/dashboard/assets/page-ZJ5Cy_-x.js +1 -0
  76. zenml/zen_server/dashboard/assets/{update-server-settings-mutation-B8N8nrWI.js → update-server-settings-mutation-CdcOI8-c.js} +1 -1
  77. zenml/zen_server/dashboard/assets/url-DLJUVIKc.js +1 -0
  78. zenml/zen_server/dashboard/index.html +4 -4
  79. zenml/zen_server/dashboard_legacy/asset-manifest.json +4 -4
  80. zenml/zen_server/dashboard_legacy/index.html +1 -1
  81. zenml/zen_server/dashboard_legacy/{precache-manifest.36c2742fac555eaab6995df9d81c08ab.js → precache-manifest.05e51e85bd64770b2708d408a88d7028.js} +4 -4
  82. zenml/zen_server/dashboard_legacy/service-worker.js +1 -1
  83. zenml/zen_server/dashboard_legacy/static/js/{main.1c1aaa11.chunk.js → main.41d438ec.chunk.js} +2 -2
  84. zenml/zen_server/dashboard_legacy/static/js/{main.1c1aaa11.chunk.js.map → main.41d438ec.chunk.js.map} +1 -1
  85. zenml/zen_server/deploy/helm/Chart.yaml +1 -1
  86. zenml/zen_server/deploy/helm/README.md +2 -2
  87. zenml/zen_server/deploy/helm/templates/_environment.tpl +5 -5
  88. zenml/zen_server/deploy/helm/values.yaml +13 -9
  89. zenml/zen_server/pipeline_deployment/utils.py +6 -2
  90. zenml/zen_server/routers/auth_endpoints.py +4 -4
  91. zenml/zen_server/zen_server_api.py +1 -1
  92. zenml/zen_stores/base_zen_store.py +2 -2
  93. zenml/zen_stores/migrations/versions/0.58.0_release.py +23 -0
  94. zenml/zen_stores/schemas/artifact_schemas.py +11 -2
  95. zenml/zen_stores/schemas/pipeline_run_schemas.py +12 -0
  96. zenml/zen_stores/schemas/step_run_schemas.py +17 -1
  97. zenml/zen_stores/sql_zen_store.py +9 -5
  98. {zenml_nightly-0.57.1.dev20240523.dist-info → zenml_nightly-0.58.0.dev20240528.dist-info}/METADATA +4 -4
  99. {zenml_nightly-0.57.1.dev20240523.dist-info → zenml_nightly-0.58.0.dev20240528.dist-info}/RECORD +102 -101
  100. zenml/zen_server/dashboard/assets/Commands-fpiuAaZ1.js +0 -1
  101. zenml/zen_server/dashboard/assets/CopyButton-DVKNxLl5.js +0 -2
  102. zenml/zen_server/dashboard/assets/SuccessStep-B8Qhr2kK.js +0 -1
  103. zenml/zen_server/dashboard/assets/VideoModal-qB9JWw-2.js +0 -1
  104. zenml/zen_server/dashboard/assets/page-3NFpYOpt.js +0 -1
  105. zenml/zen_server/dashboard/assets/page-BE7NJ8PH.js +0 -1
  106. zenml/zen_server/dashboard/assets/page-BTYWG9gF.js +0 -1
  107. zenml/zen_server/dashboard/assets/page-BuBHmjwQ.js +0 -1
  108. zenml/zen_server/dashboard/assets/page-C-Jw_wjv.js +0 -1
  109. zenml/zen_server/dashboard/assets/page-CeMgQAs7.js +0 -14
  110. zenml/zen_server/dashboard/assets/page-X0_g3JVr.js +0 -1
  111. zenml/zen_server/dashboard/assets/page-ijCkM2BW.js +0 -1
  112. zenml/zen_server/dashboard/assets/refresh-CdiBx6nL.js +0 -1
  113. zenml/zen_server/dashboard/assets/url-BxOqGmlk.js +0 -1
  114. {zenml_nightly-0.57.1.dev20240523.dist-info → zenml_nightly-0.58.0.dev20240528.dist-info}/LICENSE +0 -0
  115. {zenml_nightly-0.57.1.dev20240523.dist-info → zenml_nightly-0.58.0.dev20240528.dist-info}/WHEEL +0 -0
  116. {zenml_nightly-0.57.1.dev20240523.dist-info → zenml_nightly-0.58.0.dev20240528.dist-info}/entry_points.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  apiVersion: v2
2
2
  name: zenml
3
- version: "0.57.1"
3
+ version: "0.58.0"
4
4
  description: Open source MLOps framework for portable production ready ML pipelines
5
5
  keywords:
6
6
  - mlops
@@ -20,8 +20,8 @@ ZenML is an open-source MLOps framework designed to help you create robust, main
20
20
  To install the ZenML chart directly from Amazon ECR, use the following command:
21
21
 
22
22
  ```bash
23
- # example command for version 0.57.1
24
- helm install my-zenml oci://public.ecr.aws/zenml/zenml --version 0.57.1
23
+ # example command for version 0.58.0
24
+ helm install my-zenml oci://public.ecr.aws/zenml/zenml --version 0.58.0
25
25
  ```
26
26
 
27
27
  Note: Ensure you have OCI support enabled in your Helm client and that you are authenticated with Amazon ECR.
@@ -58,9 +58,6 @@ device_auth_timeout: {{ .ZenML.auth.deviceAuthTimeout | quote }}
58
58
  {{- if .ZenML.auth.deviceAuthPollingInterval }}
59
59
  device_auth_polling_interval: {{ .ZenML.auth.deviceAuthPollingInterval | quote }}
60
60
  {{- end }}
61
- {{- if .ZenML.auth.dashboardURL }}
62
- dashboard_url: {{ .ZenML.auth.dashboardURL | quote }}
63
- {{- end }}
64
61
  {{- if .ZenML.auth.deviceExpirationMinutes }}
65
62
  device_expiration_minutes: {{ .ZenML.auth.deviceExpirationMinutes | quote }}
66
63
  {{- end }}
@@ -82,8 +79,11 @@ external_server_id: {{ .ZenML.auth.externalServerID | quote }}
82
79
  {{- if .ZenML.rootUrlPath }}
83
80
  root_url_path: {{ .ZenML.rootUrlPath | quote }}
84
81
  {{- end }}
85
- {{- if .ZenML.baseURL }}
86
- base_url: {{ .ZenML.baseURL | quote }}
82
+ {{- if .ZenML.serverURL }}
83
+ server_url: {{ .ZenML.serverURL | quote }}
84
+ {{- end }}
85
+ {{- if .ZenML.dashboardURL }}
86
+ dashboard_url: {{ .ZenML.dashboardURL | quote }}
87
87
  {{- end }}
88
88
  {{- if .ZenML.auth.rbacImplementationSource }}
89
89
  rbac_implementation_source: {{ .ZenML.auth.rbacImplementationSource | quote }}
@@ -16,9 +16,19 @@ zenml:
16
16
  # Overrides the image tag whose default is the chart appVersion.
17
17
  tag:
18
18
 
19
- # The URL of the ZenML server. This is used to direct users to the correct
20
- # address in log messages when running a pipeline and for other similar tasks.
21
- baseURL:
19
+ # The URL where the ZenML server API is reachable. If not specified, the
20
+ # clients will use the same URL used to connect them to the ZenML server.
21
+ serverURL:
22
+
23
+ # The URL where the ZenML dashboard is reachable.
24
+ # If not specified, the `serverURL` value is used. This should be
25
+ # configured if the dashboard is served from a different URL than the
26
+ # ZenML server.
27
+ #
28
+ # This is value is used to compute the dashboard URLs during the web login
29
+ # authentication workflow, to print dashboard URLs in log messages when
30
+ # running a pipeline and for other similar tasks.
31
+ dashboardURL:
22
32
 
23
33
  debug: true
24
34
 
@@ -112,12 +122,6 @@ zenml:
112
122
  # authorization request.
113
123
  deviceAuthPollingInterval: 5
114
124
 
115
- # The URL where the ZenML dashboard is hosted. Used to construct the OAuth
116
- # 2.0 device authorization endpoint. If not set, a partial URL is returned
117
- # to the client which is used to construct the full URL based on the
118
- # server's root URL path.
119
- dashboardURL:
120
-
121
125
  # The time in minutes that an OAuth 2.0 device is allowed to be used to
122
126
  # authenticate with the ZenML server. If not set or if
123
127
  # `zenml.auth.jwtTokenExpireMinutes` is not set, the devices are allowed to
@@ -58,6 +58,7 @@ def run_pipeline(
58
58
  Raises:
59
59
  ValueError: If the deployment does not have an associated stack or
60
60
  build.
61
+ RuntimeError: If the server URL is not set in the server configuration.
61
62
 
62
63
  Returns:
63
64
  ID of the new pipeline run.
@@ -87,8 +88,11 @@ def run_pipeline(
87
88
  assert auth_context.access_token
88
89
  api_token = auth_context.access_token.encode()
89
90
 
90
- server_url = server_config().dashboard_url
91
- assert server_url
91
+ server_url = server_config().server_url
92
+ if not server_url:
93
+ raise RuntimeError(
94
+ "The server URL is not set in the server configuration"
95
+ )
92
96
  assert build.zenml_version
93
97
  zenml_version = build.zenml_version
94
98
 
@@ -458,10 +458,10 @@ def device_authorization(
458
458
  ),
459
459
  )
460
460
 
461
- if config.dashboard_url:
462
- verification_uri = (
463
- config.dashboard_url.lstrip("/") + DEVICES + DEVICE_VERIFY
464
- )
461
+ dashboard_url = config.dashboard_url or config.server_url
462
+
463
+ if dashboard_url:
464
+ verification_uri = dashboard_url.lstrip("/") + DEVICES + DEVICE_VERIFY
465
465
  else:
466
466
  verification_uri = DEVICES + DEVICE_VERIFY
467
467
 
@@ -15,6 +15,7 @@
15
15
 
16
16
  import os
17
17
  from asyncio.log import logger
18
+ from genericpath import isfile
18
19
  from typing import Any, List
19
20
 
20
21
  from fastapi import FastAPI, HTTPException, Request
@@ -22,7 +23,6 @@ from fastapi.exceptions import RequestValidationError
22
23
  from fastapi.responses import ORJSONResponse
23
24
  from fastapi.staticfiles import StaticFiles
24
25
  from fastapi.templating import Jinja2Templates
25
- from genericpath import isfile
26
26
  from starlette.middleware.cors import CORSMiddleware
27
27
  from starlette.responses import FileResponse
28
28
 
@@ -375,7 +375,6 @@ class BaseZenStore(
375
375
  server_config = ServerConfiguration.get_server_config()
376
376
  deployment_type = server_config.deployment_type
377
377
  auth_scheme = server_config.auth_scheme
378
- base_url = server_config.base_url
379
378
  metadata = server_config.metadata
380
379
  secrets_store_type = SecretsStoreType.NONE
381
380
  if isinstance(self, SqlZenStore) and self.config.secrets_store:
@@ -390,7 +389,8 @@ class BaseZenStore(
390
389
  debug=IS_DEBUG_ENV,
391
390
  secrets_store_type=secrets_store_type,
392
391
  auth_scheme=auth_scheme,
393
- base_url=base_url,
392
+ server_url=server_config.server_url or "",
393
+ dashboard_url=server_config.dashboard_url or "",
394
394
  analytics_enabled=GlobalConfiguration().analytics_opt_in,
395
395
  metadata=metadata,
396
396
  use_legacy_dashboard=use_legacy_dashboard,
@@ -0,0 +1,23 @@
1
+ """Release [0.58.0].
2
+
3
+ Revision ID: 0.58.0
4
+ Revises: 0.57.1
5
+ Create Date: 2024-05-27 15:22:16.565094
6
+
7
+ """
8
+
9
+ # revision identifiers, used by Alembic.
10
+ revision = "0.58.0"
11
+ down_revision = "0.57.1"
12
+ branch_labels = None
13
+ depends_on = None
14
+
15
+
16
+ def upgrade() -> None:
17
+ """Upgrade database schema and/or data, creating a new revision."""
18
+ pass
19
+
20
+
21
+ def downgrade() -> None:
22
+ """Downgrade database schema and/or data back to the previous revision."""
23
+ pass
@@ -315,11 +315,17 @@ class ArtifactVersionSchema(BaseSchema, table=True):
315
315
 
316
316
  producer_step_run_id, producer_pipeline_run_id = None, None
317
317
  if self.output_of_step_runs:
318
- step_run = self.output_of_step_runs[0].step_run
319
- if step_run.status == ExecutionStatus.COMPLETED:
318
+ original_step_runs = [
319
+ sr
320
+ for sr in self.output_of_step_runs
321
+ if sr.step_run.status == ExecutionStatus.COMPLETED
322
+ ]
323
+ if len(original_step_runs) == 1:
324
+ step_run = original_step_runs[0].step_run
320
325
  producer_step_run_id = step_run.id
321
326
  producer_pipeline_run_id = step_run.pipeline_run_id
322
327
  else:
328
+ step_run = self.output_of_step_runs[0].step_run
323
329
  producer_step_run_id = step_run.original_step_run_id
324
330
 
325
331
  # Create the body of the model
@@ -348,10 +354,13 @@ class ArtifactVersionSchema(BaseSchema, table=True):
348
354
  run_metadata={m.key: m.to_model() for m in self.run_metadata},
349
355
  )
350
356
 
357
+ resources = None
358
+
351
359
  return ArtifactVersionResponse(
352
360
  id=self.id,
353
361
  body=body,
354
362
  metadata=metadata,
363
+ resources=resources,
355
364
  )
356
365
 
357
366
  def update(
@@ -30,6 +30,7 @@ from zenml.models import (
30
30
  PipelineRunResponseMetadata,
31
31
  PipelineRunUpdate,
32
32
  )
33
+ from zenml.models.v2.core.pipeline_run import PipelineRunResponseResources
33
34
  from zenml.zen_stores.schemas.base_schemas import NamedSchema
34
35
  from zenml.zen_stores.schemas.pipeline_build_schemas import PipelineBuildSchema
35
36
  from zenml.zen_stores.schemas.pipeline_deployment_schemas import (
@@ -310,11 +311,22 @@ class PipelineRunSchema(NamedSchema, table=True):
310
311
  orchestrator_environment=orchestrator_environment,
311
312
  orchestrator_run_id=self.orchestrator_run_id,
312
313
  )
314
+
315
+ resources = None
316
+ if include_resources:
317
+ model_version = None
318
+ if config.model and config.model.model_version_id:
319
+ model_version = config.model._get_model_version(hydrate=False)
320
+ resources = PipelineRunResponseResources(
321
+ model_version=model_version
322
+ )
323
+
313
324
  return PipelineRunResponse(
314
325
  id=self.id,
315
326
  name=self.name,
316
327
  body=body,
317
328
  metadata=metadata,
329
+ resources=resources,
318
330
  )
319
331
 
320
332
  def update(self, run_update: "PipelineRunUpdate") -> "PipelineRunSchema":
@@ -37,6 +37,7 @@ from zenml.models import (
37
37
  StepRunResponseMetadata,
38
38
  StepRunUpdate,
39
39
  )
40
+ from zenml.models.v2.core.step_run import StepRunResponseResources
40
41
  from zenml.zen_stores.schemas.base_schemas import NamedSchema
41
42
  from zenml.zen_stores.schemas.pipeline_deployment_schemas import (
42
43
  PipelineDeploymentSchema,
@@ -207,7 +208,9 @@ class StepRunSchema(NamedSchema, table=True):
207
208
  }
208
209
 
209
210
  output_artifacts = {
210
- artifact.name: artifact.artifact_version.to_model()
211
+ artifact.name: artifact.artifact_version.to_model(
212
+ pipeline_run_id_in_context=self.pipeline_run_id
213
+ )
211
214
  for artifact in self.output_artifacts
212
215
  }
213
216
 
@@ -250,11 +253,24 @@ class StepRunSchema(NamedSchema, table=True):
250
253
  parent_step_ids=[p.parent_id for p in self.parents],
251
254
  run_metadata=run_metadata,
252
255
  )
256
+
257
+ resources = None
258
+ if include_resources:
259
+ model_version = None
260
+ if full_step_config.config.model:
261
+ model_version = (
262
+ full_step_config.config.model._get_model_version(
263
+ hydrate=False
264
+ )
265
+ )
266
+ resources = StepRunResponseResources(model_version=model_version)
267
+
253
268
  return StepRunResponse(
254
269
  id=self.id,
255
270
  name=self.name,
256
271
  body=body,
257
272
  metadata=metadata,
273
+ resources=resources,
258
274
  )
259
275
 
260
276
  def update(self, step_update: "StepRunUpdate") -> "StepRunSchema":
@@ -2462,7 +2462,9 @@ class SqlZenStore(BaseZenStore):
2462
2462
  f"{artifact_version_id}: No artifact version with this ID "
2463
2463
  f"found."
2464
2464
  )
2465
- return artifact_version.to_model(include_metadata=hydrate)
2465
+ return artifact_version.to_model(
2466
+ include_metadata=hydrate, include_resources=hydrate
2467
+ )
2466
2468
 
2467
2469
  def list_artifact_versions(
2468
2470
  self,
@@ -4336,7 +4338,7 @@ class SqlZenStore(BaseZenStore):
4336
4338
  with Session(self.engine) as session:
4337
4339
  return self._get_run_schema(
4338
4340
  run_name_or_id, session=session
4339
- ).to_model(include_metadata=hydrate)
4341
+ ).to_model(include_metadata=hydrate, include_resources=hydrate)
4340
4342
 
4341
4343
  def _replace_placeholder_run(
4342
4344
  self,
@@ -6938,7 +6940,7 @@ class SqlZenStore(BaseZenStore):
6938
6940
  ).first()
6939
6941
  if run is None:
6940
6942
  raise KeyError(
6941
- f"Unable to create step '{step_run.name}': No pipeline run "
6943
+ f"Unable to create step `{step_run.name}`: No pipeline run "
6942
6944
  f"with ID '{step_run.pipeline_run_id}' found."
6943
6945
  )
6944
6946
 
@@ -6952,7 +6954,7 @@ class SqlZenStore(BaseZenStore):
6952
6954
  ).first()
6953
6955
  if existing_step_run is not None:
6954
6956
  raise EntityExistsError(
6955
- f"Unable to create step '{step_run.name}': A step with "
6957
+ f"Unable to create step `{step_run.name}`: A step with "
6956
6958
  f"this name already exists in the pipeline run with ID "
6957
6959
  f"'{step_run.pipeline_run_id}'."
6958
6960
  )
@@ -7032,7 +7034,9 @@ class SqlZenStore(BaseZenStore):
7032
7034
  f"Unable to get step run with ID {step_run_id}: No step "
7033
7035
  "run with this ID found."
7034
7036
  )
7035
- return step_run.to_model(include_metadata=hydrate)
7037
+ return step_run.to_model(
7038
+ include_metadata=hydrate, include_resources=hydrate
7039
+ )
7036
7040
 
7037
7041
  def list_run_steps(
7038
7042
  self,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zenml-nightly
3
- Version: 0.57.1.dev20240523
3
+ Version: 0.58.0.dev20240528
4
4
  Summary: ZenML: Write production-ready ML code.
5
5
  Home-page: https://zenml.io
6
6
  License: Apache-2.0
@@ -88,8 +88,8 @@ Requires-Dist: psutil (>=5.0.0)
88
88
  Requires-Dist: pydantic (>=1.9.0,<1.11)
89
89
  Requires-Dist: pyjwt[crypto] (==2.7.*) ; extra == "server"
90
90
  Requires-Dist: pyment (>=0.3.3,<0.4.0) ; extra == "dev"
91
- Requires-Dist: pymysql (>=1.0.2,<1.1.0)
92
- Requires-Dist: pyparsing (>=2.4.0,<3)
91
+ Requires-Dist: pymysql (>=1.1.1,<1.2.0)
92
+ Requires-Dist: pyparsing (>=2.4.0)
93
93
  Requires-Dist: pytest (>=7.4.0,<8.0.0) ; extra == "dev"
94
94
  Requires-Dist: pytest-clarity (>=1.0.1,<2.0.0) ; extra == "dev"
95
95
  Requires-Dist: pytest-instafail (>=0.5.0) ; extra == "dev"
@@ -426,7 +426,7 @@ the Apache License Version 2.0.
426
426
  <a href="https://github.com/zenml-io/zenml-projects">Projects Showcase</a>
427
427
  <br />
428
428
  <br />
429
- 🎉 Version 0.57.1 is out. Check out the release notes
429
+ 🎉 Version 0.58.0 is out. Check out the release notes
430
430
  <a href="https://github.com/zenml-io/zenml/releases">here</a>.
431
431
  <br />
432
432
  🖥️ Download our VS Code Extension <a href="https://marketplace.visualstudio.com/items?itemName=ZenML.zenml-vscode">here</a>.