zenml-nightly 0.83.1.dev20250703__py3-none-any.whl → 0.83.1.dev20250705__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.83.1.dev20250703
1
+ 0.83.1.dev20250705
zenml/config/compiler.py CHANGED
@@ -556,7 +556,16 @@ class Compiler:
556
556
 
557
557
  for name, step in steps.items():
558
558
  step_operator = step.config.step_operator
559
- if step_operator and step_operator not in available_step_operators:
559
+ if step_operator is True:
560
+ if not available_step_operators:
561
+ raise StackValidationError(
562
+ f"Step `{name}` requires a step operator, but no step "
563
+ f"operators are configured in the stack '{stack.name}'."
564
+ )
565
+ elif (
566
+ isinstance(step_operator, str)
567
+ and step_operator not in available_step_operators
568
+ ):
560
569
  raise StackValidationError(
561
570
  f"Step `{name}` requires step operator "
562
571
  f"'{step_operator}' which is not configured in "
@@ -565,8 +574,15 @@ class Compiler:
565
574
  )
566
575
 
567
576
  experiment_tracker = step.config.experiment_tracker
568
- if (
569
- experiment_tracker
577
+ if experiment_tracker is True:
578
+ if not available_experiment_trackers:
579
+ raise StackValidationError(
580
+ f"Step `{name}` requires an experiment tracker, but no "
581
+ f"experiment trackers are configured in the stack "
582
+ f"'{stack.name}'."
583
+ )
584
+ elif (
585
+ isinstance(experiment_tracker, str)
570
586
  and experiment_tracker not in available_experiment_trackers
571
587
  ):
572
588
  raise StackValidationError(
@@ -145,8 +145,8 @@ class StepConfigurationUpdate(StrictBaseModel):
145
145
  enable_artifact_metadata: Optional[bool] = None
146
146
  enable_artifact_visualization: Optional[bool] = None
147
147
  enable_step_logs: Optional[bool] = None
148
- step_operator: Optional[str] = None
149
- experiment_tracker: Optional[str] = None
148
+ step_operator: Optional[Union[bool, str]] = None
149
+ experiment_tracker: Optional[Union[bool, str]] = None
150
150
  parameters: Dict[str, Any] = {}
151
151
  settings: Dict[str, SerializeAsAny[BaseSettings]] = {}
152
152
  extra: Dict[str, Any] = {}
@@ -158,6 +158,38 @@ class StepConfigurationUpdate(StrictBaseModel):
158
158
 
159
159
  outputs: Mapping[str, PartialArtifactConfiguration] = {}
160
160
 
161
+ def uses_step_operator(self, name: str) -> bool:
162
+ """Checks if the step configuration uses the given step operator.
163
+
164
+ Args:
165
+ name: The name of the step operator.
166
+
167
+ Returns:
168
+ If the step configuration uses the given step operator.
169
+ """
170
+ if self.step_operator is True:
171
+ return True
172
+ elif isinstance(self.step_operator, str):
173
+ return self.step_operator == name
174
+ else:
175
+ return False
176
+
177
+ def uses_experiment_tracker(self, name: str) -> bool:
178
+ """Checks if the step configuration uses the given experiment tracker.
179
+
180
+ Args:
181
+ name: The name of the experiment tracker.
182
+
183
+ Returns:
184
+ If the step configuration uses the given experiment tracker.
185
+ """
186
+ if self.experiment_tracker is True:
187
+ return True
188
+ elif isinstance(self.experiment_tracker, str):
189
+ return self.experiment_tracker == name
190
+ else:
191
+ return False
192
+
161
193
 
162
194
  class PartialStepConfiguration(StepConfigurationUpdate):
163
195
  """Class representing a partial step configuration."""
@@ -152,7 +152,7 @@ class SagemakerStepOperator(BaseStepOperator):
152
152
  """
153
153
  builds = []
154
154
  for step_name, step in deployment.step_configurations.items():
155
- if step.config.step_operator == self.name:
155
+ if step.config.uses_step_operator(self.name):
156
156
  build = BuildConfiguration(
157
157
  key=SAGEMAKER_DOCKER_IMAGE_KEY,
158
158
  settings=step.config.docker_settings,
@@ -149,7 +149,7 @@ class AzureMLStepOperator(BaseStepOperator):
149
149
  """
150
150
  builds = []
151
151
  for step_name, step in deployment.step_configurations.items():
152
- if step.config.step_operator == self.name:
152
+ if step.config.uses_step_operator(self.name):
153
153
  build = BuildConfiguration(
154
154
  key=AZUREML_STEP_OPERATOR_DOCKER_IMAGE_KEY,
155
155
  settings=step.config.docker_settings,
@@ -161,7 +161,7 @@ class VertexStepOperator(BaseStepOperator, GoogleCredentialsMixin):
161
161
  """
162
162
  builds = []
163
163
  for step_name, step in deployment.step_configurations.items():
164
- if step.config.step_operator == self.name:
164
+ if step.config.uses_step_operator(self.name):
165
165
  build = BuildConfiguration(
166
166
  key=VERTEX_DOCKER_IMAGE_KEY,
167
167
  settings=step.config.docker_settings,
@@ -69,6 +69,8 @@ class KubernetesOrchestratorSettings(BaseSettings):
69
69
  scheduling a pipeline.
70
70
  prevent_orchestrator_pod_caching: If `True`, the orchestrator pod will
71
71
  not try to compute cached steps before starting the step pods.
72
+ always_build_pipeline_image: If `True`, the orchestrator will always
73
+ build the pipeline image, even if all steps have a custom build.
72
74
  pod_stop_grace_period: When stopping a pipeline run, the amount of
73
75
  seconds to wait for a step pod to shutdown gracefully.
74
76
  """
@@ -90,6 +92,7 @@ class KubernetesOrchestratorSettings(BaseSettings):
90
92
  failed_jobs_history_limit: Optional[NonNegativeInt] = None
91
93
  ttl_seconds_after_finished: Optional[NonNegativeInt] = None
92
94
  prevent_orchestrator_pod_caching: bool = False
95
+ always_build_pipeline_image: bool = False
93
96
  pod_stop_grace_period: PositiveInt = 30
94
97
 
95
98
 
@@ -70,7 +70,11 @@ from zenml.orchestrators.utils import get_orchestrator_run_name
70
70
  from zenml.stack import StackValidator
71
71
 
72
72
  if TYPE_CHECKING:
73
- from zenml.models import PipelineDeploymentResponse, PipelineRunResponse
73
+ from zenml.models import (
74
+ PipelineDeploymentBase,
75
+ PipelineDeploymentResponse,
76
+ PipelineRunResponse,
77
+ )
74
78
  from zenml.stack import Stack
75
79
 
76
80
  logger = get_logger(__name__)
@@ -84,6 +88,22 @@ class KubernetesOrchestrator(ContainerizedOrchestrator):
84
88
 
85
89
  _k8s_client: Optional[k8s_client.ApiClient] = None
86
90
 
91
+ def should_build_pipeline_image(
92
+ self, deployment: "PipelineDeploymentBase"
93
+ ) -> bool:
94
+ """Whether to always build the pipeline image.
95
+
96
+ Args:
97
+ deployment: The pipeline deployment.
98
+
99
+ Returns:
100
+ Whether to always build the pipeline image.
101
+ """
102
+ settings = cast(
103
+ KubernetesOrchestratorSettings, self.get_settings(deployment)
104
+ )
105
+ return settings.always_build_pipeline_image
106
+
87
107
  def get_kube_client(
88
108
  self, incluster: Optional[bool] = None
89
109
  ) -> k8s_client.ApiClient:
@@ -120,7 +120,7 @@ class KubernetesStepOperator(BaseStepOperator):
120
120
  """
121
121
  builds = []
122
122
  for step_name, step in deployment.step_configurations.items():
123
- if step.config.step_operator == self.name:
123
+ if step.config.uses_step_operator(self.name):
124
124
  build = BuildConfiguration(
125
125
  key=KUBERNETES_STEP_OPERATOR_DOCKER_IMAGE_KEY,
126
126
  settings=step.config.docker_settings,
@@ -139,7 +139,7 @@ class ModalStepOperator(BaseStepOperator):
139
139
  """
140
140
  builds = []
141
141
  for step_name, step in deployment.step_configurations.items():
142
- if step.config.step_operator == self.name:
142
+ if step.config.uses_step_operator(self.name):
143
143
  build = BuildConfiguration(
144
144
  key=MODAL_STEP_OPERATOR_DOCKER_IMAGE_KEY,
145
145
  settings=step.config.docker_settings,
@@ -124,7 +124,7 @@ class KubernetesSparkStepOperator(SparkStepOperator):
124
124
  builds = []
125
125
  extra_files = {ENTRYPOINT_NAME: LOCAL_ENTRYPOINT}
126
126
  for step_name, step in deployment.step_configurations.items():
127
- if step.config.step_operator == self.name:
127
+ if step.config.uses_step_operator(self.name):
128
128
  build = BuildConfiguration(
129
129
  key=SPARK_DOCKER_IMAGE_KEY,
130
130
  settings=step.config.docker_settings,
@@ -53,6 +53,19 @@ class ContainerizedOrchestrator(BaseOrchestrator, ABC):
53
53
  component_key=ORCHESTRATOR_DOCKER_IMAGE_KEY, step=step_name
54
54
  )
55
55
 
56
+ def should_build_pipeline_image(
57
+ self, deployment: "PipelineDeploymentBase"
58
+ ) -> bool:
59
+ """Whether to build the pipeline image.
60
+
61
+ Args:
62
+ deployment: The pipeline deployment.
63
+
64
+ Returns:
65
+ Whether to build the pipeline image.
66
+ """
67
+ return False
68
+
56
69
  def get_docker_builds(
57
70
  self, deployment: "PipelineDeploymentBase"
58
71
  ) -> List["BuildConfiguration"]:
@@ -87,4 +100,13 @@ class ContainerizedOrchestrator(BaseOrchestrator, ABC):
87
100
  builds.append(pipeline_build)
88
101
  included_pipeline_build = True
89
102
 
103
+ if not included_pipeline_build and self.should_build_pipeline_image(
104
+ deployment
105
+ ):
106
+ pipeline_build = BuildConfiguration(
107
+ key=ORCHESTRATOR_DOCKER_IMAGE_KEY,
108
+ settings=pipeline_settings,
109
+ )
110
+ builds.append(pipeline_build)
111
+
90
112
  return builds
@@ -55,7 +55,7 @@ logger = get_logger(__name__)
55
55
 
56
56
 
57
57
  def _get_step_operator(
58
- stack: "Stack", step_operator_name: str
58
+ stack: "Stack", step_operator_name: Optional[str]
59
59
  ) -> "BaseStepOperator":
60
60
  """Fetches the step operator from the stack.
61
61
 
@@ -78,7 +78,7 @@ def _get_step_operator(
78
78
  f"No step operator specified for active stack '{stack.name}'."
79
79
  )
80
80
 
81
- if step_operator_name != step_operator.name:
81
+ if step_operator_name and step_operator_name != step_operator.name:
82
82
  raise RuntimeError(
83
83
  f"No step operator named '{step_operator_name}' in active "
84
84
  f"stack '{stack.name}'."
@@ -449,8 +449,12 @@ class StepLauncher:
449
449
  start_time = time.time()
450
450
  try:
451
451
  if self._step.config.step_operator:
452
+ step_operator_name = None
453
+ if isinstance(self._step.config.step_operator, str):
454
+ step_operator_name = self._step.config.step_operator
455
+
452
456
  self._run_step_with_step_operator(
453
- step_operator_name=self._step.config.step_operator,
457
+ step_operator_name=step_operator_name,
454
458
  step_run_info=step_run_info,
455
459
  last_retry=last_retry,
456
460
  )
@@ -477,7 +481,7 @@ class StepLauncher:
477
481
 
478
482
  def _run_step_with_step_operator(
479
483
  self,
480
- step_operator_name: str,
484
+ step_operator_name: Optional[str],
481
485
  step_run_info: StepRunInfo,
482
486
  last_retry: bool,
483
487
  ) -> None:
zenml/stack/stack.py CHANGED
@@ -849,10 +849,10 @@ class Stack:
849
849
  If the component is used in this step.
850
850
  """
851
851
  if component.type == StackComponentType.STEP_OPERATOR:
852
- return component.name == step_config.step_operator
852
+ return step_config.uses_step_operator(component.name)
853
853
 
854
854
  if component.type == StackComponentType.EXPERIMENT_TRACKER:
855
- return component.name == step_config.experiment_tracker
855
+ return step_config.uses_experiment_tracker(component.name)
856
856
 
857
857
  return True
858
858
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: zenml-nightly
3
- Version: 0.83.1.dev20250703
3
+ Version: 0.83.1.dev20250705
4
4
  Summary: ZenML: Write production-ready ML code.
5
5
  License: Apache-2.0
6
6
  Keywords: machine learning,production,pipeline,mlops,devops
@@ -1,5 +1,5 @@
1
1
  zenml/README.md,sha256=827dekbOWAs1BpW7VF1a4d7EbwPbjwccX-2zdXBENZo,1777
2
- zenml/VERSION,sha256=jhQnmP_QxnRCcuBpJnLVlMLCnvjvQ22fXeKfI8oOrhU,19
2
+ zenml/VERSION,sha256=jBAh8lXuRDVisN_GayubrXznIE24pm6jFhk1SjcoxU0,19
3
3
  zenml/__init__.py,sha256=r7JUg2SVDf_dPhS7iU6vudKusEqK4ics7_jFMZhq0o4,2731
4
4
  zenml/actions/__init__.py,sha256=mrt6wPo73iKRxK754_NqsGyJ3buW7RnVeIGXr1xEw8Y,681
5
5
  zenml/actions/base_action.py,sha256=UcaHev6BTuLDwuswnyaPjdA8AgUqB5xPZ-lRtuvf2FU,25553
@@ -65,7 +65,7 @@ zenml/code_repositories/local_repository_context.py,sha256=1VyiYkJBDVg0iGusgRQDT
65
65
  zenml/config/__init__.py,sha256=NIMS7QQo3-uVkNlzPvR5FbtgPdRibF2xFJB7Vr0fhCM,1826
66
66
  zenml/config/base_settings.py,sha256=itoLqc1cOwEYhgSGdZmSKSaBevQkvYH7NQh7PUamazc,1700
67
67
  zenml/config/build_configuration.py,sha256=jGGNwP0Cb7a80JXArNxDgxzxl9ytSZRtv-WW7_psLbM,6870
68
- zenml/config/compiler.py,sha256=dVQ2FfliNxt93H2SYwlSOVyh-5dmdMd7abbIVRuIn3I,23023
68
+ zenml/config/compiler.py,sha256=xJoJFDZ-G1M5Lqq8O7dHjm3e3KcV8Iaefuf-rc4I7QI,23794
69
69
  zenml/config/constants.py,sha256=QvSgMwXWxtspcJ45CrFDP1ZY3w6gS3bIhXLOtIDAbZA,713
70
70
  zenml/config/docker_settings.py,sha256=xZvoeC6v6RG_5MFK_RgdTgrkOLu-QT6frY4SGQNZUTo,18460
71
71
  zenml/config/global_config.py,sha256=59orl6xp4moxSo2Q8tXtDfpIBX4AxJ9FHcm8s2VHyWw,29712
@@ -80,7 +80,7 @@ zenml/config/secrets_store_config.py,sha256=y05zqyQhr_DGrs3IfBGa_FRoZ043hSYRT5wz
80
80
  zenml/config/server_config.py,sha256=HNHODfojAstBWMxcV5OjxcXSh8Oy9k-_0J5la60fqzQ,32616
81
81
  zenml/config/settings_resolver.py,sha256=PR9BRm_x1dy7nVKa9UqpeFdck8IEATSW6aWT8FKd-DI,4278
82
82
  zenml/config/source.py,sha256=RzUw8lin8QztUjz-AdoCzVM5Om_cSSPuroaPx-qAO4w,8226
83
- zenml/config/step_configurations.py,sha256=5iizSZNU0d2dpeHZnr0ODpaZ1Fxc2x5e3wa9uOmQzlY,13614
83
+ zenml/config/step_configurations.py,sha256=fcUDGezCdbUYkz2uHuXsuSJTtge_V7XNUvZTRLAiJO8,14651
84
84
  zenml/config/step_run_info.py,sha256=KiVRSTtKmZ1GbvseDTap2imr7XwMHD3jSFVpyLNEK1I,1888
85
85
  zenml/config/store_config.py,sha256=Cla5p5dTB6nNlo8_OZDs9hod5hspi64vxwtZj882XgU,3559
86
86
  zenml/config/strict_base_model.py,sha256=t_ULrtJF2eW7TgyYBRobl1fscwwIZXATYky8ER97ev4,860
@@ -151,7 +151,7 @@ zenml/integrations/aws/orchestrators/sagemaker_orchestrator_entrypoint_config.py
151
151
  zenml/integrations/aws/service_connectors/__init__.py,sha256=w2Md40yG89PwmU9eBceh6dGy3XYZ3MKusNAZ51sGOgE,783
152
152
  zenml/integrations/aws/service_connectors/aws_service_connector.py,sha256=7H69IoOYmyn5QcXEfL1-OmC0UaQ54TfNNhv2t8A6Daw,92107
153
153
  zenml/integrations/aws/step_operators/__init__.py,sha256=HK5oIqLixYKUKoiN4LnqTyGjAZJUdUqWYGqJhFSWyo0,817
154
- zenml/integrations/aws/step_operators/sagemaker_step_operator.py,sha256=1RCHSzHcgTldChlk4c8iCrKTeeHrdQlQUJpMepk9ShE,10384
154
+ zenml/integrations/aws/step_operators/sagemaker_step_operator.py,sha256=16y1av9ws_4FEGxxFqNSXOJXHDZilbgNWwBhv_ZRur4,10387
155
155
  zenml/integrations/aws/step_operators/sagemaker_step_operator_entrypoint_config.py,sha256=2cXroe6-bXyHVkO5yPnZagNpqx6MrMDcvuvNr8J2j-A,1581
156
156
  zenml/integrations/azure/__init__.py,sha256=iJ8smVn76fIuOeeJV5txrBfBS0PyRKUNt9aVkL3Ucic,3103
157
157
  zenml/integrations/azure/artifact_stores/__init__.py,sha256=dlIwbpgjE0Hy4rhMbelNJHVKm4t8tj_hRu9mQ_cEIAg,820
@@ -168,7 +168,7 @@ zenml/integrations/azure/orchestrators/azureml_orchestrator_entrypoint_config.py
168
168
  zenml/integrations/azure/service_connectors/__init__.py,sha256=yMz6bTCtIZqZwfEM6h7-PSWsd_DB8l0OD9z_bdzomZw,793
169
169
  zenml/integrations/azure/service_connectors/azure_service_connector.py,sha256=4Qma8FyKpZ5GujIa-RrGU2Lh80j9GHEyBwwDfyK7aAI,81344
170
170
  zenml/integrations/azure/step_operators/__init__.py,sha256=fV4_nAO0cH53x6_-F8-CbDEZwb_Vv64oq1r0-vtigEU,819
171
- zenml/integrations/azure/step_operators/azureml_step_operator.py,sha256=cmDLcxVd4lw_C2hz-_z50i9tcGgGbNtrBeL5FBQ3HTE,7394
171
+ zenml/integrations/azure/step_operators/azureml_step_operator.py,sha256=bi6cl1PimxZF6D7PVZepC6OqHdGHTcsNGBe0njuiBCM,7397
172
172
  zenml/integrations/bentoml/__init__.py,sha256=vOlziqJ038cS7_ZtbGojWpefdQDigq8mLDALVC_lgbY,1835
173
173
  zenml/integrations/bentoml/constants.py,sha256=vZXwQbLgF4Vi2F_DICZlNnDcUa5FMejLZkjc0U1RpYo,788
174
174
  zenml/integrations/bentoml/flavors/__init__.py,sha256=7hzxI2zleFI9cplVJXn63iwL3s4XHeH1iup1Xc_dvIY,877
@@ -273,7 +273,7 @@ zenml/integrations/gcp/orchestrators/vertex_orchestrator.py,sha256=IJwDUJsFrhhG9
273
273
  zenml/integrations/gcp/service_connectors/__init__.py,sha256=fdydawaor8KAtMYvRZieiTuA1i5QATxXXgI-yV1lsn8,788
274
274
  zenml/integrations/gcp/service_connectors/gcp_service_connector.py,sha256=9u-vEHbmSyN5IGwYI8v39TcFZg5ObgkxlbwSPz-e5zE,95018
275
275
  zenml/integrations/gcp/step_operators/__init__.py,sha256=iPkob2LtPIQ-OHszhbNz_ojhoovL6SprmTx37It4EJ8,808
276
- zenml/integrations/gcp/step_operators/vertex_step_operator.py,sha256=X8CCniyAo7NHiy3Mv_YSKQ4Hw3UYMXob6B3uWKsCJ-0,13567
276
+ zenml/integrations/gcp/step_operators/vertex_step_operator.py,sha256=lV7IKfH02q8362ISeJxjir397Akv2xoEy22hvCyjayI,13570
277
277
  zenml/integrations/gcp/vertex_custom_job_parameters.py,sha256=B5RLkw7KDOi4ZfWHFnC6TGLphXMzToMjROxszCEAS9c,3676
278
278
  zenml/integrations/github/__init__.py,sha256=movoEHoX8SpY0t6mBS5D64enxG6lPkpYJIEQ9jElHLA,1427
279
279
  zenml/integrations/github/code_repositories/__init__.py,sha256=ub_hSE2ks2mZB1aeHRjQYz7QIRQIgOw2s080IIqJaGs,817
@@ -334,11 +334,11 @@ zenml/integrations/kubeflow/orchestrators/kubeflow_orchestrator.py,sha256=lPQSQn
334
334
  zenml/integrations/kubeflow/orchestrators/local_deployment_utils.py,sha256=qszoOdvBpgIp40XkncphXAr9dRKnyZzGiz2mJ56bYmw,15448
335
335
  zenml/integrations/kubernetes/__init__.py,sha256=k1bfrdI1u5RBnAh7yT4w-m-4SWgZ7b4L5uu7dPRc0SI,1809
336
336
  zenml/integrations/kubernetes/flavors/__init__.py,sha256=a5gU45qCj3FkLwl_uVjlIkL_2F5DHk-w1gdcZrvVjBI,1266
337
- zenml/integrations/kubernetes/flavors/kubernetes_orchestrator_flavor.py,sha256=9euKvhBLtzKngvp1WQbz7n0FGwZ9bMxRBxnSv15hQi0,10606
337
+ zenml/integrations/kubernetes/flavors/kubernetes_orchestrator_flavor.py,sha256=LDqxHiRtsbRdzskem9nkWC9wMbcg1ibNzG29_QydLB4,10806
338
338
  zenml/integrations/kubernetes/flavors/kubernetes_step_operator_flavor.py,sha256=xFO7cSusji-mgbRrt4mU29gdyC9iEjEHKtomdFLp9mM,6265
339
339
  zenml/integrations/kubernetes/orchestrators/__init__.py,sha256=TJID3OTieZBox36WpQpzD0jdVRA_aZVcs_bNtfXS8ik,811
340
340
  zenml/integrations/kubernetes/orchestrators/kube_utils.py,sha256=N66GH5ac22Xm_A3nr162kbFBhMeypSFaQjOQRHlGXIQ,18942
341
- zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator.py,sha256=73gTCV3Jo_i-4EdMaHqr8RhXGzxJJ3uFrWpyKtXPaOM,31130
341
+ zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator.py,sha256=Om5fJ0U23TosOpr3QVVqrJP8KECpiVJcW_70ZndQkYQ,31657
342
342
  zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator_entrypoint.py,sha256=74364kxOpI2hlEnnbnqMVq0UaaQnj_ozfkmB1Wst-gw,14815
343
343
  zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator_entrypoint_configuration.py,sha256=QOwQnWCfB-t_BQ2eOZN0SakurGUd0GTMCSdUlREhk6I,2324
344
344
  zenml/integrations/kubernetes/orchestrators/manifest_utils.py,sha256=nw89WCsVDn9W-fmhKRjzzW1iOwlVn434IbcIsLPsfjw,14170
@@ -347,7 +347,7 @@ zenml/integrations/kubernetes/serialization_utils.py,sha256=cPSe4szdBLzDnUZT9nQc
347
347
  zenml/integrations/kubernetes/service_connectors/__init__.py,sha256=Uf6zlHIapYrRDl3xOPWQ2jA7jt85SXx1U7DmSxzxTvQ,818
348
348
  zenml/integrations/kubernetes/service_connectors/kubernetes_service_connector.py,sha256=Cv4tiVxoQOz9ex0lf3JdJrooEkgMwfDfwt5GOeNRpQU,19669
349
349
  zenml/integrations/kubernetes/step_operators/__init__.py,sha256=40utDPYAezxHsFgO0UUIT_6XpCDzDapje6OH951XsTs,806
350
- zenml/integrations/kubernetes/step_operators/kubernetes_step_operator.py,sha256=lpkrA_barndyNLKqEUTaOIYJ6V8kHX9SfK5XFKK1md4,8848
350
+ zenml/integrations/kubernetes/step_operators/kubernetes_step_operator.py,sha256=__7t6XuzedUEheUImSkX2grsDCz0YFWUJ6uxv47MXUo,8851
351
351
  zenml/integrations/label_studio/__init__.py,sha256=sF2c9FxTDRlbcu95OxaUNKNtIhC1LgfmBRKY4jBME38,1475
352
352
  zenml/integrations/label_studio/annotators/__init__.py,sha256=YtOtSfS1_NBoLoXIygEerElBP1-B98UU0HOAEfzdRY0,821
353
353
  zenml/integrations/label_studio/annotators/label_studio_annotator.py,sha256=VkuW4zsZhHz8__P9WTTLRTF-FOmoYB-_cFqBdu-PUyA,30498
@@ -400,7 +400,7 @@ zenml/integrations/modal/__init__.py,sha256=Cqc10MZP_dAFTk1QwvPCCyNouLM5OuewjpZ-
400
400
  zenml/integrations/modal/flavors/__init__.py,sha256=169Oirq-NUVl-2oiByrMcL3HBM0R971BrS6xVBk0DB4,922
401
401
  zenml/integrations/modal/flavors/modal_step_operator_flavor.py,sha256=r7xkzER0hvNY6N0CEZMiF1vRk7A7CfkuYOeGDJ517N4,3978
402
402
  zenml/integrations/modal/step_operators/__init__.py,sha256=8NYCXe7aNPnldCI9IjcHzJC_B5e4gtfGzpHNZ-ToKnE,780
403
- zenml/integrations/modal/step_operators/modal_step_operator.py,sha256=J2HiNaGnlP6kDLBnQKz8mQKaoaQLitFkjHhOP_XRWgI,8543
403
+ zenml/integrations/modal/step_operators/modal_step_operator.py,sha256=ZndfvRsdNxdg-uW9ScezJUiAFo9Fd0ZKQd7pibrMUIM,8546
404
404
  zenml/integrations/neptune/__init__.py,sha256=PcqYVwybBcEy5YFODNA6bxT91kxaETReFmCWzExGhM8,1627
405
405
  zenml/integrations/neptune/experiment_trackers/__init__.py,sha256=DJi7lk7NXYrRg3VGPPSEsMycKECDfXL-h2V0A0r7z8Y,833
406
406
  zenml/integrations/neptune/experiment_trackers/neptune_experiment_tracker.py,sha256=hqEOgyBEQhjcnxvgw2oC2WZ0FAv1ez4VAqa_fJAHeCw,3716
@@ -525,7 +525,7 @@ zenml/integrations/spark/materializers/__init__.py,sha256=dZEkou5dpqq7bMcU0jgEcH
525
525
  zenml/integrations/spark/materializers/spark_dataframe_materializer.py,sha256=UXpwwz_8MLTVqfrN71Vsuck_GqDxl9D7YkKsY2K_4KA,2344
526
526
  zenml/integrations/spark/materializers/spark_model_materializer.py,sha256=bK6IUg1jRKVCF1-yUBoPtCtWEeIuaeX-cJO6pYz9WmE,2020
527
527
  zenml/integrations/spark/step_operators/__init__.py,sha256=NNgZXOk1S9yjOtQgYMrUkD9RUuV1-IkNvr6obfF0z8s,799
528
- zenml/integrations/spark/step_operators/kubernetes_step_operator.py,sha256=4GZfLP1bA1U7MCTHMC714X9LM_s_DQyxWSsmHx3-t0U,6295
528
+ zenml/integrations/spark/step_operators/kubernetes_step_operator.py,sha256=R23cY6yqMAsS5srW7vLsVgawr2DkjuFzwgE9FbEuitY,6298
529
529
  zenml/integrations/spark/step_operators/spark_entrypoint_configuration.py,sha256=-zKDcOCMJ0mwDMi6MiTFhxkSqWfo8mLZ6cTqsLrMkwA,1336
530
530
  zenml/integrations/spark/step_operators/spark_step_operator.py,sha256=ZFvArHOS7PopwC96noXjz-rUgLyOX6y3UYtoBjJfia0,11501
531
531
  zenml/integrations/tekton/__init__.py,sha256=fR4Swt09E3VWCV-5to3zbCOaZcsDPtDs22zQrFWByhI,1656
@@ -684,7 +684,7 @@ zenml/models/v2/misc/user_auth.py,sha256=1-yafNA9qK4wL8ToROjaklTVI7Mj9va0t80_4wm
684
684
  zenml/orchestrators/__init__.py,sha256=Nhmc6U-q6c8TEH1Jb5l8XaKnc4KmLNspDpvvV5TcvzQ,2007
685
685
  zenml/orchestrators/base_orchestrator.py,sha256=xPakQ-_ft-Po_HYUQ7GL-VWbdVP0Zn4l65S4AzhT894,17508
686
686
  zenml/orchestrators/cache_utils.py,sha256=QkmTs-ANfXve9_QzTqgGlyulZDEWOngoTcsiSjG5aA8,5906
687
- zenml/orchestrators/containerized_orchestrator.py,sha256=rdebgBW0Bk--JcHcT0NpLkAbyhY0VS5xO1uwWEgkLpA,3230
687
+ zenml/orchestrators/containerized_orchestrator.py,sha256=-umxlNlQfezks1GLoi0SyXtXXo9dkC4Re9nA0fh_avw,3858
688
688
  zenml/orchestrators/dag_runner.py,sha256=Dz_Rn6Kew6mR5Upib2y5tYBjnCeFvHRaDv2l5d4iBSM,10675
689
689
  zenml/orchestrators/input_utils.py,sha256=IwDYEwhFVcvZcdi9Myg__UB1bkZfpa8xZ0XRSwc4-go,6934
690
690
  zenml/orchestrators/local/__init__.py,sha256=qlU91hgqGKeycw-Qntrn-iMuoMTaNrq-RgfOFeqwlM4,662
@@ -693,7 +693,7 @@ zenml/orchestrators/local_docker/__init__.py,sha256=k8J68ydy6HmmvE9tWo32g761H8P_
693
693
  zenml/orchestrators/local_docker/local_docker_orchestrator.py,sha256=dEc1R2_xzFIzvSwPirwtH2noYzPyw0gbdDhpsqAgFMM,10032
694
694
  zenml/orchestrators/output_utils.py,sha256=01vqke1ZfmfuLpgxNerF-QL2wA0VPv1zUdvlMw0OwUY,3508
695
695
  zenml/orchestrators/publish_utils.py,sha256=OZ7tpYGfpNTe8ZY7PTHuZgSXIFtOhY8C7aRaXV3DFAk,8040
696
- zenml/orchestrators/step_launcher.py,sha256=swL916T3jf1P4423gLNJW2mssCu-OznVmXTJ7bW1ON4,21283
696
+ zenml/orchestrators/step_launcher.py,sha256=Pi8EvxztomJlxzJWN3WtYv_lchhN4Ze59qi60tE0t_A,21498
697
697
  zenml/orchestrators/step_run_utils.py,sha256=ppCEAqB0UBtLCm4FuWjgeAS0wxAa8uivxgTOL7Abrn8,16228
698
698
  zenml/orchestrators/step_runner.py,sha256=EUgKG_g0fOQ6gnB1hPSSa6UXwUKVkguC-Yj-Q0yEQXg,26632
699
699
  zenml/orchestrators/topsort.py,sha256=D8evz3X47zwpXd90NMLsJD-_uCeXtV6ClzNfDUrq7cM,5784
@@ -738,7 +738,7 @@ zenml/stack/__init__.py,sha256=vfHzaoRhPtS-XSlM8Vx1noJZDHF1Pj6LDz2knpn_QBg,1236
738
738
  zenml/stack/authentication_mixin.py,sha256=_Rn6SurHnyBuU_CJBOkwPR305yQFfqN60t6nEWJ4oa8,3991
739
739
  zenml/stack/flavor.py,sha256=wFLjajCw_G2NMR2UJzEGH2dcLj1dvmU9dDI5iS8b9rk,10544
740
740
  zenml/stack/flavor_registry.py,sha256=IL0fRrxxQJ9YkCYCeADP7nwWEQo4XBElJY4owMjKGbQ,6108
741
- zenml/stack/stack.py,sha256=3mLGNBuep0PeBcoFfOEaB6Ya206yav1ppiH5YEjp9xA,33042
741
+ zenml/stack/stack.py,sha256=M2zZqh5RHTnQaHQCiIr5m_o7UkOLoS_AdXIk_mZItSo,33048
742
742
  zenml/stack/stack_component.py,sha256=aXCVf4txBW-jprUb8XRJ2r6D-OUrWg3QHkTtlIiIcd8,29255
743
743
  zenml/stack/stack_validator.py,sha256=hWbvvGIeWLj6NwSsF4GCc6RAxAWvxHXTcBZL9nJvcak,3111
744
744
  zenml/stack/utils.py,sha256=CHs9rxdqHkUT12KPhJX1YPtIWnZBoVlRlq5PzNymq3E,6406
@@ -1338,8 +1338,8 @@ zenml/zen_stores/secrets_stores/sql_secrets_store.py,sha256=LPFW757WCJLP1S8vrvjs
1338
1338
  zenml/zen_stores/sql_zen_store.py,sha256=Yosxc5JTU_XfAgLShgg_EZ1dN5AIL5txzU_fvXBHlYc,483118
1339
1339
  zenml/zen_stores/template_utils.py,sha256=GbJ7LgGVYHSCKPEA8RNTxPoVTWqpC77F_lGzjJ4O1Fw,9220
1340
1340
  zenml/zen_stores/zen_store_interface.py,sha256=weiSULdI9AsbCE10a5TcwtybX-BJs9hKhjPJnTapWv4,93023
1341
- zenml_nightly-0.83.1.dev20250703.dist-info/LICENSE,sha256=wbnfEnXnafPbqwANHkV6LUsPKOtdpsd-SNw37rogLtc,11359
1342
- zenml_nightly-0.83.1.dev20250703.dist-info/METADATA,sha256=A9HwCpRtl2KAIgimI9CtWK0iwTquvY0-gLJnbltr98M,24316
1343
- zenml_nightly-0.83.1.dev20250703.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
1344
- zenml_nightly-0.83.1.dev20250703.dist-info/entry_points.txt,sha256=QK3ETQE0YswAM2mWypNMOv8TLtr7EjnqAFq1br_jEFE,43
1345
- zenml_nightly-0.83.1.dev20250703.dist-info/RECORD,,
1341
+ zenml_nightly-0.83.1.dev20250705.dist-info/LICENSE,sha256=wbnfEnXnafPbqwANHkV6LUsPKOtdpsd-SNw37rogLtc,11359
1342
+ zenml_nightly-0.83.1.dev20250705.dist-info/METADATA,sha256=plaTOPp-L2EakxEsDhWigiM1NVC4-HbdSuboKVcK2xQ,24316
1343
+ zenml_nightly-0.83.1.dev20250705.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
1344
+ zenml_nightly-0.83.1.dev20250705.dist-info/entry_points.txt,sha256=QK3ETQE0YswAM2mWypNMOv8TLtr7EjnqAFq1br_jEFE,43
1345
+ zenml_nightly-0.83.1.dev20250705.dist-info/RECORD,,