zenml-nightly 0.71.0.dev20241212__py3-none-any.whl → 0.71.0.dev20241213__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 CHANGED
@@ -1 +1 @@
1
- 0.71.0.dev20241212
1
+ 0.71.0.dev20241213
@@ -104,15 +104,18 @@ class ArtifactConfig(BaseModel):
104
104
  )
105
105
  elif is_model_artifact:
106
106
  logger.warning(
107
- "`ArtifactConfig.is_model_artifact` is deprecated and will be "
108
- "removed soon. Use `ArtifactConfig.artifact_type` instead."
107
+ "`ArtifactConfig(..., is_model_artifact=True)` is deprecated "
108
+ "and will be removed soon. Use `ArtifactConfig(..., "
109
+ "artifact_type=ArtifactType.MODEL)` instead. For more info: "
110
+ "https://docs.zenml.io/user-guide/starter-guide/manage-artifacts"
109
111
  )
110
112
  data.setdefault("artifact_type", ArtifactType.MODEL)
111
113
  elif is_deployment_artifact:
112
114
  logger.warning(
113
- "`ArtifactConfig.is_deployment_artifact` is deprecated and "
114
- "will be removed soon. Use `ArtifactConfig.artifact_type` "
115
- "instead."
115
+ "`ArtifactConfig(..., is_deployment_artifact=True)` is "
116
+ "deprecated and will be removed soon. Use `ArtifactConfig(..., "
117
+ "artifact_type=ArtifactType.SERVICE)` instead. For more info: "
118
+ "https://docs.zenml.io/user-guide/starter-guide/manage-artifacts"
116
119
  )
117
120
  data.setdefault("artifact_type", ArtifactType.SERVICE)
118
121
 
zenml/artifacts/utils.py CHANGED
@@ -414,7 +414,9 @@ def log_artifact_metadata(
414
414
  """
415
415
  logger.warning(
416
416
  "The `log_artifact_metadata` function is deprecated and will soon be "
417
- "removed. Please use `log_metadata` instead."
417
+ "removed. Instead, you can consider using: "
418
+ "`log_metadata(metadata={...}, infer_artifact=True, ...)` instead. For more "
419
+ "info: https://docs.zenml.io/how-to/model-management-metrics/track-metrics-metadata/attach-metadata-to-an-artifact"
418
420
  )
419
421
 
420
422
  from zenml import log_metadata
zenml/client.py CHANGED
@@ -2663,11 +2663,13 @@ class Client(metaclass=ClientMetaClass):
2663
2663
  user_id: Optional[Union[str, UUID]] = None,
2664
2664
  pipeline_id: Optional[Union[str, UUID]] = None,
2665
2665
  stack_id: Optional[Union[str, UUID]] = None,
2666
+ container_registry_id: Optional[Union[UUID, str]] = None,
2666
2667
  is_local: Optional[bool] = None,
2667
2668
  contains_code: Optional[bool] = None,
2668
2669
  zenml_version: Optional[str] = None,
2669
2670
  python_version: Optional[str] = None,
2670
2671
  checksum: Optional[str] = None,
2672
+ stack_checksum: Optional[str] = None,
2671
2673
  hydrate: bool = False,
2672
2674
  ) -> Page[PipelineBuildResponse]:
2673
2675
  """List all builds.
@@ -2684,11 +2686,14 @@ class Client(metaclass=ClientMetaClass):
2684
2686
  user_id: The id of the user to filter by.
2685
2687
  pipeline_id: The id of the pipeline to filter by.
2686
2688
  stack_id: The id of the stack to filter by.
2689
+ container_registry_id: The id of the container registry to
2690
+ filter by.
2687
2691
  is_local: Use to filter local builds.
2688
2692
  contains_code: Use to filter builds that contain code.
2689
2693
  zenml_version: The version of ZenML to filter by.
2690
2694
  python_version: The Python version to filter by.
2691
2695
  checksum: The build checksum to filter by.
2696
+ stack_checksum: The stack checksum to filter by.
2692
2697
  hydrate: Flag deciding whether to hydrate the output model(s)
2693
2698
  by including metadata fields in the response.
2694
2699
 
@@ -2707,11 +2712,13 @@ class Client(metaclass=ClientMetaClass):
2707
2712
  user_id=user_id,
2708
2713
  pipeline_id=pipeline_id,
2709
2714
  stack_id=stack_id,
2715
+ container_registry_id=container_registry_id,
2710
2716
  is_local=is_local,
2711
2717
  contains_code=contains_code,
2712
2718
  zenml_version=zenml_version,
2713
2719
  python_version=python_version,
2714
2720
  checksum=checksum,
2721
+ stack_checksum=stack_checksum,
2715
2722
  )
