zenml-nightly 0.82.0.dev20250509__py3-none-any.whl → 0.82.0.dev20250511__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/config/compiler.py +16 -37
- zenml/config/pipeline_configurations.py +13 -6
- zenml/config/step_configurations.py +89 -14
- zenml/constants.py +1 -0
- zenml/models/v2/base/scoped.py +2 -0
- zenml/models/v2/core/artifact_version.py +1 -0
- zenml/orchestrators/step_launcher.py +2 -2
- zenml/pipelines/run_utils.py +3 -2
- zenml/stack/stack_component.py +6 -3
- zenml/zen_server/rbac/utils.py +1 -2
- zenml/zen_server/routers/pipeline_deployments_endpoints.py +81 -10
- zenml/zen_server/template_execution/utils.py +38 -46
- zenml/zen_stores/schemas/action_schemas.py +1 -0
- zenml/zen_stores/schemas/artifact_schemas.py +2 -0
- zenml/zen_stores/schemas/code_repository_schemas.py +1 -0
- zenml/zen_stores/schemas/event_source_schemas.py +1 -0
- zenml/zen_stores/schemas/model_schemas.py +2 -0
- zenml/zen_stores/schemas/pipeline_build_schemas.py +1 -0
- zenml/zen_stores/schemas/pipeline_deployment_schemas.py +14 -5
- zenml/zen_stores/schemas/pipeline_run_schemas.py +3 -4
- zenml/zen_stores/schemas/pipeline_schemas.py +1 -0
- zenml/zen_stores/schemas/run_template_schemas.py +1 -0
- zenml/zen_stores/schemas/schedule_schema.py +1 -0
- zenml/zen_stores/schemas/service_schemas.py +1 -0
- zenml/zen_stores/schemas/step_run_schemas.py +29 -41
- zenml/zen_stores/schemas/trigger_schemas.py +1 -0
- zenml/zen_stores/template_utils.py +7 -3
- {zenml_nightly-0.82.0.dev20250509.dist-info → zenml_nightly-0.82.0.dev20250511.dist-info}/METADATA +1 -1
- {zenml_nightly-0.82.0.dev20250509.dist-info → zenml_nightly-0.82.0.dev20250511.dist-info}/RECORD +33 -33
- {zenml_nightly-0.82.0.dev20250509.dist-info → zenml_nightly-0.82.0.dev20250511.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.82.0.dev20250509.dist-info → zenml_nightly-0.82.0.dev20250511.dist-info}/WHEEL +0 -0
- {zenml_nightly-0.82.0.dev20250509.dist-info → zenml_nightly-0.82.0.dev20250511.dist-info}/entry_points.txt +0 -0
zenml/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.82.0.
|
1
|
+
0.82.0.dev20250511
|
zenml/config/compiler.py
CHANGED
@@ -27,6 +27,7 @@ from typing import (
|
|
27
27
|
|
28
28
|
from zenml import __version__
|
29
29
|
from zenml.config.base_settings import BaseSettings, ConfigurationLevel
|
30
|
+
from zenml.config.pipeline_configurations import PipelineConfiguration
|
30
31
|
from zenml.config.pipeline_run_configuration import PipelineRunConfiguration
|
31
32
|
from zenml.config.pipeline_spec import PipelineSpec
|
32
33
|
from zenml.config.settings_resolver import SettingsResolver
|
@@ -43,7 +44,6 @@ from zenml.pipelines.run_utils import get_default_run_name
|
|
43
44
|
from zenml.utils import pydantic_utils, settings_utils
|
44
45
|
|
45
46
|
if TYPE_CHECKING:
|
46
|
-
from zenml.config.source import Source
|
47
47
|
from zenml.pipelines.pipeline_definition import Pipeline
|
48
48
|
from zenml.stack import Stack, StackComponent
|
49
49
|
from zenml.steps.step_invocation import StepInvocation
|
@@ -112,21 +112,12 @@ class Compiler:
|
|
112
112
|
with pipeline.__suppress_configure_warnings__():
|
113
113
|
pipeline.configure(settings=pipeline_settings, merge=False)
|
114
114
|
|
115
|
-
settings_to_passdown = {
|
116
|
-
key: settings
|
117
|
-
for key, settings in pipeline_settings.items()
|
118
|
-
if ConfigurationLevel.STEP in settings.LEVEL
|
119
|
-
}
|
120
|
-
|
121
115
|
steps = {
|
122
116
|
invocation_id: self._compile_step_invocation(
|
123
117
|
invocation=invocation,
|
124
|
-
pipeline_settings=settings_to_passdown,
|
125
|
-
pipeline_extra=pipeline.configuration.extra,
|
126
118
|
stack=stack,
|
127
119
|
step_config=run_configuration.steps.get(invocation_id),
|
128
|
-
|
129
|
-
pipeline_success_hook_source=pipeline.configuration.success_hook_source,
|
120
|
+
pipeline_configuration=pipeline.configuration,
|
130
121
|
)
|
131
122
|
for invocation_id, invocation in self._get_sorted_invocations(
|
132
123
|
pipeline=pipeline
|
@@ -447,24 +438,17 @@ class Compiler:
|
|
447
438
|
def _compile_step_invocation(
|
448
439
|
self,
|
449
440
|
invocation: "StepInvocation",
|
450
|
-
pipeline_settings: Dict[str, "BaseSettings"],
|
451
|
-
pipeline_extra: Dict[str, Any],
|
452
441
|
stack: "Stack",
|
453
442
|
step_config: Optional["StepConfigurationUpdate"],
|
454
|
-
|
455
|
-
pipeline_success_hook_source: Optional["Source"] = None,
|
443
|
+
pipeline_configuration: "PipelineConfiguration",
|
456
444
|
) -> Step:
|
457
445
|
"""Compiles a ZenML step.
|
458
446
|
|
459
447
|
Args:
|
460
448
|
invocation: The step invocation to compile.
|
461
|
-
pipeline_settings: settings configured on the
|
462
|
-
pipeline of the step.
|
463
|
-
pipeline_extra: Extra values configured on the pipeline of the step.
|
464
449
|
stack: The stack on which the pipeline will be run.
|
465
450
|
step_config: Run configuration for the step.
|
466
|
-
|
467
|
-
pipeline_success_hook_source: Source for the success hook.
|
451
|
+
pipeline_configuration: Configuration for the pipeline.
|
468
452
|
|
469
453
|
Returns:
|
470
454
|
The compiled step.
|
@@ -488,32 +472,27 @@ class Compiler:
|
|
488
472
|
configuration_level=ConfigurationLevel.STEP,
|
489
473
|
stack=stack,
|
490
474
|
)
|
491
|
-
step_extra = step.configuration.extra
|
492
|
-
step_on_failure_hook_source = step.configuration.failure_hook_source
|
493
|
-
step_on_success_hook_source = step.configuration.success_hook_source
|
494
|
-
|
495
|
-
step.configure(
|
496
|
-
settings=pipeline_settings,
|
497
|
-
extra=pipeline_extra,
|
498
|
-
on_failure=pipeline_failure_hook_source,
|
499
|
-
on_success=pipeline_success_hook_source,
|
500
|
-
merge=False,
|
501
|
-
)
|
502
475
|
step.configure(
|
503
476
|
settings=step_settings,
|
504
|
-
|
505
|
-
on_failure=step_on_failure_hook_source,
|
506
|
-
on_success=step_on_success_hook_source,
|
507
|
-
merge=True,
|
477
|
+
merge=False,
|
508
478
|
)
|
509
479
|
|
510
480
|
parameters_to_ignore = (
|
511
481
|
set(step_config.parameters) if step_config else set()
|
512
482
|
)
|
513
|
-
|
483
|
+
step_configuration_overrides = invocation.finalize(
|
514
484
|
parameters_to_ignore=parameters_to_ignore
|
515
485
|
)
|
516
|
-
|
486
|
+
full_step_config = (
|
487
|
+
step_configuration_overrides.apply_pipeline_configuration(
|
488
|
+
pipeline_configuration=pipeline_configuration
|
489
|
+
)
|
490
|
+
)
|
491
|
+
return Step(
|
492
|
+
spec=step_spec,
|
493
|
+
config=full_step_config,
|
494
|
+
step_config_overrides=step_configuration_overrides,
|
495
|
+
)
|
517
496
|
|
518
497
|
def _get_sorted_invocations(
|
519
498
|
self,
|
@@ -52,23 +52,30 @@ class PipelineConfigurationUpdate(StrictBaseModel):
|
|
52
52
|
retry: Optional[StepRetryConfig] = None
|
53
53
|
substitutions: Dict[str, str] = {}
|
54
54
|
|
55
|
-
def
|
56
|
-
self, start_time: Optional[datetime]
|
55
|
+
def finalize_substitutions(
|
56
|
+
self, start_time: Optional[datetime] = None, inplace: bool = False
|
57
57
|
) -> Dict[str, str]:
|
58
58
|
"""Returns the full substitutions dict.
|
59
59
|
|
60
60
|
Args:
|
61
61
|
start_time: Start time of the pipeline run.
|
62
|
+
inplace: Whether to update the substitutions in place.
|
62
63
|
|
63
64
|
Returns:
|
64
65
|
The full substitutions dict including date and time.
|
65
66
|
"""
|
66
67
|
if start_time is None:
|
67
68
|
start_time = utc_now()
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
69
|
+
|
70
|
+
if inplace:
|
71
|
+
dict_ = self.substitutions
|
72
|
+
else:
|
73
|
+
dict_ = self.substitutions.copy()
|
74
|
+
|
75
|
+
dict_.setdefault("date", start_time.strftime("%Y_%m_%d"))
|
76
|
+
dict_.setdefault("time", start_time.strftime("%H_%M_%S_%f"))
|
77
|
+
|
78
|
+
return dict_
|
72
79
|
|
73
80
|
|
74
81
|
class PipelineConfiguration(PipelineConfigurationUpdate):
|
@@ -13,7 +13,6 @@
|
|
13
13
|
# permissions and limitations under the License.
|
14
14
|
"""Pipeline configuration classes."""
|
15
15
|
|
16
|
-
from datetime import datetime
|
17
16
|
from typing import (
|
18
17
|
TYPE_CHECKING,
|
19
18
|
Any,
|
@@ -46,7 +45,7 @@ from zenml.logger import get_logger
|
|
46
45
|
from zenml.model.lazy_load import ModelVersionDataLazyLoader
|
47
46
|
from zenml.model.model import Model
|
48
47
|
from zenml.utils import deprecation_utils
|
49
|
-
from zenml.utils.pydantic_utils import before_validator_handler
|
48
|
+
from zenml.utils.pydantic_utils import before_validator_handler, update_model
|
50
49
|
|
51
50
|
if TYPE_CHECKING:
|
52
51
|
from zenml.config import DockerSettings, ResourceSettings
|
@@ -241,23 +240,43 @@ class StepConfiguration(PartialStepConfiguration):
|
|
241
240
|
model_or_dict = model_or_dict.model_dump()
|
242
241
|
return DockerSettings.model_validate(model_or_dict)
|
243
242
|
|
244
|
-
def
|
245
|
-
self,
|
246
|
-
|
247
|
-
|
248
|
-
) -> Dict[str, str]:
|
249
|
-
"""Get the full set of substitutions for this step configuration.
|
243
|
+
def apply_pipeline_configuration(
|
244
|
+
self, pipeline_configuration: "PipelineConfiguration"
|
245
|
+
) -> "StepConfiguration":
|
246
|
+
"""Apply the pipeline configuration to this step configuration.
|
250
247
|
|
251
248
|
Args:
|
252
|
-
|
253
|
-
start_time: The start time of the pipeline run.
|
249
|
+
pipeline_configuration: The pipeline configuration to apply.
|
254
250
|
|
255
251
|
Returns:
|
256
|
-
The
|
252
|
+
The updated step configuration.
|
257
253
|
"""
|
258
|
-
|
259
|
-
|
260
|
-
|
254
|
+
pipeline_values = pipeline_configuration.model_dump(
|
255
|
+
include={
|
256
|
+
"settings",
|
257
|
+
"extra",
|
258
|
+
"failure_hook_source",
|
259
|
+
"success_hook_source",
|
260
|
+
"substitutions",
|
261
|
+
},
|
262
|
+
exclude_none=True,
|
263
|
+
)
|
264
|
+
if pipeline_values:
|
265
|
+
original_values = self.model_dump(
|
266
|
+
include={
|
267
|
+
"settings",
|
268
|
+
"extra",
|
269
|
+
"failure_hook_source",
|
270
|
+
"success_hook_source",
|
271
|
+
"substitutions",
|
272
|
+
},
|
273
|
+
exclude_none=True,
|
274
|
+
)
|
275
|
+
|
276
|
+
updated_config = self.model_copy(update=pipeline_values, deep=True)
|
277
|
+
return update_model(updated_config, original_values)
|
278
|
+
else:
|
279
|
+
return self.model_copy(deep=True)
|
261
280
|
|
262
281
|
|
263
282
|
class InputSpec(StrictBaseModel):
|
@@ -311,3 +330,59 @@ class Step(StrictBaseModel):
|
|
311
330
|
|
312
331
|
spec: StepSpec
|
313
332
|
config: StepConfiguration
|
333
|
+
step_config_overrides: StepConfiguration
|
334
|
+
|
335
|
+
@model_validator(mode="before")
|
336
|
+
@classmethod
|
337
|
+
@before_validator_handler
|
338
|
+
def _add_step_config_overrides_if_missing(cls, data: Any) -> Any:
|
339
|
+
"""Add step config overrides if missing.
|
340
|
+
|
341
|
+
This is to ensure backwards compatibility with data stored in the DB
|
342
|
+
before the `step_config_overrides` field was added. In that case, only
|
343
|
+
the `config` field, which contains the merged pipeline and step configs,
|
344
|
+
existed. We have no way to figure out which of those values were defined
|
345
|
+
on the step vs the pipeline level, so we just use the entire `config`
|
346
|
+
object as the `step_config_overrides`.
|
347
|
+
|
348
|
+
Args:
|
349
|
+
data: The values dict used to instantiate the model.
|
350
|
+
|
351
|
+
Returns:
|
352
|
+
The values dict with the step config overrides added if missing.
|
353
|
+
"""
|
354
|
+
if "step_config_overrides" not in data:
|
355
|
+
data["step_config_overrides"] = data["config"]
|
356
|
+
|
357
|
+
return data
|
358
|
+
|
359
|
+
@classmethod
|
360
|
+
def from_dict(
|
361
|
+
cls,
|
362
|
+
data: Dict[str, Any],
|
363
|
+
pipeline_configuration: "PipelineConfiguration",
|
364
|
+
) -> "Step":
|
365
|
+
"""Create a step from a dictionary.
|
366
|
+
|
367
|
+
This method can create a step from data stored without the merged
|
368
|
+
`config` attribute, by merging the `step_config_overrides` with the
|
369
|
+
pipeline configuration.
|
370
|
+
|
371
|
+
Args:
|
372
|
+
data: The dictionary to create the `Step` object from.
|
373
|
+
pipeline_configuration: The pipeline configuration to apply to the
|
374
|
+
step configuration.
|
375
|
+
|
376
|
+
Returns:
|
377
|
+
The instantiated object.
|
378
|
+
"""
|
379
|
+
if "config" not in data:
|
380
|
+
config = StepConfiguration.model_validate(
|
381
|
+
data["step_config_overrides"]
|
382
|
+
)
|
383
|
+
config = config.apply_pipeline_configuration(
|
384
|
+
pipeline_configuration
|
385
|
+
)
|
386
|
+
data["config"] = config
|
387
|
+
|
388
|
+
return cls.model_validate(data)
|
zenml/constants.py
CHANGED
@@ -199,6 +199,7 @@ ENV_ZENML_RUN_SINGLE_STEPS_WITHOUT_STACK = (
|
|
199
199
|
)
|
200
200
|
ENV_ZENML_PREVENT_CLIENT_SIDE_CACHING = "ZENML_PREVENT_CLIENT_SIDE_CACHING"
|
201
201
|
ENV_ZENML_DISABLE_CREDENTIALS_DISK_CACHING = "DISABLE_CREDENTIALS_DISK_CACHING"
|
202
|
+
ENV_ZENML_RUNNER_PARENT_IMAGE = "ZENML_RUNNER_PARENT_IMAGE"
|
202
203
|
ENV_ZENML_RUNNER_IMAGE_DISABLE_UV = "ZENML_RUNNER_IMAGE_DISABLE_UV"
|
203
204
|
ENV_ZENML_RUNNER_POD_TIMEOUT = "ZENML_RUNNER_POD_TIMEOUT"
|
204
205
|
ENV_ZENML_WORKLOAD_TOKEN_EXPIRATION_LEEWAY = (
|
zenml/models/v2/base/scoped.py
CHANGED
@@ -318,6 +318,8 @@ class ProjectScopedResponse(
|
|
318
318
|
Used as a base class for all domain models that are project-scoped.
|
319
319
|
"""
|
320
320
|
|
321
|
+
project_id: UUID = Field(title="The project id.")
|
322
|
+
|
321
323
|
# Analytics
|
322
324
|
def get_analytics_metadata(self) -> Dict[str, Any]:
|
323
325
|
"""Fetches the analytics metadata for project scoped models.
|
@@ -710,6 +710,7 @@ class LazyArtifactVersionResponse(ArtifactVersionResponse):
|
|
710
710
|
"""
|
711
711
|
|
712
712
|
id: Optional[UUID] = None # type: ignore[assignment]
|
713
|
+
project_id: Optional[UUID] = None # type: ignore[assignment]
|
713
714
|
lazy_load_name: Optional[str] = None
|
714
715
|
lazy_load_version: Optional[str] = None
|
715
716
|
lazy_load_model_name: str
|
@@ -308,8 +308,8 @@ class StepLauncher:
|
|
308
308
|
start_time = utc_now()
|
309
309
|
run_name = string_utils.format_name_template(
|
310
310
|
name_template=self._deployment.run_name_template,
|
311
|
-
substitutions=self._deployment.pipeline_configuration.
|
312
|
-
start_time
|
311
|
+
substitutions=self._deployment.pipeline_configuration.finalize_substitutions(
|
312
|
+
start_time=start_time,
|
313
313
|
),
|
314
314
|
)
|
315
315
|
|
zenml/pipelines/run_utils.py
CHANGED
@@ -72,8 +72,8 @@ def create_placeholder_run(
|
|
72
72
|
run_request = PipelineRunRequest(
|
73
73
|
name=string_utils.format_name_template(
|
74
74
|
name_template=deployment.run_name_template,
|
75
|
-
substitutions=deployment.pipeline_configuration.
|
76
|
-
start_time
|
75
|
+
substitutions=deployment.pipeline_configuration.finalize_substitutions(
|
76
|
+
start_time=start_time,
|
77
77
|
),
|
78
78
|
),
|
79
79
|
# We set the start time on the placeholder run already to
|
@@ -113,6 +113,7 @@ def get_placeholder_run(
|
|
113
113
|
size=1,
|
114
114
|
deployment_id=deployment_id,
|
115
115
|
status=ExecutionStatus.INITIALIZING,
|
116
|
+
hydrate=True,
|
116
117
|
)
|
117
118
|
if len(runs.items) == 0:
|
118
119
|
return None
|
zenml/stack/stack_component.py
CHANGED
@@ -529,10 +529,13 @@ class StackComponent:
|
|
529
529
|
else container.pipeline_configuration.settings
|
530
530
|
)
|
531
531
|
|
532
|
+
# Use the current config as a base
|
533
|
+
settings_dict = self.config.model_dump()
|
534
|
+
|
532
535
|
if key in all_settings:
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
+
settings_dict.update(dict(all_settings[key]))
|
537
|
+
|
538
|
+
return self.settings_class.model_validate(settings_dict)
|
536
539
|
|
537
540
|
def connector_has_expired(self) -> bool:
|
538
541
|
"""Checks whether the connector linked to this stack component has expired.
|
zenml/zen_server/rbac/utils.py
CHANGED
@@ -373,8 +373,7 @@ def get_resource_for_model(model: AnyModel) -> Optional[Resource]:
|
|
373
373
|
|
374
374
|
project_id: Optional[UUID] = None
|
375
375
|
if isinstance(model, ProjectScopedResponse):
|
376
|
-
|
377
|
-
project_id = model.project.id
|
376
|
+
project_id = model.project_id
|
378
377
|
elif isinstance(model, ProjectScopedRequest):
|
379
378
|
# A project scoped request is always scoped to a specific project
|
380
379
|
project_id = model.project
|
@@ -13,18 +13,16 @@
|
|
13
13
|
# permissions and limitations under the License.
|
14
14
|
"""Endpoint definitions for deployments."""
|
15
15
|
|
16
|
-
from typing import Optional, Union
|
16
|
+
from typing import Any, Optional, Union
|
17
17
|
from uuid import UUID
|
18
18
|
|
19
|
-
from fastapi import APIRouter, Depends, Security
|
19
|
+
from fastapi import APIRouter, Depends, Request, Security
|
20
20
|
|
21
21
|
from zenml.constants import API, PIPELINE_DEPLOYMENTS, VERSION_1
|
22
22
|
from zenml.logging.step_logging import fetch_logs
|
23
23
|
from zenml.models import (
|
24
|
-
Page,
|
25
24
|
PipelineDeploymentFilter,
|
26
25
|
PipelineDeploymentRequest,
|
27
|
-
PipelineDeploymentResponse,
|
28
26
|
PipelineRunFilter,
|
29
27
|
)
|
30
28
|
from zenml.zen_server.auth import AuthContext, authorize
|
@@ -45,6 +43,37 @@ from zenml.zen_server.utils import (
|
|
45
43
|
zen_store,
|
46
44
|
)
|
47
45
|
|
46
|
+
|
47
|
+
# TODO: Remove this as soon as there is only a low number of users running
|
48
|
+
# versions < 0.82.0. Also change back the return type to
|
49
|
+
# `PipelineDeploymentResponse` once we have removed the `exclude` logic.
|
50
|
+
def _should_remove_step_config_overrides(
|
51
|
+
request: Request,
|
52
|
+
) -> bool:
|
53
|
+
"""Check if the step config overrides should be removed from the response.
|
54
|
+
|
55
|
+
Args:
|
56
|
+
request: The request object.
|
57
|
+
|
58
|
+
Returns:
|
59
|
+
If the step config overrides should be removed from the response.
|
60
|
+
"""
|
61
|
+
from packaging import version
|
62
|
+
|
63
|
+
user_agent = request.headers.get("User-Agent", "")
|
64
|
+
|
65
|
+
if not user_agent.startswith("zenml/"):
|
66
|
+
# This request is not coming from a ZenML client
|
67
|
+
return False
|
68
|
+
|
69
|
+
client_version = version.parse(user_agent.removeprefix("zenml/"))
|
70
|
+
|
71
|
+
# Versions before 0.82.0 did have `extra="forbid"` in the pydantic model
|
72
|
+
# that stores the step configurations. This means it would crash if we
|
73
|
+
# included the `step_config_overrides` in the response.
|
74
|
+
return client_version < version.parse("0.82.0")
|
75
|
+
|
76
|
+
|
48
77
|
router = APIRouter(
|
49
78
|
prefix=API + VERSION_1 + PIPELINE_DEPLOYMENTS,
|
50
79
|
tags=["deployments"],
|
@@ -66,13 +95,15 @@ router = APIRouter(
|
|
66
95
|
)
|
67
96
|
@handle_exceptions
|
68
97
|
def create_deployment(
|
98
|
+
request: Request,
|
69
99
|
deployment: PipelineDeploymentRequest,
|
70
100
|
project_name_or_id: Optional[Union[str, UUID]] = None,
|
71
101
|
_: AuthContext = Security(authorize),
|
72
|
-
) ->
|
102
|
+
) -> Any:
|
73
103
|
"""Creates a deployment.
|
74
104
|
|
75
105
|
Args:
|
106
|
+
request: The request object.
|
76
107
|
deployment: Deployment to create.
|
77
108
|
project_name_or_id: Optional name or ID of the project.
|
78
109
|
|
@@ -83,11 +114,21 @@ def create_deployment(
|
|
83
114
|
project = zen_store().get_project(project_name_or_id)
|
84
115
|
deployment.project = project.id
|
85
116
|
|
86
|
-
|
117
|
+
deployment_response = verify_permissions_and_create_entity(
|
87
118
|
request_model=deployment,
|
88
119
|
create_method=zen_store().create_deployment,
|
89
120
|
)
|
90
121
|
|
122
|
+
exclude = None
|
123
|
+
if _should_remove_step_config_overrides(request):
|
124
|
+
exclude = {
|
125
|
+
"metadata": {
|
126
|
+
"step_configurations": {"__all__": {"step_config_overrides"}}
|
127
|
+
}
|
128
|
+
}
|
129
|
+
|
130
|
+
return deployment_response.model_dump(mode="json", exclude=exclude)
|
131
|
+
|
91
132
|
|
92
133
|
@router.get(
|
93
134
|
"",
|
@@ -103,16 +144,18 @@ def create_deployment(
|
|
103
144
|
)
|
104
145
|
@handle_exceptions
|
105
146
|
def list_deployments(
|
147
|
+
request: Request,
|
106
148
|
deployment_filter_model: PipelineDeploymentFilter = Depends(
|
107
149
|
make_dependable(PipelineDeploymentFilter)
|
108
150
|
),
|
109
151
|
project_name_or_id: Optional[Union[str, UUID]] = None,
|
110
152
|
hydrate: bool = False,
|
111
153
|
_: AuthContext = Security(authorize),
|
112
|
-
) ->
|
154
|
+
) -> Any:
|
113
155
|
"""Gets a list of deployments.
|
114
156
|
|
115
157
|
Args:
|
158
|
+
request: The request object.
|
116
159
|
deployment_filter_model: Filter model used for pagination, sorting,
|
117
160
|
filtering.
|
118
161
|
project_name_or_id: Optional name or ID of the project to filter by.
|
@@ -125,13 +168,29 @@ def list_deployments(
|
|
125
168
|
if project_name_or_id:
|
126
169
|
deployment_filter_model.project = project_name_or_id
|
127
170
|
|
128
|
-
|
171
|
+
page = verify_permissions_and_list_entities(
|
129
172
|
filter_model=deployment_filter_model,
|
130
173
|
resource_type=ResourceType.PIPELINE_DEPLOYMENT,
|
131
174
|
list_method=zen_store().list_deployments,
|
132
175
|
hydrate=hydrate,
|
133
176
|
)
|
134
177
|
|
178
|
+
exclude = None
|
179
|
+
if _should_remove_step_config_overrides(request):
|
180
|
+
exclude = {
|
181
|
+
"items": {
|
182
|
+
"__all__": {
|
183
|
+
"metadata": {
|
184
|
+
"step_configurations": {
|
185
|
+
"__all__": {"step_config_overrides"}
|
186
|
+
}
|
187
|
+
}
|
188
|
+
}
|
189
|
+
}
|
190
|
+
}
|
191
|
+
|
192
|
+
return page.model_dump(mode="json", exclude=exclude)
|
193
|
+
|
135
194
|
|
136
195
|
@router.get(
|
137
196
|
"/{deployment_id}",
|
@@ -139,13 +198,15 @@ def list_deployments(
|
|
139
198
|
)
|
140
199
|
@handle_exceptions
|
141
200
|
def get_deployment(
|
201
|
+
request: Request,
|
142
202
|
deployment_id: UUID,
|
143
203
|
hydrate: bool = True,
|
144
204
|
_: AuthContext = Security(authorize),
|
145
|
-
) ->
|
205
|
+
) -> Any:
|
146
206
|
"""Gets a specific deployment using its unique id.
|
147
207
|
|
148
208
|
Args:
|
209
|
+
request: The request object.
|
149
210
|
deployment_id: ID of the deployment to get.
|
150
211
|
hydrate: Flag deciding whether to hydrate the output model(s)
|
151
212
|
by including metadata fields in the response.
|
@@ -153,12 +214,22 @@ def get_deployment(
|
|
153
214
|
Returns:
|
154
215
|
A specific deployment object.
|
155
216
|
"""
|
156
|
-
|
217
|
+
deployment = verify_permissions_and_get_entity(
|
157
218
|
id=deployment_id,
|
158
219
|
get_method=zen_store().get_deployment,
|
159
220
|
hydrate=hydrate,
|
160
221
|
)
|
161
222
|
|
223
|
+
exclude = None
|
224
|
+
if _should_remove_step_config_overrides(request):
|
225
|
+
exclude = {
|
226
|
+
"metadata": {
|
227
|
+
"step_configurations": {"__all__": {"step_config_overrides"}}
|
228
|
+
}
|
229
|
+
}
|
230
|
+
|
231
|
+
return deployment.model_dump(mode="json", exclude=exclude)
|
232
|
+
|
162
233
|
|
163
234
|
@router.delete(
|
164
235
|
"/{deployment_id}",
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"""Utility functions to run a pipeline from the server."""
|
2
2
|
|
3
|
-
import copy
|
4
3
|
import hashlib
|
4
|
+
import os
|
5
5
|
import sys
|
6
6
|
import threading
|
7
7
|
from concurrent.futures import Future, ThreadPoolExecutor
|
@@ -17,11 +17,12 @@ from zenml.config.pipeline_configurations import PipelineConfiguration
|
|
17
17
|
from zenml.config.pipeline_run_configuration import (
|
18
18
|
PipelineRunConfiguration,
|
19
19
|
)
|
20
|
-
from zenml.config.step_configurations import Step,
|
20
|
+
from zenml.config.step_configurations import Step, StepConfigurationUpdate
|
21
21
|
from zenml.constants import (
|
22
22
|
ENV_ZENML_ACTIVE_PROJECT_ID,
|
23
23
|
ENV_ZENML_ACTIVE_STACK_ID,
|
24
24
|
ENV_ZENML_RUNNER_IMAGE_DISABLE_UV,
|
25
|
+
ENV_ZENML_RUNNER_PARENT_IMAGE,
|
25
26
|
ENV_ZENML_RUNNER_POD_TIMEOUT,
|
26
27
|
handle_bool_env_var,
|
27
28
|
handle_int_env_var,
|
@@ -47,7 +48,7 @@ from zenml.pipelines.run_utils import (
|
|
47
48
|
validate_stack_is_runnable_from_server,
|
48
49
|
)
|
49
50
|
from zenml.stack.flavor import Flavor
|
50
|
-
from zenml.utils import
|
51
|
+
from zenml.utils import pydantic_utils, requirements_utils, settings_utils
|
51
52
|
from zenml.zen_server.auth import AuthContext, generate_access_token
|
52
53
|
from zenml.zen_server.template_execution.runner_entrypoint_configuration import (
|
53
54
|
RunnerEntrypointConfiguration,
|
@@ -172,7 +173,6 @@ def run_template(
|
|
172
173
|
deployment_request = deployment_request_from_template(
|
173
174
|
template=template,
|
174
175
|
config=run_config or PipelineRunConfiguration(),
|
175
|
-
user_id=auth_context.user.id,
|
176
176
|
)
|
177
177
|
|
178
178
|
ensure_async_orchestrator(deployment=deployment_request, stack=stack)
|
@@ -386,7 +386,10 @@ def generate_dockerfile(
|
|
386
386
|
Returns:
|
387
387
|
The Dockerfile.
|
388
388
|
"""
|
389
|
-
parent_image =
|
389
|
+
parent_image = os.environ.get(
|
390
|
+
ENV_ZENML_RUNNER_PARENT_IMAGE,
|
391
|
+
f"zenmldocker/zenml:{zenml_version}-py{python_version}",
|
392
|
+
)
|
390
393
|
|
391
394
|
lines = [f"FROM {parent_image}"]
|
392
395
|
if apt_packages:
|
@@ -420,14 +423,12 @@ def generate_dockerfile(
|
|
420
423
|
def deployment_request_from_template(
|
421
424
|
template: RunTemplateResponse,
|
422
425
|
config: PipelineRunConfiguration,
|
423
|
-
user_id: UUID,
|
424
426
|
) -> "PipelineDeploymentRequest":
|
425
427
|
"""Generate a deployment request from a template.
|
426
428
|
|
427
429
|
Args:
|
428
430
|
template: The template from which to create the deployment request.
|
429
431
|
config: The run configuration.
|
430
|
-
user_id: ID of the user that is trying to run the template.
|
431
432
|
|
432
433
|
Raises:
|
433
434
|
ValueError: If there are missing/extra step parameters in the run
|
@@ -438,49 +439,37 @@ def deployment_request_from_template(
|
|
438
439
|
"""
|
439
440
|
deployment = template.source_deployment
|
440
441
|
assert deployment
|
441
|
-
pipeline_configuration = PipelineConfiguration(
|
442
|
-
**config.model_dump(
|
443
|
-
include=set(PipelineConfiguration.model_fields),
|
444
|
-
exclude={"name", "parameters"},
|
445
|
-
),
|
446
|
-
name=deployment.pipeline_configuration.name,
|
447
|
-
parameters=deployment.pipeline_configuration.parameters,
|
448
|
-
)
|
449
442
|
|
450
|
-
|
451
|
-
|
443
|
+
pipeline_update = config.model_dump(
|
444
|
+
include=set(PipelineConfiguration.model_fields),
|
445
|
+
exclude={"name", "parameters"},
|
446
|
+
exclude_unset=True,
|
447
|
+
exclude_none=True,
|
448
|
+
)
|
449
|
+
pipeline_configuration = pydantic_utils.update_model(
|
450
|
+
deployment.pipeline_configuration, pipeline_update
|
452
451
|
)
|
452
|
+
|
453
453
|
steps = {}
|
454
454
|
for invocation_id, step in deployment.step_configurations.items():
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
# TODO: Maybe we need to make some of these configurable via
|
459
|
-
# yaml as well, e.g. the lazy loaders?
|
460
|
-
include={
|
461
|
-
"name",
|
462
|
-
"caching_parameters",
|
463
|
-
"external_input_artifacts",
|
464
|
-
"model_artifacts_or_metadata",
|
465
|
-
"client_lazy_loaders",
|
466
|
-
"substitutions",
|
467
|
-
"outputs",
|
468
|
-
}
|
469
|
-
),
|
470
|
-
}
|
471
|
-
|
472
|
-
required_parameters = set(step.config.parameters)
|
473
|
-
configured_parameters = set()
|
474
|
-
|
475
|
-
if update := config.steps.get(invocation_id):
|
476
|
-
update_dict = update.model_dump()
|
455
|
+
step_update = config.steps.get(
|
456
|
+
invocation_id, StepConfigurationUpdate()
|
457
|
+
).model_dump(
|
477
458
|
# Get rid of deprecated name to prevent overriding the step name
|
478
459
|
# with `None`.
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
460
|
+
exclude={"name"},
|
461
|
+
exclude_unset=True,
|
462
|
+
exclude_none=True,
|
463
|
+
)
|
464
|
+
step_config = pydantic_utils.update_model(
|
465
|
+
step.step_config_overrides, step_update
|
466
|
+
)
|
467
|
+
merged_step_config = step_config.apply_pipeline_configuration(
|
468
|
+
pipeline_configuration
|
469
|
+
)
|
470
|
+
|
471
|
+
required_parameters = set(step.config.parameters)
|
472
|
+
configured_parameters = set(step_config.parameters)
|
484
473
|
|
485
474
|
unknown_parameters = configured_parameters - required_parameters
|
486
475
|
if unknown_parameters:
|
@@ -496,8 +485,11 @@ def deployment_request_from_template(
|
|
496
485
|
f"parameters for step {invocation_id}: {missing_parameters}."
|
497
486
|
)
|
498
487
|
|
499
|
-
|
500
|
-
|
488
|
+
steps[invocation_id] = Step(
|
489
|
+
spec=step.spec,
|
490
|
+
config=merged_step_config,
|
491
|
+
step_config_overrides=step_config,
|
492
|
+
)
|
501
493
|
|
502
494
|
code_reference_request = None
|
503
495
|
if deployment.code_reference:
|
@@ -203,6 +203,7 @@ class ArtifactSchema(NamedSchema, table=True):
|
|
203
203
|
|
204
204
|
return ArtifactResponse(
|
205
205
|
id=self.id,
|
206
|
+
project_id=self.project_id,
|
206
207
|
name=self.name,
|
207
208
|
body=body,
|
208
209
|
metadata=metadata,
|
@@ -437,6 +438,7 @@ class ArtifactVersionSchema(BaseSchema, RunMetadataInterface, table=True):
|
|
437
438
|
|
438
439
|
return ArtifactVersionResponse(
|
439
440
|
id=self.id,
|
441
|
+
project_id=self.project_id,
|
440
442
|
body=body,
|
441
443
|
metadata=metadata,
|
442
444
|
resources=resources,
|
@@ -228,6 +228,7 @@ class ModelSchema(NamedSchema, table=True):
|
|
228
228
|
|
229
229
|
return ModelResponse(
|
230
230
|
id=self.id,
|
231
|
+
project_id=self.project_id,
|
231
232
|
name=self.name,
|
232
233
|
body=body,
|
233
234
|
metadata=metadata,
|
@@ -502,6 +503,7 @@ class ModelVersionSchema(NamedSchema, RunMetadataInterface, table=True):
|
|
502
503
|
|
503
504
|
return ModelVersionResponse(
|
504
505
|
id=self.id,
|
506
|
+
project_id=self.project_id,
|
505
507
|
name=self.name,
|
506
508
|
body=body,
|
507
509
|
metadata=metadata,
|
@@ -32,7 +32,6 @@ from zenml.models import (
|
|
32
32
|
PipelineDeploymentResponseBody,
|
33
33
|
PipelineDeploymentResponseMetadata,
|
34
34
|
)
|
35
|
-
from zenml.utils.json_utils import pydantic_encoder
|
36
35
|
from zenml.zen_stores.schemas.base_schemas import BaseSchema
|
37
36
|
from zenml.zen_stores.schemas.code_repository_schemas import (
|
38
37
|
CodeReferenceSchema,
|
@@ -188,6 +187,14 @@ class PipelineDeploymentSchema(BaseSchema, table=True):
|
|
188
187
|
Returns:
|
189
188
|
The created `PipelineDeploymentSchema`.
|
190
189
|
"""
|
190
|
+
# Don't include the merged config in the step configurations, we
|
191
|
+
# reconstruct it in the `to_model` method using the pipeline
|
192
|
+
# configuration.
|
193
|
+
step_configurations = {
|
194
|
+
invocation_id: step.model_dump(mode="json", exclude={"config"})
|
195
|
+
for invocation_id, step in request.step_configurations.items()
|
196
|
+
}
|
197
|
+
|
191
198
|
client_env = json.dumps(request.client_environment)
|
192
199
|
if len(client_env) > TEXT_FIELD_MAX_LENGTH:
|
193
200
|
logger.warning(
|
@@ -208,9 +215,8 @@ class PipelineDeploymentSchema(BaseSchema, table=True):
|
|
208
215
|
run_name_template=request.run_name_template,
|
209
216
|
pipeline_configuration=request.pipeline_configuration.model_dump_json(),
|
210
217
|
step_configurations=json.dumps(
|
211
|
-
|
218
|
+
step_configurations,
|
212
219
|
sort_keys=False,
|
213
|
-
default=pydantic_encoder,
|
214
220
|
),
|
215
221
|
client_environment=client_env,
|
216
222
|
client_version=request.client_version,
|
@@ -254,8 +260,10 @@ class PipelineDeploymentSchema(BaseSchema, table=True):
|
|
254
260
|
self.pipeline_configuration
|
255
261
|
)
|
256
262
|
step_configurations = json.loads(self.step_configurations)
|
257
|
-
for
|
258
|
-
step_configurations[
|
263
|
+
for invocation_id, step in step_configurations.items():
|
264
|
+
step_configurations[invocation_id] = Step.from_dict(
|
265
|
+
step, pipeline_configuration
|
266
|
+
)
|
259
267
|
|
260
268
|
client_environment = json.loads(self.client_environment)
|
261
269
|
if not include_python_packages:
|
@@ -287,6 +295,7 @@ class PipelineDeploymentSchema(BaseSchema, table=True):
|
|
287
295
|
)
|
288
296
|
return PipelineDeploymentResponse(
|
289
297
|
id=self.id,
|
298
|
+
project_id=self.project_id,
|
290
299
|
body=body,
|
291
300
|
metadata=metadata,
|
292
301
|
)
|
@@ -317,10 +317,6 @@ class PipelineRunSchema(NamedSchema, RunMetadataInterface, table=True):
|
|
317
317
|
)
|
318
318
|
|
319
319
|
config = deployment.pipeline_configuration
|
320
|
-
new_substitutions = config._get_full_substitutions(self.start_time)
|
321
|
-
config = config.model_copy(
|
322
|
-
update={"substitutions": new_substitutions}
|
323
|
-
)
|
324
320
|
client_environment = deployment.client_environment
|
325
321
|
|
326
322
|
stack = deployment.stack
|
@@ -352,6 +348,8 @@ class PipelineRunSchema(NamedSchema, RunMetadataInterface, table=True):
|
|
352
348
|
"pipeline_configuration."
|
353
349
|
)
|
354
350
|
|
351
|
+
config.finalize_substitutions(start_time=self.start_time, inplace=True)
|
352
|
+
|
355
353
|
body = PipelineRunResponseBody(
|
356
354
|
user=self.user.to_model() if self.user else None,
|
357
355
|
status=ExecutionStatus(self.status),
|
@@ -437,6 +435,7 @@ class PipelineRunSchema(NamedSchema, RunMetadataInterface, table=True):
|
|
437
435
|
|
438
436
|
return PipelineRunResponse(
|
439
437
|
id=self.id,
|
438
|
+
project_id=self.project_id,
|
440
439
|
name=self.name,
|
441
440
|
body=body,
|
442
441
|
metadata=metadata,
|
@@ -232,9 +232,7 @@ class StepRunSchema(NamedSchema, RunMetadataInterface, table=True):
|
|
232
232
|
The created StepRunResponse.
|
233
233
|
|
234
234
|
Raises:
|
235
|
-
ValueError: In case the step run configuration
|
236
|
-
RuntimeError: If the step run schema does not have a deployment_id
|
237
|
-
or a step_configuration.
|
235
|
+
ValueError: In case the step run configuration is missing.
|
238
236
|
"""
|
239
237
|
input_artifacts = {
|
240
238
|
artifact.name: StepRunInputResponse(
|
@@ -252,49 +250,38 @@ class StepRunSchema(NamedSchema, RunMetadataInterface, table=True):
|
|
252
250
|
artifact.artifact_version.to_model()
|
253
251
|
)
|
254
252
|
|
255
|
-
|
253
|
+
step = None
|
256
254
|
if self.deployment is not None:
|
257
|
-
|
255
|
+
step_configurations = json.loads(
|
258
256
|
self.deployment.step_configurations
|
259
257
|
)
|
260
|
-
if self.name in
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
new_substitutions = (
|
265
|
-
full_step_config.config._get_full_substitutions(
|
266
|
-
PipelineConfiguration.model_validate_json(
|
267
|
-
self.deployment.pipeline_configuration
|
268
|
-
),
|
269
|
-
self.pipeline_run.start_time,
|
258
|
+
if self.name in step_configurations:
|
259
|
+
pipeline_configuration = (
|
260
|
+
PipelineConfiguration.model_validate_json(
|
261
|
+
self.deployment.pipeline_configuration
|
270
262
|
)
|
271
263
|
)
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
update={"substitutions": new_substitutions}
|
276
|
-
)
|
277
|
-
}
|
278
|
-
)
|
279
|
-
elif not self.step_configuration:
|
280
|
-
raise ValueError(
|
281
|
-
f"Unable to load the configuration for step `{self.name}` from the"
|
282
|
-
f"database. To solve this please delete the pipeline run that this"
|
283
|
-
f"step run belongs to. Pipeline Run ID: `{self.pipeline_run_id}`."
|
264
|
+
pipeline_configuration.finalize_substitutions(
|
265
|
+
start_time=self.pipeline_run.start_time,
|
266
|
+
inplace=True,
|
284
267
|
)
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
if full_step_config is None:
|
289
|
-
if self.step_configuration:
|
290
|
-
full_step_config = Step.model_validate_json(
|
291
|
-
self.step_configuration
|
292
|
-
)
|
293
|
-
else:
|
294
|
-
raise RuntimeError(
|
295
|
-
"Step run model creation has failed. Each step run entry "
|
296
|
-
"should either have a deployment_id or step_configuration."
|
268
|
+
step = Step.from_dict(
|
269
|
+
step_configurations[self.name],
|
270
|
+
pipeline_configuration=pipeline_configuration,
|
297
271
|
)
|
272
|
+
if not step and self.step_configuration:
|
273
|
+
# In this legacy case, we're guaranteed to have the merged
|
274
|
+
# config stored in the DB, which means we can instantiate the
|
275
|
+
# `Step` object directly without passing the pipeline
|
276
|
+
# configuration.
|
277
|
+
step = Step.model_validate_json(self.step_configuration)
|
278
|
+
elif not step:
|
279
|
+
raise ValueError(
|
280
|
+
f"Unable to load the configuration for step `{self.name}` from "
|
281
|
+
"the database. To solve this please delete the pipeline run "
|
282
|
+
"that this step run belongs to. Pipeline Run ID: "
|
283
|
+
f"`{self.pipeline_run_id}`."
|
284
|
+
)
|
298
285
|
|
299
286
|
body = StepRunResponseBody(
|
300
287
|
user=self.user.to_model() if self.user else None,
|
@@ -311,8 +298,8 @@ class StepRunSchema(NamedSchema, RunMetadataInterface, table=True):
|
|
311
298
|
if include_metadata:
|
312
299
|
metadata = StepRunResponseMetadata(
|
313
300
|
project=self.project.to_model(),
|
314
|
-
config=
|
315
|
-
spec=
|
301
|
+
config=step.config,
|
302
|
+
spec=step.spec,
|
316
303
|
cache_key=self.cache_key,
|
317
304
|
code_hash=self.code_hash,
|
318
305
|
docstring=self.docstring,
|
@@ -335,6 +322,7 @@ class StepRunSchema(NamedSchema, RunMetadataInterface, table=True):
|
|
335
322
|
|
336
323
|
return StepRunResponse(
|
337
324
|
id=self.id,
|
325
|
+
project_id=self.project_id,
|
338
326
|
name=self.name,
|
339
327
|
body=body,
|
340
328
|
metadata=metadata,
|
@@ -96,22 +96,26 @@ def generate_config_template(
|
|
96
96
|
deployment_model = deployment.to_model(include_metadata=True)
|
97
97
|
|
98
98
|
steps_configs = {
|
99
|
-
name: step.
|
99
|
+
name: step.step_config_overrides.model_dump(
|
100
100
|
include=set(StepConfigurationUpdate.model_fields),
|
101
101
|
exclude={"name", "outputs"},
|
102
|
+
exclude_none=True,
|
103
|
+
exclude_defaults=True,
|
102
104
|
)
|
103
105
|
for name, step in deployment_model.step_configurations.items()
|
104
106
|
}
|
105
107
|
|
106
108
|
for config in steps_configs.values():
|
107
|
-
config
|
109
|
+
config.get("settings", {}).pop("docker", None)
|
108
110
|
|
109
111
|
pipeline_config = deployment_model.pipeline_configuration.model_dump(
|
110
112
|
include=set(PipelineRunConfiguration.model_fields),
|
111
113
|
exclude={"schedule", "build", "parameters"},
|
114
|
+
exclude_none=True,
|
115
|
+
exclude_defaults=True,
|
112
116
|
)
|
113
117
|
|
114
|
-
pipeline_config
|
118
|
+
pipeline_config.get("settings", {}).pop("docker", None)
|
115
119
|
|
116
120
|
config_template = {
|
117
121
|
"run_name": deployment_model.run_name_template,
|
{zenml_nightly-0.82.0.dev20250509.dist-info → zenml_nightly-0.82.0.dev20250511.dist-info}/RECORD
RENAMED
@@ -1,5 +1,5 @@
|
|
1
1
|
zenml/README.md,sha256=827dekbOWAs1BpW7VF1a4d7EbwPbjwccX-2zdXBENZo,1777
|
2
|
-
zenml/VERSION,sha256=
|
2
|
+
zenml/VERSION,sha256=sNYKOurs-d4b5GAaVuicbVQeHyNYJIL-DKO5dTE8P_E,19
|
3
3
|
zenml/__init__.py,sha256=CKEyepFK-7akXYiMrNVh92Nb01Cjs23w4_YyI6sgdc8,2242
|
4
4
|
zenml/actions/__init__.py,sha256=mrt6wPo73iKRxK754_NqsGyJ3buW7RnVeIGXr1xEw8Y,681
|
5
5
|
zenml/actions/base_action.py,sha256=UcaHev6BTuLDwuswnyaPjdA8AgUqB5xPZ-lRtuvf2FU,25553
|
@@ -65,11 +65,11 @@ zenml/code_repositories/local_repository_context.py,sha256=1VyiYkJBDVg0iGusgRQDT
|
|
65
65
|
zenml/config/__init__.py,sha256=DZEic7euSbwI9Yb3FMRQhTgfhqz-C6OdAiYmOb0-opI,1519
|
66
66
|
zenml/config/base_settings.py,sha256=itoLqc1cOwEYhgSGdZmSKSaBevQkvYH7NQh7PUamazc,1700
|
67
67
|
zenml/config/build_configuration.py,sha256=tEAIXwAGS8Flxo4mK5BGHsBk7LPWW16MOa6oRDymZ7k,6172
|
68
|
-
zenml/config/compiler.py,sha256=
|
68
|
+
zenml/config/compiler.py,sha256=bK3LCDkrFc9SapJYH-vuQZ_o8scHNs-FdC5DblIUU4U,23024
|
69
69
|
zenml/config/constants.py,sha256=QvSgMwXWxtspcJ45CrFDP1ZY3w6gS3bIhXLOtIDAbZA,713
|
70
70
|
zenml/config/docker_settings.py,sha256=w62SDW2Qo5jFxcikHr8p-Lk6ymC2ieh3MnEfkte9Lf0,13322
|
71
71
|
zenml/config/global_config.py,sha256=ZD3WodfcWMBJZOl1FNn3ztzwilGDDv9EKdHClLqSO8s,29562
|
72
|
-
zenml/config/pipeline_configurations.py,sha256=
|
72
|
+
zenml/config/pipeline_configurations.py,sha256=7trCbElpqGGgawii2FrdLW8fKaAWCR8jACkNqdG_vcQ,3983
|
73
73
|
zenml/config/pipeline_run_configuration.py,sha256=Y9C5mVUH-w4gc1w1PCQFpjEmfBBpSMvb8riA_sL78hY,2311
|
74
74
|
zenml/config/pipeline_spec.py,sha256=uWpiIfznJvXAiKs1yMIUDT1h1tYEFNO-RDVTYcIv9CE,2821
|
75
75
|
zenml/config/resource_settings.py,sha256=0taXGHvDfXuvpMplxsuzpznB1sAvWJIGnXoVJ9-ySfw,3899
|
@@ -80,12 +80,12 @@ zenml/config/secrets_store_config.py,sha256=y05zqyQhr_DGrs3IfBGa_FRoZ043hSYRT5wz
|
|
80
80
|
zenml/config/server_config.py,sha256=or-LKYFl-9yE3MEq_yPa5aCCu3d5_f0tL9MqPtb_3-c,31852
|
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=
|
83
|
+
zenml/config/step_configurations.py,sha256=vjGtCoHneUJeaMkTiuzl7TTPBO94MefxNlFIAL1l5rU,13038
|
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
|
87
87
|
zenml/console.py,sha256=hj_KerPQKwnyKACj0ehSqUQX0mGVCJBKE1QvCt6ik3A,1160
|
88
|
-
zenml/constants.py,sha256=
|
88
|
+
zenml/constants.py,sha256=Lkm9EWkhAEwxdOuVHxSmLB6XEpa6-sw1TfKvpaVNEhk,16545
|
89
89
|
zenml/container_registries/__init__.py,sha256=ZSPbBIOnzhg88kQSpYgKe_POLuru14m629665-kAVAA,2200
|
90
90
|
zenml/container_registries/azure_container_registry.py,sha256=t1sfDa94Vzbyqtb1iPFNutJ2EXV5_p9CUNITasoiQ70,2667
|
91
91
|
zenml/container_registries/base_container_registry.py,sha256=-9RIkD6oXNPaU59R3PB_PtyCqsFoLPLSn5xYZmEmzbc,8915
|
@@ -624,13 +624,13 @@ zenml/models/v2/base/base.py,sha256=Oz6iWCaJw1ykoYe2tTvGJqalGmDp0tRS9r1NpBx8WsM,
|
|
624
624
|
zenml/models/v2/base/base_plugin_flavor.py,sha256=BfPL4gm5i7ad7_vuRmPtC-rE2kl0W_8SmpWme8Akv1c,2608
|
625
625
|
zenml/models/v2/base/filter.py,sha256=hNPUR_BJ0vomb9fgB8D64p8nHMUAvS7Izv3BHFQ6bh4,40834
|
626
626
|
zenml/models/v2/base/page.py,sha256=yBpWB-8iUmyRwXKSJvX3v9SB7WOnyRa25O8SAss24xk,2601
|
627
|
-
zenml/models/v2/base/scoped.py,sha256=
|
627
|
+
zenml/models/v2/base/scoped.py,sha256=XxBqIJnj8QYUjAdLE4uGIj1euG0BMbO9pmBTmbzdKgQ,22554
|
628
628
|
zenml/models/v2/core/__init__.py,sha256=LGMIUJi19sOsvo54roZSQwDp_czNQYtenqd_frTLIhU,613
|
629
629
|
zenml/models/v2/core/action.py,sha256=IsgL4y9MUqEEbSNRSx03J9Bnv1uurOwLq7V2Jz9Kjnc,7887
|
630
630
|
zenml/models/v2/core/action_flavor.py,sha256=DlGlJTOcgLSDYAsrbAyXOJVdo7X2GYTFQTTEG5BEf-Q,1718
|
631
631
|
zenml/models/v2/core/api_key.py,sha256=0iye9ftNk-Gjg4izZqYqbNgF1UR51WdRfasiAE2TqPw,11536
|
632
632
|
zenml/models/v2/core/artifact.py,sha256=m8Tw_DNaum3P-jP7pV2GdHvvv0EbsLkpwEbUx9JDMNM,8084
|
633
|
-
zenml/models/v2/core/artifact_version.py,sha256=
|
633
|
+
zenml/models/v2/core/artifact_version.py,sha256=vkzVWN7cJ9go8D_vIHbKG-pn3TA7LSMbg-09tbxB67M,23631
|
634
634
|
zenml/models/v2/core/artifact_visualization.py,sha256=milAHTpfuYd8Dx_oB4hcPYJL-TMoiU0FwUI0UhB3F-E,3115
|
635
635
|
zenml/models/v2/core/code_reference.py,sha256=9xy3Gzychq16lLUs01va3gGfwdu-AMrFgys_ua89uFY,3557
|
636
636
|
zenml/models/v2/core/code_repository.py,sha256=qMqHF4uU2LkSShdBKb14Sg3XLGHLd7aMUEOyc_H0uZs,5556
|
@@ -690,7 +690,7 @@ zenml/orchestrators/local_docker/__init__.py,sha256=k8J68ydy6HmmvE9tWo32g761H8P_
|
|
690
690
|
zenml/orchestrators/local_docker/local_docker_orchestrator.py,sha256=4b4oiCQ_PnfzgsHZuGrWeVEvjsrq_0yvVqtBUqz3Ai4,9353
|
691
691
|
zenml/orchestrators/output_utils.py,sha256=01vqke1ZfmfuLpgxNerF-QL2wA0VPv1zUdvlMw0OwUY,3508
|
692
692
|
zenml/orchestrators/publish_utils.py,sha256=_77t2sVq3Tm-yAYg2NPxcCD7Y8lwe0lm55NNrtMUzQQ,4741
|
693
|
-
zenml/orchestrators/step_launcher.py,sha256=
|
693
|
+
zenml/orchestrators/step_launcher.py,sha256=YOeQtvmI__c8ugrqk2KSyITYVOxoLIAZxUIxkLyv-UY,17857
|
694
694
|
zenml/orchestrators/step_run_utils.py,sha256=7GOWAW3izFopGPkvvjYyJKiYgYuHuHJ8V6eZfwjAx8E,13401
|
695
695
|
zenml/orchestrators/step_runner.py,sha256=EUgKG_g0fOQ6gnB1hPSSa6UXwUKVkguC-Yj-Q0yEQXg,26632
|
696
696
|
zenml/orchestrators/topsort.py,sha256=D8evz3X47zwpXd90NMLsJD-_uCeXtV6ClzNfDUrq7cM,5784
|
@@ -701,7 +701,7 @@ zenml/pipelines/build_utils.py,sha256=FYflpfK8i9jLgy8Ybr2dhQZarUDA1_0shvEARPkBMY
|
|
701
701
|
zenml/pipelines/pipeline_context.py,sha256=4BixReLcPo33VtNBDrMwnJqjKTinHjmO5AOfmoeIOQM,3659
|
702
702
|
zenml/pipelines/pipeline_decorator.py,sha256=LB21QYrbFeBdUGwKBUNbdpXAxO4OOtYl5Vs_mzJNXqU,4600
|
703
703
|
zenml/pipelines/pipeline_definition.py,sha256=954y2DmoY9luHhutC2nVRXzZ_KLnTWFnS5LSzrq_OZo,59637
|
704
|
-
zenml/pipelines/run_utils.py,sha256=
|
704
|
+
zenml/pipelines/run_utils.py,sha256=uhccBmXcS_4GkIV33wom4R9bT_AKHr385DXnHAN8iGo,12315
|
705
705
|
zenml/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
706
706
|
zenml/plugins/base_plugin_flavor.py,sha256=88IxFW91UB_rQ8xPlfRnIhIJh7A308NEq2epMMdlOng,2530
|
707
707
|
zenml/plugins/plugin_flavor_registry.py,sha256=LsN2Q0K-7EQ9H4uvlEG62Y0C1_Ro1UwppX4cnGbEcOA,10862
|
@@ -736,7 +736,7 @@ zenml/stack/authentication_mixin.py,sha256=_Rn6SurHnyBuU_CJBOkwPR305yQFfqN60t6nE
|
|
736
736
|
zenml/stack/flavor.py,sha256=wFLjajCw_G2NMR2UJzEGH2dcLj1dvmU9dDI5iS8b9rk,10544
|
737
737
|
zenml/stack/flavor_registry.py,sha256=IL0fRrxxQJ9YkCYCeADP7nwWEQo4XBElJY4owMjKGbQ,6108
|
738
738
|
zenml/stack/stack.py,sha256=3mLGNBuep0PeBcoFfOEaB6Ya206yav1ppiH5YEjp9xA,33042
|
739
|
-
zenml/stack/stack_component.py,sha256=
|
739
|
+
zenml/stack/stack_component.py,sha256=D6rSPvbOIiTCX0k1iLfdnmPwycPf2jnnkcMY2xCnZiA,29327
|
740
740
|
zenml/stack/stack_validator.py,sha256=hWbvvGIeWLj6NwSsF4GCc6RAxAWvxHXTcBZL9nJvcak,3111
|
741
741
|
zenml/stack/utils.py,sha256=CHs9rxdqHkUT12KPhJX1YPtIWnZBoVlRlq5PzNymq3E,6406
|
742
742
|
zenml/stack_deployments/__init__.py,sha256=-7593cQ_ZgRn774Ol-8AKXXQquIU4DSiaThVEr6TfWM,644
|
@@ -1024,7 +1024,7 @@ zenml/zen_server/rbac/endpoint_utils.py,sha256=l6V6DwsPGmT6dLJmY4MHMRfRXdc0lZVib
|
|
1024
1024
|
zenml/zen_server/rbac/models.py,sha256=Xhz0XqmVqg3ji9uTwjlhQ4IuQ2ivrT4gVdHi5ZkjFC4,4933
|
1025
1025
|
zenml/zen_server/rbac/rbac_interface.py,sha256=VPMNnUIPcqJWDngITX6cfaPlM6zJwzCApXAnT_oaxSQ,3431
|
1026
1026
|
zenml/zen_server/rbac/rbac_sql_zen_store.py,sha256=djGycBkciChk48q8oL7mHM0c-cHJM-S7inv5f3gcDgg,5942
|
1027
|
-
zenml/zen_server/rbac/utils.py,sha256=
|
1027
|
+
zenml/zen_server/rbac/utils.py,sha256=09r1dSZ04hcag21rg6Ug2fMCdYfNjSBnx_W8C336GzE,24254
|
1028
1028
|
zenml/zen_server/rbac/zenml_cloud_rbac.py,sha256=L1Tio4IcNNxNWnVpAqBWYgdVfrqR20ddvdhWAo1i3f4,6055
|
1029
1029
|
zenml/zen_server/routers/__init__.py,sha256=ViyAhWL-ogHxE9wBvB_iMcur5H1NRVrzXkpogVY7FBA,641
|
1030
1030
|
zenml/zen_server/routers/actions_endpoints.py,sha256=MFausi27i5QBB5s4vbjQQTVqFiRlk5jF5lRM6vsRM2o,9422
|
@@ -1039,7 +1039,7 @@ zenml/zen_server/routers/logs_endpoints.py,sha256=qq7vLfJzmjIZ9C4DSw_IPjqHi5LdPb
|
|
1039
1039
|
zenml/zen_server/routers/model_versions_endpoints.py,sha256=VhmBUuMFef8bXvDIRncPD5hLa851lmIvmASI_lw2F5o,15483
|
1040
1040
|
zenml/zen_server/routers/models_endpoints.py,sha256=Bh_f7wvw1ZNwmZ51LRiiz3ftatkp_J5t622bJinmOaY,5680
|
1041
1041
|
zenml/zen_server/routers/pipeline_builds_endpoints.py,sha256=PQRSrDcyor6laZyOl74BODcdg0JSdFr-hbNvEJkJIG0,5333
|
1042
|
-
zenml/zen_server/routers/pipeline_deployments_endpoints.py,sha256
|
1042
|
+
zenml/zen_server/routers/pipeline_deployments_endpoints.py,sha256=f45O7dQqZnFWA7C62N5VGAtBsqpt38cRYsGgTaBS3Dw,9534
|
1043
1043
|
zenml/zen_server/routers/pipelines_endpoints.py,sha256=R6OM-0Tc6ZNPzQmLs5MWTJIE4FaksHt6xuDqCBtmr1U,7782
|
1044
1044
|
zenml/zen_server/routers/plugin_endpoints.py,sha256=vgIdA0kdYsf8PeF_pqDaqEYnIi2mlYALAv4uB9Nn7S0,3239
|
1045
1045
|
zenml/zen_server/routers/projects_endpoints.py,sha256=iIgCg_0_iR5OddgULvsP4xxMOOmEGmtCuSKYZVRE9f4,8464
|
@@ -1064,7 +1064,7 @@ zenml/zen_server/routers/webhook_endpoints.py,sha256=KOJsuykv_TMjL3oEItpC4OWWP75
|
|
1064
1064
|
zenml/zen_server/secure_headers.py,sha256=glh6QujnjyeoH1_FK-tAS-105G-qKS_34AqSzqJ6TRc,4182
|
1065
1065
|
zenml/zen_server/template_execution/__init__.py,sha256=79knXLKfegsvVSVSWecpqrepq6iAavTUA4hKuiDk-WE,613
|
1066
1066
|
zenml/zen_server/template_execution/runner_entrypoint_configuration.py,sha256=Y8aYJhqqs8Kv8I1q-dM1WemS5VBIfyoaaYH_YkzC7iY,1541
|
1067
|
-
zenml/zen_server/template_execution/utils.py,sha256=
|
1067
|
+
zenml/zen_server/template_execution/utils.py,sha256=6a62U0hLDe79xLbZM-WbzY-miOeTejQ7vpIkmch0ggU,19086
|
1068
1068
|
zenml/zen_server/template_execution/workload_manager_interface.py,sha256=CL9c7z8ajuZE01DaHmdCDCZmsroDcTarvN-nE8jv6qQ,2590
|
1069
1069
|
zenml/zen_server/utils.py,sha256=yOwPI0DxzDIxF7Ppnty_DuGMWYJ_ubHUNWfbTQ1_q9Q,18461
|
1070
1070
|
zenml/zen_server/zen_server_api.py,sha256=1_YHOUmBulXuHWCxDLYtDCMxGze159UmU3f05643PSg,18182
|
@@ -1274,36 +1274,36 @@ zenml/zen_stores/migrations/versions/fbd7f18ced1e_increase_step_run_field_length
|
|
1274
1274
|
zenml/zen_stores/migrations/versions/ff538a321a92_migrate_onboarding_state.py,sha256=gsUFLJQ32_o9U35JCVqkqJVVk-zfq3yel25hXhzVFm4,3829
|
1275
1275
|
zenml/zen_stores/rest_zen_store.py,sha256=-Xjw9QTY6lvgp5mDE4bBIhU_ANADS83Si88xMcLTFIE,158371
|
1276
1276
|
zenml/zen_stores/schemas/__init__.py,sha256=4EXqExiVyxdnGxhQ_Hz79mOdRuMD0LsGlw0PaP2Ef6o,4333
|
1277
|
-
zenml/zen_stores/schemas/action_schemas.py,sha256=
|
1277
|
+
zenml/zen_stores/schemas/action_schemas.py,sha256=sv2J2TP12MeyGPQR2JsOPIivbPQ5OImg64exYS7CZBM,6496
|
1278
1278
|
zenml/zen_stores/schemas/api_key_schemas.py,sha256=0pK7b9HlJuQL3DuKT4eGjFb87tyd4x-E2VyxJLpRv3o,7459
|
1279
|
-
zenml/zen_stores/schemas/artifact_schemas.py,sha256=
|
1279
|
+
zenml/zen_stores/schemas/artifact_schemas.py,sha256=wefj8m1RUeTrfU3rJwFYKYkdJq5Ycpqxm_zbbFrOCvI,16088
|
1280
1280
|
zenml/zen_stores/schemas/artifact_visualization_schemas.py,sha256=zv_Mg--WMTtAPEy5PXIkZlxq-oLrXZNLHXb_YgZbm0g,3667
|
1281
1281
|
zenml/zen_stores/schemas/base_schemas.py,sha256=-MDYnS4ZLDe6x75nTXuVrOSbcYOuECLNk-yxjfEdJh4,2043
|
1282
|
-
zenml/zen_stores/schemas/code_repository_schemas.py,sha256=
|
1282
|
+
zenml/zen_stores/schemas/code_repository_schemas.py,sha256=24g-ZyuW9buDhGTJ_5B2WXVv6waBAtwH6X1DNdIzEbA,7662
|
1283
1283
|
zenml/zen_stores/schemas/component_schemas.py,sha256=sk_xs0OGInStSJltMPbVaktnVUk_oC5oX0R3ClkPeS8,7948
|
1284
1284
|
zenml/zen_stores/schemas/constants.py,sha256=bcadtiWEWkpzRzvnj46yuAaC7DE09g2H9L9r398lV00,704
|
1285
1285
|
zenml/zen_stores/schemas/device_schemas.py,sha256=voVBknm14NmFpij1EGb_HhVlUng0cglCMXkYSxDRq1s,9126
|
1286
|
-
zenml/zen_stores/schemas/event_source_schemas.py,sha256=
|
1286
|
+
zenml/zen_stores/schemas/event_source_schemas.py,sha256=Psj2xcPLN30MEDiihrEahJGh4jL4N7XwxzXvPDzbQRw,6595
|
1287
1287
|
zenml/zen_stores/schemas/flavor_schemas.py,sha256=jlEhhhpqvhzsdwShE_J3mJ7sqgfRKou6KKAh6bOvhkM,4690
|
1288
1288
|
zenml/zen_stores/schemas/logs_schemas.py,sha256=qv6fs3JiVgzlmTXJqb_gG5NsU5q_50e0167JiWIxR14,3588
|
1289
|
-
zenml/zen_stores/schemas/model_schemas.py,sha256=
|
1290
|
-
zenml/zen_stores/schemas/pipeline_build_schemas.py,sha256=
|
1291
|
-
zenml/zen_stores/schemas/pipeline_deployment_schemas.py,sha256=
|
1292
|
-
zenml/zen_stores/schemas/pipeline_run_schemas.py,sha256=
|
1293
|
-
zenml/zen_stores/schemas/pipeline_schemas.py,sha256=
|
1289
|
+
zenml/zen_stores/schemas/model_schemas.py,sha256=RpW78rHclJ7hyq789F6R6VUrluPWLvtpfpBTTgwGx5Y,25580
|
1290
|
+
zenml/zen_stores/schemas/pipeline_build_schemas.py,sha256=zAF8OVAAPgAeg-pmihlayIljwiAj3eoF7GVCCGNnP68,5882
|
1291
|
+
zenml/zen_stores/schemas/pipeline_deployment_schemas.py,sha256=FBXkV19_KhpjRYTkx3QkfK07WdVTbjkiotydsQVS71I,11253
|
1292
|
+
zenml/zen_stores/schemas/pipeline_run_schemas.py,sha256=quxso7FC-VxxBiJyrDjpDsE-ZtfDxWw2XIay-cla1Vg,18608
|
1293
|
+
zenml/zen_stores/schemas/pipeline_schemas.py,sha256=5m4IyFu8bSF4kqMIeu9cJl04mjlAoAqX6CMLUQoFCp4,7173
|
1294
1294
|
zenml/zen_stores/schemas/project_schemas.py,sha256=X2GClPNQz0COsEZX8xI-I8Sm68Hb6f20Obm24mQyLS0,6013
|
1295
1295
|
zenml/zen_stores/schemas/run_metadata_schemas.py,sha256=G94rT4ldluMSnf9rm7R_9rw_GlgaAyq72ptkHl0gHeg,3605
|
1296
|
-
zenml/zen_stores/schemas/run_template_schemas.py,sha256=
|
1297
|
-
zenml/zen_stores/schemas/schedule_schema.py,sha256=
|
1296
|
+
zenml/zen_stores/schemas/run_template_schemas.py,sha256=WVi_B4wFzoCtHOsRhb8qOONUih1vGGxanviefW8uKKg,10083
|
1297
|
+
zenml/zen_stores/schemas/schedule_schema.py,sha256=DdVXlNn62tg5m2gqKAuWhIvvl8y-MQBjIplUapYPvQQ,7693
|
1298
1298
|
zenml/zen_stores/schemas/schema_utils.py,sha256=Xahifq2fJ5szXCM00ZZ6461Div9Suatzl6sy9hVhPkk,3612
|
1299
1299
|
zenml/zen_stores/schemas/secret_schemas.py,sha256=HrihLSUPJKmWbQHogGmi6e0lYPoQHUGWGRl69sLnZMk,9430
|
1300
1300
|
zenml/zen_stores/schemas/server_settings_schemas.py,sha256=usBE-idRrmK-LeLN0zDtCRCGP51YTnyKfIx5GZ0_ATg,4275
|
1301
1301
|
zenml/zen_stores/schemas/service_connector_schemas.py,sha256=kNJ6TmM2RA16wc73zusosHxWUm6gVpyowlY_OJv-Oww,9709
|
1302
|
-
zenml/zen_stores/schemas/service_schemas.py,sha256=
|
1302
|
+
zenml/zen_stores/schemas/service_schemas.py,sha256=X9Z8yYM6AmOC69EO8kmWDU9EnO_KW10CXrQzM6EQ2Rc,9557
|
1303
1303
|
zenml/zen_stores/schemas/stack_schemas.py,sha256=SkMspxsnR420KU4mZlulPbEOR4DMSRyrcspe3HSYjHc,5393
|
1304
|
-
zenml/zen_stores/schemas/step_run_schemas.py,sha256=
|
1304
|
+
zenml/zen_stores/schemas/step_run_schemas.py,sha256=xZc7ABtwcCdzulw06_OHLva2XGRl_NI7HjeuN1ae71M,15762
|
1305
1305
|
zenml/zen_stores/schemas/tag_schemas.py,sha256=GMKdyT5pZb977vscOW41N2beVt-IHcELSiSSIBHqlUI,6377
|
1306
|
-
zenml/zen_stores/schemas/trigger_schemas.py,sha256=
|
1306
|
+
zenml/zen_stores/schemas/trigger_schemas.py,sha256=KfEQlXZh537cieEwvqY9g4VifG7PfAdll_BPZ5Q9xBA,10751
|
1307
1307
|
zenml/zen_stores/schemas/user_schemas.py,sha256=wLSHtfjjrYBWnX_PXv5KPz_DRdheTxZVjcgBe-cP__c,11497
|
1308
1308
|
zenml/zen_stores/schemas/utils.py,sha256=82-LQj1EV4jp69kKE2GolQw_zTDBvAkyA4cHDaSIj6U,4160
|
1309
1309
|
zenml/zen_stores/secrets_stores/__init__.py,sha256=VGMVerFv3xUWxnp5X_bHyQJwGCeN7BTovUDwho_w-4w,651
|
@@ -1316,10 +1316,10 @@ zenml/zen_stores/secrets_stores/secrets_store_interface.py,sha256=Q2Jbnt2Pp7NGlR
|
|
1316
1316
|
zenml/zen_stores/secrets_stores/service_connector_secrets_store.py,sha256=S87ne23D08PAwtfRVlVnBn8R0ilTpEh6r8blauNV5WQ,6941
|
1317
1317
|
zenml/zen_stores/secrets_stores/sql_secrets_store.py,sha256=LPFW757WCJLP1S8vrvjsrl2Tf1yo281xUTjSBsos4qk,8788
|
1318
1318
|
zenml/zen_stores/sql_zen_store.py,sha256=biOoDb2_zYmpsN-J-FSlKICYdwM9KDIe-_KN_yDf_mA,441414
|
1319
|
-
zenml/zen_stores/template_utils.py,sha256=
|
1319
|
+
zenml/zen_stores/template_utils.py,sha256=GbJ7LgGVYHSCKPEA8RNTxPoVTWqpC77F_lGzjJ4O1Fw,9220
|
1320
1320
|
zenml/zen_stores/zen_store_interface.py,sha256=fF_uL_FplnvGvM5o3jOQ8i1zHXhuhKLL2n4nvIKSR7E,92090
|
1321
|
-
zenml_nightly-0.82.0.
|
1322
|
-
zenml_nightly-0.82.0.
|
1323
|
-
zenml_nightly-0.82.0.
|
1324
|
-
zenml_nightly-0.82.0.
|
1325
|
-
zenml_nightly-0.82.0.
|
1321
|
+
zenml_nightly-0.82.0.dev20250511.dist-info/LICENSE,sha256=wbnfEnXnafPbqwANHkV6LUsPKOtdpsd-SNw37rogLtc,11359
|
1322
|
+
zenml_nightly-0.82.0.dev20250511.dist-info/METADATA,sha256=d-G4MWVNQJVUJbr34gl5sEHO-l5rUjoR09KrF0PaRHU,24315
|
1323
|
+
zenml_nightly-0.82.0.dev20250511.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
1324
|
+
zenml_nightly-0.82.0.dev20250511.dist-info/entry_points.txt,sha256=QK3ETQE0YswAM2mWypNMOv8TLtr7EjnqAFq1br_jEFE,43
|
1325
|
+
zenml_nightly-0.82.0.dev20250511.dist-info/RECORD,,
|
{zenml_nightly-0.82.0.dev20250509.dist-info → zenml_nightly-0.82.0.dev20250511.dist-info}/LICENSE
RENAMED
File without changes
|
{zenml_nightly-0.82.0.dev20250509.dist-info → zenml_nightly-0.82.0.dev20250511.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|