zenml-nightly 0.71.0.dev20250107__py3-none-any.whl → 0.71.0.dev20250111__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- zenml/VERSION +1 -1
- zenml/cli/base.py +1 -1
- zenml/cli/formatter.py +1 -1
- zenml/cli/integration.py +1 -1
- zenml/cli/model_registry.py +1 -2
- zenml/cli/secret.py +1 -2
- zenml/cli/service_connectors.py +1 -1
- zenml/cli/stack.py +2 -3
- zenml/cli/stack_components.py +4 -6
- zenml/cli/text_utils.py +1 -1
- zenml/cli/utils.py +4 -5
- zenml/client.py +1 -4
- zenml/constants.py +1 -0
- zenml/entrypoints/step_entrypoint_configuration.py +15 -0
- zenml/integrations/azure/__init__.py +1 -1
- zenml/integrations/azure/azureml_utils.py +1 -1
- zenml/integrations/azure/orchestrators/azureml_orchestrator_entrypoint_config.py +0 -5
- zenml/integrations/bitbucket/plugins/event_sources/bitbucket_webhook_event_source.py +3 -3
- zenml/integrations/databricks/orchestrators/databricks_orchestrator.py +1 -3
- zenml/integrations/evidently/metrics.py +2 -2
- zenml/integrations/evidently/tests.py +2 -2
- zenml/integrations/gcp/service_connectors/gcp_service_connector.py +3 -3
- zenml/integrations/github/plugins/event_sources/github_webhook_event_source.py +3 -3
- zenml/integrations/s3/utils.py +1 -2
- zenml/logger.py +1 -1
- zenml/models/v2/base/scoped.py +37 -34
- zenml/models/v2/core/artifact.py +86 -2
- zenml/models/v2/core/model.py +81 -2
- zenml/models/v2/core/pipeline.py +15 -12
- zenml/models/v2/core/pipeline_run.py +2 -0
- zenml/services/container/container_service.py +1 -1
- zenml/stack/stack_component.py +1 -1
- zenml/utils/deprecation_utils.py +6 -6
- zenml/utils/filesync_model.py +3 -3
- zenml/utils/function_utils.py +1 -1
- zenml/utils/pipeline_docker_image_builder.py +1 -1
- zenml/zen_server/auth.py +2 -5
- zenml/zen_server/dashboard/assets/{404-Cqu3EDCm.js → 404-Dfq64Boz.js} +1 -1
- zenml/zen_server/dashboard/assets/{@reactflow-D2Y7BWwz.js → @reactflow-BUNIMFeC.js} +1 -1
- zenml/zen_server/dashboard/assets/{AlertDialogDropdownItem-BHd71pVS.js → AlertDialogDropdownItem-B73Vs10T.js} +1 -1
- zenml/zen_server/dashboard/assets/{CodeSnippet-DIonwetW.js → CodeSnippet-DIJRT2NT.js} +1 -1
- zenml/zen_server/dashboard/assets/{CollapsibleCard-CDnC97pB.js → CollapsibleCard-BzUHGZOU.js} +1 -1
- zenml/zen_server/dashboard/assets/{Commands-BVEXKAOj.js → Commands-BEGyld4c.js} +1 -1
- zenml/zen_server/dashboard/assets/{ComponentBadge-CrRvovox.js → ComponentBadge-xyKiek1s.js} +1 -1
- zenml/zen_server/dashboard/assets/{CopyButton-B6wGAhQv.js → CopyButton-DhW-mapu.js} +1 -1
- zenml/zen_server/dashboard/assets/{CsvVizualization-CjcT7LMm.js → CsvVizualization-D8oazBiE.js} +1 -1
- zenml/zen_server/dashboard/assets/{DeleteAlertDialog-D2ELtM2W.js → DeleteAlertDialog-WkSIIgfy.js} +1 -1
- zenml/zen_server/dashboard/assets/{DialogItem-DXIMhBgU.js → DialogItem-Bgroeg29.js} +1 -1
- zenml/zen_server/dashboard/assets/{Error-B8uUfTpL.js → Error-CY5tlu17.js} +1 -1
- zenml/zen_server/dashboard/assets/{ExecutionStatus-ibAdY-dG.js → ExecutionStatus-G8mjIaeA.js} +1 -1
- zenml/zen_server/dashboard/assets/{Helpbox-BfAfhKHw.js → Helpbox-Bb1ed--O.js} +1 -1
- zenml/zen_server/dashboard/assets/{Infobox-M_SMOu96.js → Infobox-Da6-76M2.js} +1 -1
- zenml/zen_server/dashboard/assets/{InlineAvatar-DBA0a0-a.js → InlineAvatar-DqnZaBNq.js} +1 -1
- zenml/zen_server/dashboard/assets/{NestedCollapsible-DpgmEFKw.js → NestedCollapsible-aK5ojKoF.js} +1 -1
- zenml/zen_server/dashboard/assets/{Partials-D_ldD9if.js → Partials-CqZp5NMX.js} +1 -1
- zenml/zen_server/dashboard/assets/{ProBadge-DQbfFotM.js → ProBadge-B4tRUYve.js} +1 -1
- zenml/zen_server/dashboard/assets/{ProCta-Bcpb4rcY.js → ProCta-CZuP29Qz.js} +1 -1
- zenml/zen_server/dashboard/assets/{ProviderIcon-BZpgPigN.js → ProviderIcon-Bd7GUQ1_.js} +1 -1
- zenml/zen_server/dashboard/assets/{ProviderRadio-DWPnMuQ1.js → ProviderRadio-mstdqzsS.js} +1 -1
- zenml/zen_server/dashboard/assets/{RunSelector-DgRGaAc6.js → RunSelector-CsruSB4i.js} +1 -1
- zenml/zen_server/dashboard/assets/{RunsBody-KecfSkjY.js → RunsBody-DxxtWVYz.js} +1 -1
- zenml/zen_server/dashboard/assets/{SearchField-n-ILHnaP.js → SearchField-D6tPxyqw.js} +1 -1
- zenml/zen_server/dashboard/assets/{SecretTooltip-B8MrX5yu.js → SecretTooltip-CLzJIYW_.js} +1 -1
- zenml/zen_server/dashboard/assets/{SetPassword-B_IVq_wg.js → SetPassword-Yn50ooBC.js} +1 -1
- zenml/zen_server/dashboard/assets/{StackList-TWPBYnkF.js → StackList-U537qoYd.js} +1 -1
- zenml/zen_server/dashboard/assets/{Tabs-Rg857zmd.js → Tabs-CNv-eTYM.js} +1 -1
- zenml/zen_server/dashboard/assets/{Tick-COg4A-xo.js → Tick-jEIevzVf.js} +1 -1
- zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-C6Aj3hm6.js → UpdatePasswordSchemas-C16GW-kX.js} +1 -1
- zenml/zen_server/dashboard/assets/{UsageReason-BTLbx7w4.js → UsageReason-Bf2tzhv1.js} +1 -1
- zenml/zen_server/dashboard/assets/{WizardFooter-BCAj69Vj.js → WizardFooter-D6i-AP1K.js} +1 -1
- zenml/zen_server/dashboard/assets/{all-pipeline-runs-query-DMXkDrV2.js → all-pipeline-runs-query-DUti43aF.js} +1 -1
- zenml/zen_server/dashboard/assets/{create-stack-HfdbhLs4.js → create-stack-Ch2WPs9U.js} +1 -1
- zenml/zen_server/dashboard/assets/{delete-run-DZ4hIXff.js → delete-run-Byf9hTjA.js} +1 -1
- zenml/zen_server/dashboard/assets/{form-schemas-B0AVEd9b.js → form-schemas-BZqKBPBF.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-FO-p0GU7.js → index-CE0aQlv8.js} +3 -3
- zenml/zen_server/dashboard/assets/{index-DScjfBRb.js → index-CtdYkjUi.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-DPqSWjug.js → index-CyBKZcpO.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-I3bKUGUj.js → index-v6gQjDEo.js} +1 -1
- zenml/zen_server/dashboard/assets/{login-mutation-BQeo4wTY.js → login-mutation-DNDVp_2H.js} +1 -1
- zenml/zen_server/dashboard/assets/{not-found-gAJ5aDdR.js → not-found-Bmup4ctE.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-I3nKFGie.js → page--XLMzHrn.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DO1UcqPX.js → page-ANYGfEUL.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-AUwiQ14W.js → page-B5Sr8pib.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-CcQr8CPP.js → page-BC27C_OI.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-zaMqB_ao.js → page-BNxYrN0q.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-CiYxgZP_.js → page-BYJfqgLN.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-h_Stveon.js → page-B_0XkV48.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-R5dx3xGF.js → page-BrmJp1Wt.js} +1 -1
- zenml/zen_server/dashboard/assets/page-C2nU3Gxn.js +1 -0
- zenml/zen_server/dashboard/assets/{page-Dk32IeZm.js → page-C70wZtV2.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-CWxT5K5J.js → page-CHRn1fQm.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-M0w-n6vn.js → page-CWr96ZKN.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-Ce4Hrjnr.js → page-CXAbSyp9.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-D8ObrbH8.js → page-CaeI9ptC.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-B_Apk3xg.js → page-Cc8ZEuj4.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-BxL4qD4_.js → page-CltCNL0T.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-D4wdonLm.js → page-CmlYj7Nl.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DFuAUGt4.js → page-D6Ev5P8V.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-u_-ZXBKb.js → page-D9Oh05fl.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DRYXdL5o.js → page-DGlm1RVc.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-r8XK5vR7.js → page-DN4BVIOL.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DYEquBC2.js → page-Dif8CWyZ.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-BdowiCbr.js → page-DlIi5ThM.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-9Y9-gig0.js → page-DoW7YxTu.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-BKZYc2Zv.js → page-Dth9X1Ih.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-bT5pOvcB.js → page-DweqqCkF.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-CXuQufSe.js → page-DyOJ_pq3.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DGazBpuP.js → page-Hn8q9iJZ.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-hUqK889I.js → page-IhckKFnD.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-BU9FG4sR.js → page-LyZ_l8vR.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-Cldq1mpe.js → page-PamGpk0j.js} +1 -1
- zenml/zen_server/dashboard/assets/page-PxOWfKgF.js +2 -0
- zenml/zen_server/dashboard/assets/{persist-DAUi_3za.js → persist-DeXRG61d.js} +1 -1
- zenml/zen_server/dashboard/assets/{persist-AppN1B0J.js → persist-vP0-Xl4f.js} +1 -1
- zenml/zen_server/dashboard/assets/{service-BqqeXLEe.js → service-DH_oUqQj.js} +1 -1
- zenml/zen_server/dashboard/assets/{sharedSchema-uXN9FLLk.js → sharedSchema-Bw1_Wa7l.js} +1 -1
- zenml/zen_server/dashboard/assets/{stack-detail-query-XfZBiBP2.js → stack-detail-query-B_0R_fd6.js} +1 -1
- zenml/zen_server/dashboard/assets/{update-server-settings-mutation-BWmgVJwA.js → update-server-settings-mutation-D9qYhfaN.js} +1 -1
- zenml/zen_server/dashboard/assets/{url-BLwMbzES.js → url-Dh93fvh0.js} +1 -1
- zenml/zen_server/dashboard/index.html +3 -3
- zenml/zen_server/deploy/deployer.py +1 -1
- zenml/zen_server/rbac/rbac_sql_zen_store.py +3 -1
- zenml/zen_server/routers/webhook_endpoints.py +1 -2
- zenml/zen_stores/migrations/utils.py +1 -2
- zenml/zen_stores/migrations/versions/5330ba58bf20_rename_tables_and_foreign_keys.py +7 -9
- zenml/zen_stores/rest_zen_store.py +1 -1
- zenml/zen_stores/schemas/artifact_schemas.py +19 -19
- zenml/zen_stores/schemas/model_schemas.py +19 -19
- zenml/zen_stores/schemas/pipeline_run_schemas.py +18 -19
- zenml/zen_stores/schemas/pipeline_schemas.py +7 -5
- zenml/zen_stores/schemas/run_metadata_schemas.py +1 -45
- zenml/zen_stores/schemas/run_template_schemas.py +7 -5
- zenml/zen_stores/schemas/step_run_schemas.py +6 -8
- zenml/zen_stores/schemas/tag_schemas.py +5 -41
- zenml/zen_stores/schemas/utils.py +11 -12
- zenml/zen_stores/sql_zen_store.py +9 -3
- {zenml_nightly-0.71.0.dev20250107.dist-info → zenml_nightly-0.71.0.dev20250111.dist-info}/METADATA +2 -2
- {zenml_nightly-0.71.0.dev20250107.dist-info → zenml_nightly-0.71.0.dev20250111.dist-info}/RECORD +141 -141
- zenml/zen_server/dashboard/assets/page-B6XU7yYT.js +0 -2
- zenml/zen_server/dashboard/assets/page-Bg8OjTRe.js +0 -1
- {zenml_nightly-0.71.0.dev20250107.dist-info → zenml_nightly-0.71.0.dev20250111.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.71.0.dev20250107.dist-info → zenml_nightly-0.71.0.dev20250111.dist-info}/WHEEL +0 -0
- {zenml_nightly-0.71.0.dev20250107.dist-info → zenml_nightly-0.71.0.dev20250111.dist-info}/entry_points.txt +0 -0
zenml/models/v2/core/model.py
CHANGED
@@ -13,12 +13,16 @@
|
|
13
13
|
# permissions and limitations under the License.
|
14
14
|
"""Models representing models."""
|
15
15
|
|
16
|
-
from typing import TYPE_CHECKING, List, Optional
|
16
|
+
from typing import TYPE_CHECKING, Any, ClassVar, List, Optional, Type, TypeVar
|
17
17
|
from uuid import UUID
|
18
18
|
|
19
19
|
from pydantic import BaseModel, Field
|
20
20
|
|
21
|
-
from zenml.constants import
|
21
|
+
from zenml.constants import (
|
22
|
+
SORT_BY_LATEST_VERSION_KEY,
|
23
|
+
STR_FIELD_MAX_LENGTH,
|
24
|
+
TEXT_FIELD_MAX_LENGTH,
|
25
|
+
)
|
22
26
|
from zenml.models.v2.base.scoped import (
|
23
27
|
WorkspaceScopedRequest,
|
24
28
|
WorkspaceScopedResponse,
|
@@ -32,6 +36,11 @@ from zenml.utils.pagination_utils import depaginate
|
|
32
36
|
if TYPE_CHECKING:
|
33
37
|
from zenml.model.model import Model
|
34
38
|
from zenml.models.v2.core.tag import TagResponse
|
39
|
+
from zenml.zen_stores.schemas import BaseSchema
|
40
|
+
|
41
|
+
AnySchema = TypeVar("AnySchema", bound=BaseSchema)
|
42
|
+
|
43
|
+
AnyQuery = TypeVar("AnyQuery", bound=Any)
|
35
44
|
|
36
45
|
# ------------------ Request Model ------------------
|
37
46
|
|
@@ -320,3 +329,73 @@ class ModelFilter(WorkspaceScopedTaggableFilter):
|
|
320
329
|
default=None,
|
321
330
|
description="Name of the Model",
|
322
331
|
)
|
332
|
+
|
333
|
+
CUSTOM_SORTING_OPTIONS: ClassVar[List[str]] = [
|
334
|
+
*WorkspaceScopedTaggableFilter.CUSTOM_SORTING_OPTIONS,
|
335
|
+
SORT_BY_LATEST_VERSION_KEY,
|
336
|
+
]
|
337
|
+
|
338
|
+
def apply_sorting(
|
339
|
+
self,
|
340
|
+
query: AnyQuery,
|
341
|
+
table: Type["AnySchema"],
|
342
|
+
) -> AnyQuery:
|
343
|
+
"""Apply sorting to the query for Models.
|
344
|
+
|
345
|
+
Args:
|
346
|
+
query: The query to which to apply the sorting.
|
347
|
+
table: The query table.
|
348
|
+
|
349
|
+
Returns:
|
350
|
+
The query with sorting applied.
|
351
|
+
"""
|
352
|
+
from sqlmodel import asc, case, col, desc, func, select
|
353
|
+
|
354
|
+
from zenml.enums import SorterOps
|
355
|
+
from zenml.zen_stores.schemas import (
|
356
|
+
ModelSchema,
|
357
|
+
ModelVersionSchema,
|
358
|
+
)
|
359
|
+
|
360
|
+
sort_by, operand = self.sorting_params
|
361
|
+
|
362
|
+
if sort_by == SORT_BY_LATEST_VERSION_KEY:
|
363
|
+
# Subquery to find the latest version per model
|
364
|
+
latest_version_subquery = (
|
365
|
+
select(
|
366
|
+
ModelSchema.id,
|
367
|
+
case(
|
368
|
+
(
|
369
|
+
func.max(ModelVersionSchema.created).is_(None),
|
370
|
+
ModelSchema.created,
|
371
|
+
),
|
372
|
+
else_=func.max(ModelVersionSchema.created),
|
373
|
+
).label("latest_version_created"),
|
374
|
+
)
|
375
|
+
.outerjoin(
|
376
|
+
ModelVersionSchema,
|
377
|
+
ModelSchema.id == ModelVersionSchema.model_id, # type: ignore[arg-type]
|
378
|
+
)
|
379
|
+
.group_by(col(ModelSchema.id))
|
380
|
+
.subquery()
|
381
|
+
)
|
382
|
+
|
383
|
+
query = query.add_columns(
|
384
|
+
latest_version_subquery.c.latest_version_created,
|
385
|
+
).where(ModelSchema.id == latest_version_subquery.c.id)
|
386
|
+
|
387
|
+
# Apply sorting based on the operand
|
388
|
+
if operand == SorterOps.ASCENDING:
|
389
|
+
query = query.order_by(
|
390
|
+
asc(latest_version_subquery.c.latest_version_created),
|
391
|
+
asc(ModelSchema.id),
|
392
|
+
)
|
393
|
+
else:
|
394
|
+
query = query.order_by(
|
395
|
+
desc(latest_version_subquery.c.latest_version_created),
|
396
|
+
desc(ModelSchema.id),
|
397
|
+
)
|
398
|
+
return query
|
399
|
+
|
400
|
+
# For other sorting cases, delegate to the parent class
|
401
|
+
return super().apply_sorting(query=query, table=table)
|
zenml/models/v2/core/pipeline.py
CHANGED
@@ -357,7 +357,7 @@ class PipelineFilter(WorkspaceScopedTaggableFilter):
|
|
357
357
|
# Subquery to find the latest run per pipeline
|
358
358
|
latest_run_subquery = (
|
359
359
|
select(
|
360
|
-
|
360
|
+
PipelineSchema.id,
|
361
361
|
case(
|
362
362
|
(
|
363
363
|
func.max(PipelineRunSchema.created).is_(None),
|
@@ -366,25 +366,28 @@ class PipelineFilter(WorkspaceScopedTaggableFilter):
|
|
366
366
|
else_=func.max(PipelineRunSchema.created),
|
367
367
|
).label("latest_run"),
|
368
368
|
)
|
369
|
-
.
|
369
|
+
.outerjoin(
|
370
|
+
PipelineRunSchema,
|
371
|
+
PipelineSchema.id == PipelineRunSchema.pipeline_id, # type: ignore[arg-type]
|
372
|
+
)
|
373
|
+
.group_by(col(PipelineSchema.id))
|
370
374
|
.subquery()
|
371
375
|
)
|
372
376
|
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
PipelineSchema.id == latest_run_subquery.c.pipeline_id,
|
377
|
-
)
|
377
|
+
query = query.add_columns(
|
378
|
+
latest_run_subquery.c.latest_run,
|
379
|
+
).where(PipelineSchema.id == latest_run_subquery.c.id)
|
378
380
|
|
379
381
|
if operand == SorterOps.ASCENDING:
|
380
382
|
query = query.order_by(
|
381
|
-
asc(latest_run_subquery.c.latest_run)
|
382
|
-
|
383
|
+
asc(latest_run_subquery.c.latest_run),
|
384
|
+
asc(PipelineSchema.id),
|
385
|
+
)
|
383
386
|
else:
|
384
387
|
query = query.order_by(
|
385
|
-
desc(latest_run_subquery.c.latest_run)
|
386
|
-
|
387
|
-
|
388
|
+
desc(latest_run_subquery.c.latest_run),
|
389
|
+
desc(PipelineSchema.id),
|
390
|
+
)
|
388
391
|
return query
|
389
392
|
else:
|
390
393
|
return super().apply_sorting(query=query, table=table)
|
@@ -982,6 +982,8 @@ class PipelineRunFilter(WorkspaceScopedTaggableFilter):
|
|
982
982
|
else:
|
983
983
|
return super().apply_sorting(query=query, table=table)
|
984
984
|
|
985
|
+
query = query.add_columns(column)
|
986
|
+
|
985
987
|
if operand == SorterOps.ASCENDING:
|
986
988
|
query = query.order_by(asc(column))
|
987
989
|
else:
|
@@ -415,7 +415,7 @@ class ContainerService(BaseService):
|
|
415
415
|
# to ensure that the local database can be shared
|
416
416
|
# with the container.
|
417
417
|
logger.debug(
|
418
|
-
"Setting UID and GID to local user/group
|
418
|
+
"Setting UID and GID to local user/group in container."
|
419
419
|
)
|
420
420
|
uid_args = dict(
|
421
421
|
user=os.getuid(),
|
zenml/stack/stack_component.py
CHANGED
@@ -452,7 +452,7 @@ class StackComponent:
|
|
452
452
|
"reinstalling the integration either through our CLI: "
|
453
453
|
f"`zenml integration install {flavor_model.integration} "
|
454
454
|
"-y` or by manually installing its requirements: "
|
455
|
-
f"`pip install {integration_requirements}`. If the error"
|
455
|
+
f"`pip install {integration_requirements}`. If the error "
|
456
456
|
"persists, please contact the ZenML team."
|
457
457
|
) from e
|
458
458
|
else:
|
zenml/utils/deprecation_utils.py
CHANGED
@@ -109,13 +109,13 @@ def deprecate_pydantic_attributes(
|
|
109
109
|
else:
|
110
110
|
deprecated_attribute, replacement_attribute = attribute
|
111
111
|
|
112
|
-
assert (
|
113
|
-
|
114
|
-
)
|
112
|
+
assert replacement_attribute in cls.model_fields, (
|
113
|
+
f"Unable to find attribute {replacement_attribute}."
|
114
|
+
)
|
115
115
|
|
116
|
-
assert (
|
117
|
-
|
118
|
-
)
|
116
|
+
assert deprecated_attribute in cls.model_fields, (
|
117
|
+
f"Unable to find attribute {deprecated_attribute}."
|
118
|
+
)
|
119
119
|
|
120
120
|
if cls.model_fields[deprecated_attribute].is_required():
|
121
121
|
raise TypeError(
|
zenml/utils/filesync_model.py
CHANGED
@@ -80,9 +80,9 @@ class FileSyncModel(BaseModel):
|
|
80
80
|
|
81
81
|
if isinstance(data, dict):
|
82
82
|
# Assert that the config file is defined
|
83
|
-
assert (
|
84
|
-
"
|
85
|
-
)
|
83
|
+
assert "config_file" in data, (
|
84
|
+
"You have to provide a path for the configuration file."
|
85
|
+
)
|
86
86
|
|
87
87
|
config_file = data.pop("config_file")
|
88
88
|
|
zenml/utils/function_utils.py
CHANGED
@@ -196,7 +196,7 @@ def _cli_wrapped_function(func: F) -> F:
|
|
196
196
|
return function
|
197
197
|
|
198
198
|
func.__doc__ = (
|
199
|
-
f"{func.__doc__}\n\nThis is ZenML-generated
|
199
|
+
f"{func.__doc__}\n\nThis is ZenML-generated CLI wrapper function."
|
200
200
|
)
|
201
201
|
|
202
202
|
return wrapper(func)
|
@@ -201,7 +201,7 @@ class PipelineDockerImageBuilder:
|
|
201
201
|
)
|
202
202
|
|
203
203
|
repository = repository or DEFAULT_ZENML_DOCKER_REPOSITORY
|
204
|
-
user_image_name = f"{repository}:
|
204
|
+
user_image_name = f"{repository}:{tag}-intermediate-build"
|
205
205
|
if push and container_registry:
|
206
206
|
user_image_name = (
|
207
207
|
f"{container_registry.config.uri}/{user_image_name}"
|
zenml/zen_server/auth.py
CHANGED
@@ -130,9 +130,7 @@ def _fetch_and_verify_api_key(
|
|
130
130
|
try:
|
131
131
|
api_key = zen_store().get_internal_api_key(api_key_id)
|
132
132
|
except KeyError:
|
133
|
-
error =
|
134
|
-
f"Authentication error: error retrieving API key " f"{api_key_id}"
|
135
|
-
)
|
133
|
+
error = f"Authentication error: error retrieving API key {api_key_id}"
|
136
134
|
logger.error(error)
|
137
135
|
raise CredentialsNotValid(error)
|
138
136
|
|
@@ -673,8 +671,7 @@ def authenticate_external_user(
|
|
673
671
|
)
|
674
672
|
except Exception as e:
|
675
673
|
logger.exception(
|
676
|
-
f"Error fetching user information from external authenticator: "
|
677
|
-
f"{e}"
|
674
|
+
f"Error fetching user information from external authenticator: {e}"
|
678
675
|
)
|
679
676
|
raise AuthorizationException(
|
680
677
|
"Error fetching user information from external authenticator."
|
@@ -1 +1 @@
|
|
1
|
-
import{j as e}from"./@radix-DeK6qiuw.js";import{f as s,r as t}from"./index-
|
1
|
+
import{j as e}from"./@radix-DeK6qiuw.js";import{f as s,r as t}from"./index-CE0aQlv8.js";import{E as r}from"./EmptyState-BzdlCwp3.js";import{S as a}from"./help-Cc9bBIJH.js";import{L as o}from"./@react-router-B3Z5rLr2.js";import"./@tanstack-DT5WLu9C.js";import"./@reactflow-BUNIMFeC.js";function d(){return e.jsx("div",{className:"flex min-h-screen w-full flex-col",children:e.jsx(r,{icon:e.jsx(a,{className:"h-[120px] w-[120px] fill-neutral-300"}),children:e.jsxs("div",{className:"text-center",children:[e.jsx("h1",{className:"mb-2 text-display-xs font-semibold",children:"We can't find the page you are looking for"}),e.jsx("p",{className:"text-lg text-theme-text-secondary",children:"You can try typing a different URL or we can bring you back to your Homepage."}),e.jsx("div",{className:"mt-5 flex justify-center",children:e.jsx(s,{size:"md",asChild:!0,children:e.jsx(o,{className:"w-min self-center whitespace-nowrap",to:t.home,children:e.jsx("span",{className:"px-0.5",children:"Go to Home"})})})})]})})})}export{d as default};
|