2716
2723
  build_filter_model.set_scope_workspace(self.active_workspace.id)
2717
2724
  return self.zen_store.list_builds(
@@ -3488,6 +3495,7 @@ class Client(metaclass=ClientMetaClass):
3488
3495
  logical_operator: LogicalOperators = LogicalOperators.AND,
3489
3496
  created: Optional[Union[datetime, str]] = None,
3490
3497
  updated: Optional[Union[datetime, str]] = None,
3498
+ id: Optional[Union[UUID, str]] = None,
3491
3499
  name: Optional[str] = None,
3492
3500
  tag: Optional[str] = None,
3493
3501
  workspace_id: Optional[Union[str, UUID]] = None,
@@ -3510,6 +3518,7 @@ class Client(metaclass=ClientMetaClass):
3510
3518
  logical_operator: Which logical operator to use [and, or].
3511
3519
  created: Filter by the creation date.
3512
3520
  updated: Filter by the last updated date.
3521
+ id: Filter by run template ID.
3513
3522
  name: Filter by run template name.
3514
3523
  tag: Filter by run template tags.
3515
3524
  workspace_id: Filter by workspace ID.
@@ -3534,6 +3543,7 @@ class Client(metaclass=ClientMetaClass):
3534
3543
  logical_operator=logical_operator,
3535
3544
  created=created,
3536
3545
  updated=updated,
3546
+ id=id,
3537
3547
  name=name,
3538
3548
  tag=tag,
3539
3549
  workspace_id=workspace_id,
zenml/model/utils.py CHANGED
@@ -56,7 +56,9 @@ def log_model_metadata(
56
56
  """
57
57
  logger.warning(
58
58
  "The `log_model_metadata` function is deprecated and will soon be "
59
- "removed. Please use `log_metadata` instead."
59
+ "removed. Instead, you can consider using: "
60
+ "`log_metadata(metadata={...}, infer_model=True)` instead. For more "
61
+ "info: https://docs.zenml.io/how-to/model-management-metrics/track-metrics-metadata/attach-metadata-to-a-model"
60
62
  )
61
63
 
62
64
  from zenml import log_metadata
@@ -14,7 +14,7 @@
14
14
  """Models representing pipeline builds."""
15
15
 
16
16
  import json
17
- from typing import TYPE_CHECKING, Any, Dict, Optional, Union
17
+ from typing import TYPE_CHECKING, Any, ClassVar, Dict, List, Optional, Union
18
18
  from uuid import UUID
19
19
 
20
20
  from pydantic import Field
@@ -31,6 +31,8 @@ from zenml.models.v2.base.scoped import (
31
31
  from zenml.models.v2.misc.build_item import BuildItem
32
32
 
33
33
  if TYPE_CHECKING:
34
+ from sqlalchemy.sql.elements import ColumnElement
35
+
34
36
  from zenml.models.v2.core.pipeline import PipelineResponse
35
37
  from zenml.models.v2.core.stack import StackResponse
36
38
 
@@ -446,6 +448,11 @@ class PipelineBuildResponse(
446
448
  class PipelineBuildFilter(WorkspaceScopedFilter):
447
449
  """Model to enable advanced filtering of all pipeline builds."""
448
450
 
451
+ FILTER_EXCLUDE_FIELDS: ClassVar[List[str]] = [
452
+ *WorkspaceScopedFilter.FILTER_EXCLUDE_FIELDS,
453
+ "container_registry_id",
454
+ ]
455
+
449
456
  workspace_id: Optional[Union[UUID, str]] = Field(
450
457
  description="Workspace for this pipeline build.",
451
458
  default=None,
@@ -462,7 +469,12 @@ class PipelineBuildFilter(WorkspaceScopedFilter):
462
469
  union_mode="left_to_right",
463
470
  )
464
471
  stack_id: Optional[Union[UUID, str]] = Field(
465
- description="Stack used for the Pipeline Run",
472
+ description="Stack associated with the pipeline build.",
473
+ default=None,
474
+ union_mode="left_to_right",
475
+ )
476
+ container_registry_id: Optional[Union[UUID, str]] = Field(
477
+ description="Container registry associated with the pipeline build.",
466
478
  default=None,
467
479
  union_mode="left_to_right",
468
480
  )
@@ -484,3 +496,39 @@ class PipelineBuildFilter(WorkspaceScopedFilter):
484
496
  checksum: Optional[str] = Field(
485
497
  description="The build checksum.", default=None
486
498
  )
499
+ stack_checksum: Optional[str] = Field(
500
+ description="The stack checksum.", default=None
501
+ )
502
+
503
+ def get_custom_filters(
504
+ self,
505
+ ) -> List["ColumnElement[bool]"]:
506
+ """Get custom filters.
507
+
508
+ Returns:
509
+ A list of custom filters.
510
+ """
511
+ custom_filters = super().get_custom_filters()
512
+
513
+ from sqlmodel import and_
514
+
515
+ from zenml.enums import StackComponentType
516
+ from zenml.zen_stores.schemas import (
517
+ PipelineBuildSchema,
518
+ StackComponentSchema,
519
+ StackCompositionSchema,
520
+ StackSchema,
521
+ )
522
+
523
+ if self.container_registry_id:
524
+ container_registry_filter = and_(
525
+ PipelineBuildSchema.stack_id == StackSchema.id,
526
+ StackSchema.id == StackCompositionSchema.stack_id,
527
+ StackCompositionSchema.component_id == StackComponentSchema.id,
528
+ StackComponentSchema.type
529
+ == StackComponentType.CONTAINER_REGISTRY.value,
530
+ StackComponentSchema.id == self.container_registry_id,
531
+ )
532
+ custom_filters.append(container_registry_filter)
533
+
534
+ return custom_filters
@@ -249,6 +249,11 @@ def find_existing_build(
249
249
  client = Client()
250
250
  stack = client.active_stack
251
251
 
252
+ if not stack.container_registry:
253
+ # There can be no non-local builds that we can reuse if there is no
254
+ # container registry in the stack.
255
+ return None
256
+
252
257
  python_version_prefix = ".".join(platform.python_version_tuple()[:2])
253
258
  required_builds = stack.get_docker_builds(deployment=deployment)
254
259
 
@@ -263,6 +268,13 @@ def find_existing_build(
263
268
  sort_by="desc:created",
264
269
  size=1,
265
270
  stack_id=stack.id,
271
+ # Until we implement stack versioning, users can still update their
272
+ # stack to update/remove the container registry. In that case, we might
273
+ # try to pull an image from a container registry that we don't have
274
+ # access to. This is why we add an additional check for the container
275
+ # registry ID here. (This is still not perfect as users can update the
276
+ # container registry URI or config, but the best we can do)
277
+ container_registry_id=stack.container_registry.id,
266
278
  # The build is local and it's not clear whether the images
267
279
  # exist on the current machine or if they've been overwritten.
268
280
  # TODO: Should we support this by storing the unique Docker ID for
@@ -0,0 +1,37 @@
1
+ """Add step run unique constraint [26351d482b9e].
2
+
3
+ Revision ID: 26351d482b9e
4
+ Revises: 0.71.0
5
+ Create Date: 2024-12-03 11:46:57.541578
6
+
7
+ """
8
+
9
+ from alembic import op
10
+
11
+ # revision identifiers, used by Alembic.
12
+ revision = "26351d482b9e"
13
+ down_revision = "0.71.0"
14
+ branch_labels = None
15
+ depends_on = None
16
+
17
+
18
+ def upgrade() -> None:
19
+ """Upgrade database schema and/or data, creating a new revision."""
20
+ # ### commands auto generated by Alembic - please adjust! ###
21
+ with op.batch_alter_table("step_run", schema=None) as batch_op:
22
+ batch_op.create_unique_constraint(
23
+ "unique_step_name_for_pipeline_run", ["name", "pipeline_run_id"]
24
+ )
25
+
26
+ # ### end Alembic commands ###
27
+
28
+
29
+ def downgrade() -> None:
30
+ """Downgrade database schema and/or data back to the previous revision."""
31
+ # ### commands auto generated by Alembic - please adjust! ###
32
+ with op.batch_alter_table("step_run", schema=None) as batch_op:
33
+ batch_op.drop_constraint(
34
+ "unique_step_name_for_pipeline_run", type_="unique"
35
+ )
36
+
37
+ # ### end Alembic commands ###
@@ -19,7 +19,7 @@ from typing import TYPE_CHECKING, Any, Dict, List, Optional
19
19
  from uuid import UUID
20
20
 
21
21
  from pydantic import ConfigDict
22
- from sqlalchemy import TEXT, Column, String
22
+ from sqlalchemy import TEXT, Column, String, UniqueConstraint
23
23
  from sqlalchemy.dialects.mysql import MEDIUMTEXT
24
24
  from sqlmodel import Field, Relationship, SQLModel
25
25
 
@@ -67,6 +67,13 @@ class StepRunSchema(NamedSchema, RunMetadataInterface, table=True):
67
67
  """SQL Model for steps of pipeline runs."""
68
68
 
69
69
  __tablename__ = "step_run"
70
+ __table_args__ = (
71
+ UniqueConstraint(
72
+ "name",
73
+ "pipeline_run_id",
74
+ name="unique_step_name_for_pipeline_run",
75
+ ),
76
+ )
70
77
 
71
78
  # Fields
72
79
  start_time: Optional[datetime] = Field(nullable=True)
@@ -8167,25 +8167,17 @@ class SqlZenStore(BaseZenStore):
8167
8167
  f"with ID '{step_run.pipeline_run_id}' found."
8168
8168
  )
8169
8169
 
8170
- # Check if the step name already exists in the pipeline run
8171
- existing_step_run = session.exec(
8172
- select(StepRunSchema)
8173
- .where(StepRunSchema.name == step_run.name)
8174
- .where(
8175
- StepRunSchema.pipeline_run_id == step_run.pipeline_run_id
8176
- )
8177
- ).first()
8178
- if existing_step_run is not None:
8170
+ step_schema = StepRunSchema.from_request(step_run)
8171
+ session.add(step_schema)
8172
+ try:
8173
+ session.commit()
8174
+ except IntegrityError:
8179
8175
  raise EntityExistsError(
8180
8176
  f"Unable to create step `{step_run.name}`: A step with "
8181
8177
  f"this name already exists in the pipeline run with ID "
8182
8178
  f"'{step_run.pipeline_run_id}'."
8183
8179
  )
8184
8180
 
8185
- # Create the step
8186
- step_schema = StepRunSchema.from_request(step_run)
8187
- session.add(step_schema)
8188
-
8189
8181
  # Add logs entry for the step if exists
8190
8182
  if step_run.logs is not None:
8191
8183
  log_entry = LogsSchema(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zenml-nightly
3
- Version: 0.71.0.dev20241212
3
+ Version: 0.71.0.dev20241213
4
4
  Summary: ZenML: Write production-ready ML code.
5
5
  Home-page: https://zenml.io
6
6
  License: Apache-2.0
@@ -6,7 +6,7 @@ RELEASE_NOTES.md,sha256=vXcUYeQObADBY79bTVCn6mwBs-81i5iKWIq5BCTo_Fc,397266
6
6
  ROADMAP.md,sha256=hiLSmr16BH8Dfx7SaQM4JcXCGCVl6mFZPFAwJeDTrJU,407
7
7
  SECURITY.md,sha256=9DepA8y03yvCZLHEfcXLTDH4lUyKHquAdukBsccNN7c,682
8
8
  zenml/README.md,sha256=827dekbOWAs1BpW7VF1a4d7EbwPbjwccX-2zdXBENZo,1777
9
- zenml/VERSION,sha256=hcO-7vy2wbykGg_NIDA32jWzcZGl3XsYOOpYUHIVpAI,19
9
+ zenml/VERSION,sha256=XUMmiZhUb2cfzHXqCw-FQ6TIR0w0mQStNBXE28PNNyc,19
10
10
  zenml/__init__.py,sha256=SkMObQA41ajqdZqGErN00S1Vf3KAxpLvbZ-OBy5uYoo,2130
11
11
  zenml/actions/__init__.py,sha256=mrt6wPo73iKRxK754_NqsGyJ3buW7RnVeIGXr1xEw8Y,681
12
12
  zenml/actions/base_action.py,sha256=UcaHev6BTuLDwuswnyaPjdA8AgUqB5xPZ-lRtuvf2FU,25553
@@ -27,12 +27,12 @@ zenml/artifact_stores/__init__.py,sha256=9AvGSpHj8lN0Bs0RKOJtR9jWNZLYW1d8gbOft-h
27
27
  zenml/artifact_stores/base_artifact_store.py,sha256=jiOoRCYM9Pcll5NbdvhU5FJIG8b1f6j8nGMIO_BioMk,15539
28
28
  zenml/artifact_stores/local_artifact_store.py,sha256=pGgbc4o870XadSree9x7lK-Zzt11t02tz24QSt60Rmg,5883
29
29
  zenml/artifacts/__init__.py,sha256=knhroJ2h0uHBCGzAiBBGJEiuhEA3cwI6XYBRIyXdbkQ,613
30
- zenml/artifacts/artifact_config.py,sha256=kw0__dopeBLskBXLXJVYgbwz90vjtN1Nx3bIH3dwBmI,4371
30
+ zenml/artifacts/artifact_config.py,sha256=L-xx0UP6Tno9CYFNLgVBzmX_80ho6sMvK9XAw-kRKPU,4660
31
31
  zenml/artifacts/external_artifact.py,sha256=7nLANV0vsGC36H1s_B_awX4hnZgXHCGIscQ2SCxEw5c,4563
32
32
  zenml/artifacts/external_artifact_config.py,sha256=P172p0JOu8Xx1F8RCQut1dnRpt5lpWXGNqMbY-V90sI,3323
33
33
  zenml/artifacts/preexisting_data_materializer.py,sha256=dcahDcHUD3Lvn0-6zE2BG84bkyo_ydAgzBWxtbyJJZQ,3325
34
34
  zenml/artifacts/unmaterialized_artifact.py,sha256=JNPKq_sNifQx5wP8jEw7TGBEi26zwKirPGlWX9uxbJI,1300
35
- zenml/artifacts/utils.py,sha256=k4BNl03CQhvC4BMFeXk6TBcF47ca7AtQcVh6t_fn7xY,35132
35
+ zenml/artifacts/utils.py,sha256=jBbQxwgz_fFY60268SxGhcCLj30MQ7PovZAAzp9IEXw,35341
36
36
  zenml/cli/__init__.py,sha256=d239fhufu48sglF4_WJpcvfWTAjHblL9NR75yjQ7AXw,75666
37
37
  zenml/cli/annotator.py,sha256=tEdducGdFn57DFLJVZQ-MyXH1auTGFueRmDc78N-vPQ,6970
38
38
  zenml/cli/artifact.py,sha256=7lsAS52DroBTFkFWxkyb-lIDOGP5jPL_Se_RDG_2jgg,9564
@@ -62,7 +62,7 @@ zenml/cli/user_management.py,sha256=fTuRworQahst_j78qPYTtgciUeUOxwo7efiyPwmj2tI,
62
62
  zenml/cli/utils.py,sha256=hdd4c0IZSDWrt0_5PPTzDI2kNbeRFRFHOIpfYpHPzyY,87922
63
63
  zenml/cli/version.py,sha256=nm1iSU_1V6-MUwpMKeXcwFhLYGUMLswvQL67cEuCpxA,3635
64
64
  zenml/cli/workspace.py,sha256=bp02aXou574ToWPD8OAIB_cg3mvpE011H8aMKegT-nU,2970
65
- zenml/client.py,sha256=COmMNTzeERxDvKZ7AZjDO_vWTrUUNxKsuHYonhPXnn4,280363
65
+ zenml/client.py,sha256=rjhWvm3Xra-DJFyNDksND-_87XiQ86aQCjjDxuspu7g,280843
66
66
  zenml/client_lazy_loader.py,sha256=MOBgS1ITYqGvPUnWQ6edn9s8Hr_72YfWbwEIfHKUr9g,7104
67
67
  zenml/code_repositories/__init__.py,sha256=W5bDfzAG8OXIKZSV1L-VHuzMcSCYa9qzTdPb3jqfyYw,920
68
68
  zenml/code_repositories/base_code_repository.py,sha256=_DbxIBxvJlN0PFhST0vlTIQ26Q6V3Nar0kYdeGaJrk8,4386
@@ -613,7 +613,7 @@ zenml/metadata/metadata_types.py,sha256=ts1EhF2qGZb8siKv1nkPSeFeyR2kbiIODkpk-hyo
613
613
  zenml/model/__init__.py,sha256=bFPHnWCgAGAjUPCmODHUmwbB0KGljNSEik857Yi-QX0,673
614
614
  zenml/model/lazy_load.py,sha256=nnu37QaIPU0peqVCEwG3k37LJe_D1i6RCs_8xoId6yk,4583
615
615
  zenml/model/model.py,sha256=JrEeJC3M15FKwG_1s3cFafqiuVBAtHs7Z1_hiwv7UKc,27598
616
- zenml/model/utils.py,sha256=lo1jG6bHDoo-mcfX9Fck2O70PVwhRQnFvkpeHyRC-bw,5816
616
+ zenml/model/utils.py,sha256=R7OuuC-wI5331reaqSg8AkpfRNIPSWzGHfL6w9Eyadc,6013
617
617
  zenml/model_deployers/__init__.py,sha256=oVBLtTfrNenl5OI1iqtQUvJ0vpocRVUN_HIt8qpoZmY,1730
618
618
  zenml/model_deployers/base_model_deployer.py,sha256=Xg5lxBFYM41vqxQhaB54Dxu_zLCyPDgqwrTyMcAxiS4,24609
619
619
  zenml/model_registries/__init__.py,sha256=wA9Vzo0w_e9zuXOVURB9w8oMLSnTaimXcxg_Nb7O3b0,1238
@@ -646,7 +646,7 @@ zenml/models/v2/core/model_version.py,sha256=VuM8Hm1HJ4ZZjK51dfrq70e7ntbaUOI_ryx
646
646
  zenml/models/v2/core/model_version_artifact.py,sha256=5uE-uCM7vvdL02jbHXVI_XNO0K01BkqyYiN5zWE8bew,8867
647
647
  zenml/models/v2/core/model_version_pipeline_run.py,sha256=m7a4jPkQdr8o7R1yGZ4G2G9wtlfOWwXrbRlE9XMapDo,6782
648
648
  zenml/models/v2/core/pipeline.py,sha256=Xo0RM4sxMqBRjXAwLybiWGeuqQRm64fcGuy8I1PI3SE,11594
649
- zenml/models/v2/core/pipeline_build.py,sha256=-Y-9V1pcHq-jI2VPEyT-Chw5hGQMljvbcDF8s2-wiko,14875
649
+ zenml/models/v2/core/pipeline_build.py,sha256=h8QJh2hbuqfBQRtLluupqd8t3971oDIjsC1ySPYIMog,16497
650
650
  zenml/models/v2/core/pipeline_deployment.py,sha256=J10yhxqzSPXqTQZZPIN1zhe-yrZ5cEVvilkXBRiZwjg,12451
651
651
  zenml/models/v2/core/pipeline_run.py,sha256=SdAZqgonbijv6t8Qq62Iw37MX6M79ou4zreqGsw2nHc,30896
652
652
  zenml/models/v2/core/run_metadata.py,sha256=YDiPVRzTUMVHqW4T_Ke4GJMdscp0aS_g8I4P8n70szc,2436
@@ -695,7 +695,7 @@ zenml/orchestrators/topsort.py,sha256=D8evz3X47zwpXd90NMLsJD-_uCeXtV6ClzNfDUrq7c
695
695
  zenml/orchestrators/utils.py,sha256=faRm86Ed_KVFBYbiMriSM0z3NwsydJWDvLYX-7DSrkc,13153
696
696
  zenml/orchestrators/wheeled_orchestrator.py,sha256=eOnMcnd3sCzfhA2l6qRAzF0rOXzaojbjvvYvTkqixQo,4791
697
697
  zenml/pipelines/__init__.py,sha256=hpIX7hN8jsQRHT5R-xSXZL88qrHwkmrvGLQeu1rWt4o,873
698
- zenml/pipelines/build_utils.py,sha256=Az-zz56WQqD9dUrZ0iQDDRok-GNeglmXQxv40LoiyQk,25440
698
+ zenml/pipelines/build_utils.py,sha256=Jas5D8QnjXzizMtcCrJY4dcddeix7QFXbhoY25R47M4,26133
699
699
  zenml/pipelines/pipeline_context.py,sha256=V_p-F9W7cBIlTjS0iv5-uJYMzaOj8bAUkc_uNhQgBms,3579
700
700
  zenml/pipelines/pipeline_decorator.py,sha256=FIbflYOMavbuyGmqsx3F5zZgg0oXMTi1eAcGXciljOs,4293
701
701
  zenml/pipelines/pipeline_definition.py,sha256=nSnW6_swZy3aAp0FSInjzyqphYgnFq2_dRw_U4e_IV4,55924
@@ -1167,6 +1167,7 @@ zenml/zen_stores/migrations/versions/1d74e596abb8_add_run_once_start_time_to_sch
1167
1167
  zenml/zen_stores/migrations/versions/1d8f30c54477_migrate_to_new_.py,sha256=ICZLr5MsjGqOnMWwG8W6ixKq3OX2rfs3XkXRzHhSUnA,4200
1168
1168
  zenml/zen_stores/migrations/versions/248dfd320b68_update_size_of_flavor_config_schema.py,sha256=rdHrVpqtRtVPzOUawWXx7SrBfv8tog-uXJQr_k4r4_0,1229
1169
1169
  zenml/zen_stores/migrations/versions/25155145c545_separate_actions_and_triggers.py,sha256=3BFbMZCDWVWjOaLqsmKGMZ24Z2oM-45edSagxsQnSh0,7582
1170
+ zenml/zen_stores/migrations/versions/26351d482b9e_add_step_run_unique_constraint.py,sha256=8R2Zhgjig13c8kqbW14pRcA_sgjE65j2UTitlAqK-mg,1075
1170
1171
  zenml/zen_stores/migrations/versions/26b776ad583e_redesign_artifacts.py,sha256=X4o8IIdtVIKIVziETnJIKlEeBLioTrnkjv7yKd9uybc,6250
1171
1172
  zenml/zen_stores/migrations/versions/2d201872e23c_remove_db_dependency_loop.py,sha256=8dP2C7yTnHlEWYzcuFpcC2bWf_CCMeinPIwsWSbLXjg,727
1172
1173
  zenml/zen_stores/migrations/versions/37835ce041d2_optimizing_database.py,sha256=lHh9USrLJeb0gIWDCmusYUrk-gGwRm-75K-QIDCoewY,9140
@@ -1270,7 +1271,7 @@ zenml/zen_stores/schemas/server_settings_schemas.py,sha256=bwrmK4Aj9_G13-L5vxVf5
1270
1271
  zenml/zen_stores/schemas/service_connector_schemas.py,sha256=yDDpgRRkghlrzNS-fIGCmffZoSuvi_w0ItIVu1asHU8,10061
1271
1272
  zenml/zen_stores/schemas/service_schemas.py,sha256=YNDCCfmHTNw3uA_48RJ2xbShJN30zSW_IEMw_4Jt2CQ,9609
1272
1273
  zenml/zen_stores/schemas/stack_schemas.py,sha256=PakmqLso3c-xS4dHtDm5GteaZt1mcap_12i7uSaMWFU,5579
1273
- zenml/zen_stores/schemas/step_run_schemas.py,sha256=WS4gF6h709D73UIRXDcYm2_jNvTIgnU35-S9cWSmV_k,16219
1274
+ zenml/zen_stores/schemas/step_run_schemas.py,sha256=PKITQ6ASuPMoYmQS30xuSEVrsiVwirYPCSF4AnaVEog,16408
1274
1275
  zenml/zen_stores/schemas/tag_schemas.py,sha256=EckggyFUTO71aWXTktVJWXyaycdtuq-PGkX1u71tolY,6904
1275
1276
  zenml/zen_stores/schemas/trigger_schemas.py,sha256=yjfQilHGYYe8f3JzEsB0HapX3vg4nXr8VljzLyRAckI,10573
1276
1277
  zenml/zen_stores/schemas/user_schemas.py,sha256=v2ryKyohUywOMy3kW24lFmNPjq3-RCoZVriXDrjgb8c,10813
@@ -1285,11 +1286,11 @@ zenml/zen_stores/secrets_stores/hashicorp_secrets_store.py,sha256=NfW1EHIA99lseb
1285
1286
  zenml/zen_stores/secrets_stores/secrets_store_interface.py,sha256=Q2Jbnt2Pp7NGlR-u1YBfRZV2g8su2Fd0ArBMdksAE-Q,2819
1286
1287
  zenml/zen_stores/secrets_stores/service_connector_secrets_store.py,sha256=kPYX-Z_OOhZCI1CP77ncfV7IsV4e8brklnTXmKxZYNc,7078
1287
1288
  zenml/zen_stores/secrets_stores/sql_secrets_store.py,sha256=Bq1djrUP9saoD7vECjS7-TlA_7sjJGgw1talri4spjU,8656
1288
- zenml/zen_stores/sql_zen_store.py,sha256=UG37nByum6t-YmLF4KRPJFpLvVl-JMRyPYtDXO1uvE8,408356
1289
+ zenml/zen_stores/sql_zen_store.py,sha256=q9Iy-tgji7om57yrzQAOVWDOTlrO1AqrlcOBr3Z1qCY,408006
1289
1290
  zenml/zen_stores/template_utils.py,sha256=EKYBgmDLTS_PSMWaIO5yvHPLiQvMqHcsAe6NUCrv-i4,9068
1290
1291
  zenml/zen_stores/zen_store_interface.py,sha256=vf2gKBWfUUPtcGZC35oQB6pPNVzWVyQC8nWxVLjfrxM,92692
1291
- zenml_nightly-0.71.0.dev20241212.dist-info/LICENSE,sha256=wbnfEnXnafPbqwANHkV6LUsPKOtdpsd-SNw37rogLtc,11359
1292
- zenml_nightly-0.71.0.dev20241212.dist-info/METADATA,sha256=5OIny6GUTRK9z6aSwZZhphvMnC2jGu7ptiMkQdBvJg4,21215
1293
- zenml_nightly-0.71.0.dev20241212.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
1294
- zenml_nightly-0.71.0.dev20241212.dist-info/entry_points.txt,sha256=QK3ETQE0YswAM2mWypNMOv8TLtr7EjnqAFq1br_jEFE,43
1295
- zenml_nightly-0.71.0.dev20241212.dist-info/RECORD,,
1292
+ zenml_nightly-0.71.0.dev20241213.dist-info/LICENSE,sha256=wbnfEnXnafPbqwANHkV6LUsPKOtdpsd-SNw37rogLtc,11359
1293
+ zenml_nightly-0.71.0.dev20241213.dist-info/METADATA,sha256=dd1E50MYM4eavuqFdTEn82XlLxrDs44X228GjCfBXr8,21215
1294
+ zenml_nightly-0.71.0.dev20241213.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
1295
+ zenml_nightly-0.71.0.dev20241213.dist-info/entry_points.txt,sha256=QK3ETQE0YswAM2mWypNMOv8TLtr7EjnqAFq1br_jEFE,43
1296
+ zenml_nightly-0.71.0.dev20241213.dist-info/RECORD,,