zenml-nightly 0.58.2.dev20240623__py3-none-any.whl → 0.61.0.dev20240712__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.
- README.md +30 -9
- RELEASE_NOTES.md +240 -0
- zenml/VERSION +1 -1
- zenml/actions/base_action.py +177 -174
- zenml/actions/pipeline_run/pipeline_run_action.py +28 -23
- zenml/analytics/enums.py +3 -0
- zenml/artifact_stores/base_artifact_store.py +7 -1
- zenml/artifacts/utils.py +13 -10
- zenml/cli/__init__.py +28 -0
- zenml/cli/artifact.py +1 -2
- zenml/cli/integration.py +9 -8
- zenml/cli/server.py +6 -0
- zenml/cli/service_connectors.py +1 -0
- zenml/cli/stack.py +946 -39
- zenml/cli/stack_components.py +7 -0
- zenml/cli/text_utils.py +35 -1
- zenml/cli/utils.py +127 -10
- zenml/client.py +257 -72
- zenml/config/compiler.py +10 -9
- zenml/config/docker_settings.py +33 -14
- zenml/constants.py +11 -2
- zenml/container_registries/base_container_registry.py +1 -0
- zenml/enums.py +7 -0
- zenml/event_hub/base_event_hub.py +5 -5
- zenml/event_hub/event_hub.py +20 -14
- zenml/event_sources/base_event.py +0 -11
- zenml/event_sources/base_event_source.py +7 -0
- zenml/event_sources/webhooks/base_webhook_event_source.py +1 -4
- zenml/exceptions.py +4 -0
- zenml/hooks/hook_validators.py +2 -3
- zenml/integrations/aws/__init__.py +1 -0
- zenml/integrations/azure/__init__.py +1 -0
- zenml/integrations/bitbucket/plugins/event_sources/bitbucket_webhook_event_source.py +3 -3
- zenml/integrations/deepchecks/__init__.py +1 -0
- zenml/integrations/discord/__init__.py +1 -0
- zenml/integrations/evidently/__init__.py +1 -0
- zenml/integrations/facets/__init__.py +1 -0
- zenml/integrations/feast/__init__.py +1 -0
- zenml/integrations/gcp/__init__.py +3 -1
- zenml/integrations/gcp/google_credentials_mixin.py +1 -1
- zenml/integrations/gcp/service_connectors/gcp_service_connector.py +320 -64
- zenml/integrations/huggingface/__init__.py +1 -0
- zenml/integrations/integration.py +24 -0
- zenml/integrations/kubeflow/__init__.py +3 -0
- zenml/integrations/kubeflow/flavors/kubeflow_orchestrator_flavor.py +1 -1
- zenml/integrations/kubeflow/orchestrators/kubeflow_orchestrator.py +0 -1
- zenml/integrations/kubernetes/__init__.py +3 -1
- zenml/integrations/kubernetes/orchestrators/kube_utils.py +4 -1
- zenml/integrations/label_studio/annotators/label_studio_annotator.py +1 -0
- zenml/integrations/langchain/__init__.py +1 -0
- zenml/integrations/mlflow/__init__.py +4 -2
- zenml/integrations/neural_prophet/__init__.py +1 -0
- zenml/integrations/polars/__init__.py +1 -0
- zenml/integrations/prodigy/__init__.py +1 -0
- zenml/integrations/pycaret/__init__.py +6 -0
- zenml/integrations/registry.py +37 -0
- zenml/integrations/s3/artifact_stores/s3_artifact_store.py +93 -9
- zenml/integrations/seldon/__init__.py +1 -0
- zenml/integrations/seldon/model_deployers/seldon_model_deployer.py +1 -0
- zenml/integrations/skypilot/flavors/skypilot_orchestrator_base_vm_config.py +2 -2
- zenml/integrations/skypilot/orchestrators/skypilot_base_vm_orchestrator.py +1 -1
- zenml/integrations/skypilot/orchestrators/skypilot_orchestrator_entrypoint.py +2 -2
- zenml/integrations/skypilot_aws/__init__.py +2 -1
- zenml/integrations/skypilot_azure/__init__.py +1 -1
- zenml/integrations/skypilot_gcp/__init__.py +1 -1
- zenml/integrations/skypilot_lambda/__init__.py +1 -1
- zenml/integrations/skypilot_lambda/flavors/skypilot_orchestrator_lambda_vm_flavor.py +1 -1
- zenml/integrations/slack/__init__.py +1 -0
- zenml/integrations/tekton/__init__.py +1 -0
- zenml/integrations/tensorboard/__init__.py +0 -1
- zenml/integrations/tensorflow/__init__.py +18 -6
- zenml/integrations/wandb/__init__.py +1 -0
- zenml/logging/step_logging.py +54 -51
- zenml/models/__init__.py +28 -0
- zenml/models/v2/core/action.py +276 -0
- zenml/models/v2/core/component.py +18 -0
- zenml/models/v2/core/model.py +1 -2
- zenml/models/v2/core/service_connector.py +17 -0
- zenml/models/v2/core/stack.py +31 -0
- zenml/models/v2/core/trigger.py +182 -141
- zenml/models/v2/misc/full_stack.py +97 -0
- zenml/models/v2/misc/stack_deployment.py +86 -0
- zenml/new/pipelines/pipeline.py +14 -4
- zenml/new/pipelines/pipeline_decorator.py +1 -2
- zenml/new/pipelines/run_utils.py +1 -12
- zenml/new/steps/step_decorator.py +2 -3
- zenml/orchestrators/input_utils.py +3 -6
- zenml/pipelines/base_pipeline.py +0 -2
- zenml/pipelines/pipeline_decorator.py +1 -2
- zenml/stack/stack.py +3 -6
- zenml/stack/stack_component.py +4 -0
- zenml/stack_deployments/__init__.py +14 -0
- zenml/stack_deployments/aws_stack_deployment.py +254 -0
- zenml/stack_deployments/gcp_stack_deployment.py +260 -0
- zenml/stack_deployments/stack_deployment.py +208 -0
- zenml/stack_deployments/utils.py +44 -0
- zenml/steps/base_step.py +1 -2
- zenml/steps/step_decorator.py +1 -2
- zenml/types.py +10 -1
- zenml/utils/function_utils.py +1 -1
- zenml/utils/pagination_utils.py +7 -5
- zenml/utils/pipeline_docker_image_builder.py +117 -73
- zenml/utils/pydantic_utils.py +6 -5
- zenml/zen_server/cloud_utils.py +18 -3
- zenml/zen_server/dashboard/assets/{404-CDPQCl4D.js → 404-DpJaNHKF.js} +1 -1
- zenml/zen_server/dashboard/assets/@radix-CFOkMR_E.js +85 -0
- zenml/zen_server/dashboard/assets/{@react-router-DYovave8.js → @react-router-CO-OsFwI.js} +2 -2
- zenml/zen_server/dashboard/assets/{@reactflow-CHBapDaj.js → @reactflow-DJfzkHO1.js} +2 -2
- zenml/zen_server/dashboard/assets/@tanstack-DYiOyJUL.js +22 -0
- zenml/zen_server/dashboard/assets/AwarenessChannel-BYDLT2xC.js +1 -0
- zenml/zen_server/dashboard/assets/{CodeSnippet-BidtnWOi.js → CodeSnippet-BkOuRmyq.js} +2 -2
- zenml/zen_server/dashboard/assets/Commands-ZvWR1BRs.js +1 -0
- zenml/zen_server/dashboard/assets/CopyButton-DVwLkafa.js +2 -0
- zenml/zen_server/dashboard/assets/{CsvVizualization-BOuez-fG.js → CsvVizualization-C2IiqX4I.js} +7 -7
- zenml/zen_server/dashboard/assets/DisplayDate-DYgIjlDF.js +1 -0
- zenml/zen_server/dashboard/assets/EmptyState-BMLnFVlB.js +1 -0
- zenml/zen_server/dashboard/assets/Error-CqX0VqW_.js +1 -0
- zenml/zen_server/dashboard/assets/ExecutionStatus-BoLUXR9t.js +1 -0
- zenml/zen_server/dashboard/assets/Helpbox-LFydyVwh.js +1 -0
- zenml/zen_server/dashboard/assets/Infobox-DnENC0sh.js +1 -0
- zenml/zen_server/dashboard/assets/InlineAvatar-CbJtYr0t.js +1 -0
- zenml/zen_server/dashboard/assets/{MarkdownVisualization-DsB2QZiK.js → MarkdownVisualization-xp3hhULl.js} +2 -2
- zenml/zen_server/dashboard/assets/Pagination-DEbVUupy.js +1 -0
- zenml/zen_server/dashboard/assets/PasswordChecker-DUveqlva.js +1 -0
- zenml/zen_server/dashboard/assets/SetPassword-BYBdbQDo.js +1 -0
- zenml/zen_server/dashboard/assets/SuccessStep-Nx743hll.js +1 -0
- zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-DnM-c11H.js → UpdatePasswordSchemas-DF9gSzE0.js} +1 -1
- zenml/zen_server/dashboard/assets/{aws-t0gKCj_R.js → aws-BgKTfTfx.js} +1 -1
- zenml/zen_server/dashboard/assets/{check-circle-BVvhm5dy.js → check-circle-i56092KI.js} +1 -1
- zenml/zen_server/dashboard/assets/{chevron-down-zcvCWmyP.js → chevron-down-D_ZlKMqH.js} +1 -1
- zenml/zen_server/dashboard/assets/{chevron-right-double-CJ50E9Gr.js → chevron-right-double-BiEMg7rd.js} +1 -1
- zenml/zen_server/dashboard/assets/cloud-only-DVbIeckv.js +1 -0
- zenml/zen_server/dashboard/assets/{copy-BRhQz3j-.js → copy-BXNk6BjL.js} +1 -1
- zenml/zen_server/dashboard/assets/{database-CRRnyFWh.js → database-1xWSgZfO.js} +1 -1
- zenml/zen_server/dashboard/assets/{docker-BAonhm6G.js → docker-CQMVm_4d.js} +1 -1
- zenml/zen_server/dashboard/assets/{file-text-CbVERUON.js → file-text-CqD_iu6l.js} +1 -1
- zenml/zen_server/dashboard/assets/{help-B8rqCvqn.js → help-bu_DgLKI.js} +1 -1
- zenml/zen_server/dashboard/assets/index-C_CrU4vI.js +1 -0
- zenml/zen_server/dashboard/assets/index-DK1ynKjA.js +55 -0
- zenml/zen_server/dashboard/assets/index-inApY3KQ.css +1 -0
- zenml/zen_server/dashboard/assets/index-rK_Wuy2W.js +1 -0
- zenml/zen_server/dashboard/assets/index.esm-Corw4lXQ.js +1 -0
- zenml/zen_server/dashboard/assets/{login-mutation-wzzl23C6.js → login-mutation-BUnVASxp.js} +1 -1
- zenml/zen_server/dashboard/assets/not-found-B4VnX8gK.js +1 -0
- zenml/zen_server/dashboard/assets/package-CsUhPmou.js +1 -0
- zenml/zen_server/dashboard/assets/{page-BmkSiYeQ.js → page-3efNCDeb.js} +2 -2
- zenml/zen_server/dashboard/assets/page-7zTHbhhI.js +1 -0
- zenml/zen_server/dashboard/assets/page-BEs6jK71.js +1 -0
- zenml/zen_server/dashboard/assets/page-BpSqIf4B.js +1 -0
- zenml/zen_server/dashboard/assets/{page-AQKopn_4.js → page-Bx6o0ARS.js} +1 -1
- zenml/zen_server/dashboard/assets/page-C43QGHTt.js +9 -0
- zenml/zen_server/dashboard/assets/page-CR0OG7ss.js +1 -0
- zenml/zen_server/dashboard/assets/page-CRTJ0UuR.js +1 -0
- zenml/zen_server/dashboard/assets/page-CUZIGO-3.js +1 -0
- zenml/zen_server/dashboard/assets/page-CaopxiU1.js +1 -0
- zenml/zen_server/dashboard/assets/{page-CuT1SUik.js → page-Cx67M0QT.js} +1 -1
- zenml/zen_server/dashboard/assets/page-D7Z399xy.js +1 -0
- zenml/zen_server/dashboard/assets/page-D93kd7Xj.js +1 -0
- zenml/zen_server/dashboard/assets/{page-BzVZGExK.js → page-DKlIdAe5.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-Bi5AI0S7.js → page-DMOYZppS.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DMsSn3dv.js +2 -0
- zenml/zen_server/dashboard/assets/{page-BW6Ket3a.js → page-Dc_7KMQE.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DvCvroOM.js +1 -0
- zenml/zen_server/dashboard/assets/page-Hus2pr9T.js +1 -0
- zenml/zen_server/dashboard/assets/page-JyfeDUfu.js +1 -0
- zenml/zen_server/dashboard/assets/{page-yN4rZ-ZS.js → page-Sxn82W-5.js} +1 -1
- zenml/zen_server/dashboard/assets/page-TKXERe16.js +1 -0
- zenml/zen_server/dashboard/assets/page-Xu8JEjSU.js +1 -0
- zenml/zen_server/dashboard/assets/{play-circle-DK5QMJyp.js → play-circle-CNtZKDnW.js} +1 -1
- zenml/zen_server/dashboard/assets/plus-DOeLmm7C.js +1 -0
- zenml/zen_server/dashboard/assets/{terminal-B2ovgWuz.js → terminal-By9cErXc.js} +1 -1
- zenml/zen_server/dashboard/assets/{update-server-settings-mutation-0Wgz8pUE.js → update-server-settings-mutation-CR8e3Sir.js} +1 -1
- zenml/zen_server/dashboard/assets/{url-6_xv0WJS.js → url-DuQMeqYA.js} +1 -1
- zenml/zen_server/dashboard/assets/{zod-DrZvVLjd.js → zod-BhoGpZ63.js} +1 -1
- zenml/zen_server/dashboard/index.html +7 -7
- zenml/zen_server/dashboard_legacy/asset-manifest.json +4 -4
- zenml/zen_server/dashboard_legacy/index.html +1 -1
- zenml/zen_server/dashboard_legacy/{precache-manifest.f4abc5b7cfa7d90c1caf5521918e29a8.js → precache-manifest.c8c57fb0d2132b1d3c2119e776b7dfb3.js} +4 -4
- zenml/zen_server/dashboard_legacy/service-worker.js +1 -1
- zenml/zen_server/dashboard_legacy/static/js/{main.ac2f17d0.chunk.js → main.382439a7.chunk.js} +2 -2
- zenml/zen_server/dashboard_legacy/static/js/{main.ac2f17d0.chunk.js.map → main.382439a7.chunk.js.map} +1 -1
- zenml/zen_server/deploy/helm/Chart.yaml +1 -1
- zenml/zen_server/deploy/helm/README.md +2 -2
- zenml/zen_server/feature_gate/zenml_cloud_feature_gate.py +11 -5
- zenml/zen_server/pipeline_deployment/utils.py +57 -44
- zenml/zen_server/rbac/models.py +1 -0
- zenml/zen_server/rbac/utils.py +22 -1
- zenml/zen_server/rbac/zenml_cloud_rbac.py +11 -5
- zenml/zen_server/routers/actions_endpoints.py +324 -0
- zenml/zen_server/routers/stack_deployment_endpoints.py +158 -0
- zenml/zen_server/routers/triggers_endpoints.py +30 -158
- zenml/zen_server/routers/workspaces_endpoints.py +64 -0
- zenml/zen_server/zen_server_api.py +4 -0
- zenml/zen_stores/migrations/utils.py +1 -1
- zenml/zen_stores/migrations/versions/0.60.0_release.py +23 -0
- zenml/zen_stores/migrations/versions/0.61.0_release.py +23 -0
- zenml/zen_stores/migrations/versions/0d707865f404_adding_labels_to_stacks.py +30 -0
- zenml/zen_stores/migrations/versions/25155145c545_separate_actions_and_triggers.py +228 -0
- zenml/zen_stores/rest_zen_store.py +248 -8
- zenml/zen_stores/schemas/__init__.py +2 -0
- zenml/zen_stores/schemas/action_schemas.py +192 -0
- zenml/zen_stores/schemas/stack_schemas.py +10 -0
- zenml/zen_stores/schemas/step_run_schemas.py +27 -11
- zenml/zen_stores/schemas/trigger_schemas.py +43 -50
- zenml/zen_stores/schemas/user_schemas.py +10 -2
- zenml/zen_stores/schemas/workspace_schemas.py +5 -0
- zenml/zen_stores/sql_zen_store.py +540 -36
- zenml/zen_stores/zen_store_interface.py +165 -0
- {zenml_nightly-0.58.2.dev20240623.dist-info → zenml_nightly-0.61.0.dev20240712.dist-info}/METADATA +33 -11
- {zenml_nightly-0.58.2.dev20240623.dist-info → zenml_nightly-0.61.0.dev20240712.dist-info}/RECORD +213 -193
- zenml/zen_server/dashboard/assets/@radix-C9DBgJhe.js +0 -77
- zenml/zen_server/dashboard/assets/@tanstack-CEbkxrhX.js +0 -30
- zenml/zen_server/dashboard/assets/AwarenessChannel-nXGpmj_f.js +0 -1
- zenml/zen_server/dashboard/assets/Cards-nwsvQLVS.js +0 -1
- zenml/zen_server/dashboard/assets/Commands-DuIWKg_Q.js +0 -1
- zenml/zen_server/dashboard/assets/CopyButton-B_YSm-Ds.js +0 -2
- zenml/zen_server/dashboard/assets/DisplayDate-BdguISQF.js +0 -1
- zenml/zen_server/dashboard/assets/EmptyState-BkooiGtL.js +0 -1
- zenml/zen_server/dashboard/assets/Error-B6M0dPph.js +0 -1
- zenml/zen_server/dashboard/assets/Helpbox-BQoqCm04.js +0 -1
- zenml/zen_server/dashboard/assets/Infobox-Ce9mefqU.js +0 -1
- zenml/zen_server/dashboard/assets/InlineAvatar-DGf3dVhV.js +0 -1
- zenml/zen_server/dashboard/assets/PageHeader-DGaemzjc.js +0 -1
- zenml/zen_server/dashboard/assets/Pagination-DVYfBCCc.js +0 -1
- zenml/zen_server/dashboard/assets/PasswordChecker-DSLBp7Vl.js +0 -1
- zenml/zen_server/dashboard/assets/SetPassword-B5s7DJug.js +0 -1
- zenml/zen_server/dashboard/assets/SuccessStep-ZzczaM7g.js +0 -1
- zenml/zen_server/dashboard/assets/cloud-only-Ba_ShBR5.js +0 -1
- zenml/zen_server/dashboard/assets/index-CWJ3xbIf.css +0 -1
- zenml/zen_server/dashboard/assets/index-QORVVTMN.js +0 -55
- zenml/zen_server/dashboard/assets/index.esm-F7nqy9zY.js +0 -1
- zenml/zen_server/dashboard/assets/not-found-Dh2la7kh.js +0 -1
- zenml/zen_server/dashboard/assets/page-B-5jAKoO.js +0 -1
- zenml/zen_server/dashboard/assets/page-B-vWk8a6.js +0 -1
- zenml/zen_server/dashboard/assets/page-B0BrqfS8.js +0 -1
- zenml/zen_server/dashboard/assets/page-BQxVFlUl.js +0 -1
- zenml/zen_server/dashboard/assets/page-ByrHy6Ss.js +0 -1
- zenml/zen_server/dashboard/assets/page-CPtY4Kv_.js +0 -1
- zenml/zen_server/dashboard/assets/page-CmmukLsl.js +0 -1
- zenml/zen_server/dashboard/assets/page-D2D-7qyr.js +0 -9
- zenml/zen_server/dashboard/assets/page-DAQQyLxT.js +0 -1
- zenml/zen_server/dashboard/assets/page-DHkUMl_E.js +0 -1
- zenml/zen_server/dashboard/assets/page-DZCbwOEs.js +0 -2
- zenml/zen_server/dashboard/assets/page-DdaIt20-.js +0 -1
- zenml/zen_server/dashboard/assets/page-LqLs24Ot.js +0 -1
- zenml/zen_server/dashboard/assets/page-lebv0c7C.js +0 -1
- {zenml_nightly-0.58.2.dev20240623.dist-info → zenml_nightly-0.61.0.dev20240712.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.58.2.dev20240623.dist-info → zenml_nightly-0.61.0.dev20240712.dist-info}/WHEEL +0 -0
- {zenml_nightly-0.58.2.dev20240623.dist-info → zenml_nightly-0.61.0.dev20240712.dist-info}/entry_points.txt +0 -0
@@ -13,12 +13,18 @@
|
|
13
13
|
# permissions and limitations under the License.
|
14
14
|
"""ZenML Store interface."""
|
15
15
|
|
16
|
+
import datetime
|
16
17
|
from abc import ABC, abstractmethod
|
17
18
|
from typing import List, Optional, Tuple, Union
|
18
19
|
from uuid import UUID
|
19
20
|
|
20
21
|
from zenml.config.pipeline_run_configuration import PipelineRunConfiguration
|
22
|
+
from zenml.enums import StackDeploymentProvider
|
21
23
|
from zenml.models import (
|
24
|
+
ActionFilter,
|
25
|
+
ActionRequest,
|
26
|
+
ActionResponse,
|
27
|
+
ActionUpdate,
|
22
28
|
APIKeyFilter,
|
23
29
|
APIKeyRequest,
|
24
30
|
APIKeyResponse,
|
@@ -42,6 +48,7 @@ from zenml.models import (
|
|
42
48
|
ComponentRequest,
|
43
49
|
ComponentResponse,
|
44
50
|
ComponentUpdate,
|
51
|
+
DeployedStack,
|
45
52
|
EventSourceFilter,
|
46
53
|
EventSourceRequest,
|
47
54
|
EventSourceResponse,
|
@@ -50,6 +57,7 @@ from zenml.models import (
|
|
50
57
|
FlavorRequest,
|
51
58
|
FlavorResponse,
|
52
59
|
FlavorUpdate,
|
60
|
+
FullStackRequest,
|
53
61
|
LogsResponse,
|
54
62
|
ModelFilter,
|
55
63
|
ModelRequest,
|
@@ -111,6 +119,8 @@ from zenml.models import (
|
|
111
119
|
ServiceRequest,
|
112
120
|
ServiceResponse,
|
113
121
|
ServiceUpdate,
|
122
|
+
StackDeploymentConfig,
|
123
|
+
StackDeploymentInfo,
|
114
124
|
StackFilter,
|
115
125
|
StackRequest,
|
116
126
|
StackResponse,
|
@@ -262,6 +272,87 @@ class ZenStoreInterface(ABC):
|
|
262
272
|
The updated server settings.
|
263
273
|
"""
|
264
274
|
|
275
|
+
# -------------------- Actions --------------------
|
276
|
+
|
277
|
+
@abstractmethod
|
278
|
+
def create_action(self, action: ActionRequest) -> ActionResponse:
|
279
|
+
"""Create an action.
|
280
|
+
|
281
|
+
Args:
|
282
|
+
action: The action to create.
|
283
|
+
|
284
|
+
Returns:
|
285
|
+
The created action.
|
286
|
+
"""
|
287
|
+
|
288
|
+
@abstractmethod
|
289
|
+
def get_action(
|
290
|
+
self,
|
291
|
+
action_id: UUID,
|
292
|
+
hydrate: bool = True,
|
293
|
+
) -> ActionResponse:
|
294
|
+
"""Get an action by ID.
|
295
|
+
|
296
|
+
Args:
|
297
|
+
action_id: The ID of the action to get.
|
298
|
+
hydrate: Flag deciding whether to hydrate the output model(s)
|
299
|
+
by including metadata fields in the response.
|
300
|
+
|
301
|
+
Returns:
|
302
|
+
The action.
|
303
|
+
|
304
|
+
Raises:
|
305
|
+
KeyError: If the action doesn't exist.
|
306
|
+
"""
|
307
|
+
|
308
|
+
@abstractmethod
|
309
|
+
def list_actions(
|
310
|
+
self,
|
311
|
+
action_filter_model: ActionFilter,
|
312
|
+
hydrate: bool = False,
|
313
|
+
) -> Page[ActionResponse]:
|
314
|
+
"""List all actions matching the given filter criteria.
|
315
|
+
|
316
|
+
Args:
|
317
|
+
action_filter_model: All filter parameters including pagination
|
318
|
+
params.
|
319
|
+
hydrate: Flag deciding whether to hydrate the output model(s)
|
320
|
+
by including metadata fields in the response.
|
321
|
+
|
322
|
+
Returns:
|
323
|
+
A list of all actions matching the filter criteria.
|
324
|
+
"""
|
325
|
+
|
326
|
+
@abstractmethod
|
327
|
+
def update_action(
|
328
|
+
self,
|
329
|
+
action_id: UUID,
|
330
|
+
action_update: ActionUpdate,
|
331
|
+
) -> ActionResponse:
|
332
|
+
"""Update an existing action.
|
333
|
+
|
334
|
+
Args:
|
335
|
+
action_id: The ID of the action to update.
|
336
|
+
action_update: The update to be applied to the action.
|
337
|
+
|
338
|
+
Returns:
|
339
|
+
The updated action.
|
340
|
+
|
341
|
+
Raises:
|
342
|
+
KeyError: If the action doesn't exist.
|
343
|
+
"""
|
344
|
+
|
345
|
+
@abstractmethod
|
346
|
+
def delete_action(self, action_id: UUID) -> None:
|
347
|
+
"""Delete an action.
|
348
|
+
|
349
|
+
Args:
|
350
|
+
action_id: The ID of the action to delete.
|
351
|
+
|
352
|
+
Raises:
|
353
|
+
KeyError: If the action doesn't exist.
|
354
|
+
"""
|
355
|
+
|
265
356
|
# -------------------- API Keys --------------------
|
266
357
|
|
267
358
|
@abstractmethod
|
@@ -2081,6 +2172,24 @@ class ZenStoreInterface(ABC):
|
|
2081
2172
|
by this user in this workspace.
|
2082
2173
|
"""
|
2083
2174
|
|
2175
|
+
@abstractmethod
|
2176
|
+
def create_full_stack(self, full_stack: FullStackRequest) -> StackResponse:
|
2177
|
+
"""Create a full stack.
|
2178
|
+
|
2179
|
+
Args:
|
2180
|
+
full_stack: The full stack configuration.
|
2181
|
+
|
2182
|
+
Returns:
|
2183
|
+
The created stack.
|
2184
|
+
|
2185
|
+
Raises:
|
2186
|
+
EntityExistsError: If a service connector with the same name
|
2187
|
+
already exists.
|
2188
|
+
StackComponentExistsError: If a stack component with the same name
|
2189
|
+
already exists.
|
2190
|
+
StackExistsError: If a stack with the same name already exists.
|
2191
|
+
"""
|
2192
|
+
|
2084
2193
|
@abstractmethod
|
2085
2194
|
def get_stack(self, stack_id: UUID, hydrate: bool = True) -> StackResponse:
|
2086
2195
|
"""Get a stack by its unique ID.
|
@@ -2143,6 +2252,62 @@ class ZenStoreInterface(ABC):
|
|
2143
2252
|
KeyError: if the stack doesn't exist.
|
2144
2253
|
"""
|
2145
2254
|
|
2255
|
+
# ---------------- Stack deployments-----------------
|
2256
|
+
|
2257
|
+
@abstractmethod
|
2258
|
+
def get_stack_deployment_info(
|
2259
|
+
self,
|
2260
|
+
provider: StackDeploymentProvider,
|
2261
|
+
) -> StackDeploymentInfo:
|
2262
|
+
"""Get information about a stack deployment provider.
|
2263
|
+
|
2264
|
+
Args:
|
2265
|
+
provider: The stack deployment provider.
|
2266
|
+
|
2267
|
+
Returns:
|
2268
|
+
Information about the stack deployment provider.
|
2269
|
+
"""
|
2270
|
+
|
2271
|
+
@abstractmethod
|
2272
|
+
def get_stack_deployment_config(
|
2273
|
+
self,
|
2274
|
+
provider: StackDeploymentProvider,
|
2275
|
+
stack_name: str,
|
2276
|
+
location: Optional[str] = None,
|
2277
|
+
) -> StackDeploymentConfig:
|
2278
|
+
"""Return the cloud provider console URL and configuration needed to deploy the ZenML stack.
|
2279
|
+
|
2280
|
+
Args:
|
2281
|
+
provider: The stack deployment provider.
|
2282
|
+
stack_name: The name of the stack.
|
2283
|
+
location: The location where the stack should be deployed.
|
2284
|
+
|
2285
|
+
Returns:
|
2286
|
+
The cloud provider console URL and configuration needed to deploy
|
2287
|
+
the ZenML stack to the specified cloud provider.
|
2288
|
+
"""
|
2289
|
+
|
2290
|
+
@abstractmethod
|
2291
|
+
def get_stack_deployment_stack(
|
2292
|
+
self,
|
2293
|
+
provider: StackDeploymentProvider,
|
2294
|
+
stack_name: str,
|
2295
|
+
location: Optional[str] = None,
|
2296
|
+
date_start: Optional[datetime.datetime] = None,
|
2297
|
+
) -> Optional[DeployedStack]:
|
2298
|
+
"""Return a matching ZenML stack that was deployed and registered.
|
2299
|
+
|
2300
|
+
Args:
|
2301
|
+
provider: The stack deployment provider.
|
2302
|
+
stack_name: The name of the stack.
|
2303
|
+
location: The location where the stack should be deployed.
|
2304
|
+
date_start: The date when the deployment started.
|
2305
|
+
|
2306
|
+
Returns:
|
2307
|
+
The ZenML stack that was deployed and registered or None if the
|
2308
|
+
stack was not found.
|
2309
|
+
"""
|
2310
|
+
|
2146
2311
|
# -------------------- Step runs --------------------
|
2147
2312
|
|
2148
2313
|
@abstractmethod
|
{zenml_nightly-0.58.2.dev20240623.dist-info → zenml_nightly-0.61.0.dev20240712.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: zenml-nightly
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.61.0.dev20240712
|
4
4
|
Summary: ZenML: Write production-ready ML code.
|
5
5
|
Home-page: https://zenml.io
|
6
6
|
License: Apache-2.0
|
@@ -63,6 +63,7 @@ Requires-Dist: docker (>=6.1.0,<6.2.0)
|
|
63
63
|
Requires-Dist: fastapi (>=0.100,<=0.110) ; extra == "server"
|
64
64
|
Requires-Dist: gcsfs (>=2022.11.0) ; extra == "gcsfs"
|
65
65
|
Requires-Dist: gitpython (>=3.1.18,<4.0.0)
|
66
|
+
Requires-Dist: google-cloud-artifact-registry (>=1.11.3) ; extra == "connectors-gcp"
|
66
67
|
Requires-Dist: google-cloud-container (>=2.21.0) ; extra == "connectors-gcp"
|
67
68
|
Requires-Dist: google-cloud-secret-manager (>=2.12.5) ; extra == "secrets-gcp"
|
68
69
|
Requires-Dist: google-cloud-storage (>=2.9.0) ; extra == "connectors-gcp"
|
@@ -78,7 +79,7 @@ Requires-Dist: mkdocs (>=1.2.3,<2.0.0) ; extra == "dev"
|
|
78
79
|
Requires-Dist: mkdocs-awesome-pages-plugin (>=2.6.1,<3.0.0) ; extra == "dev"
|
79
80
|
Requires-Dist: mkdocs-material (>=8.1.7,<9.0.0) ; extra == "dev"
|
80
81
|
Requires-Dist: mkdocstrings (>=0.17.0,<0.18.0) ; extra == "dev"
|
81
|
-
Requires-Dist: mlstacks (==0.
|
82
|
+
Requires-Dist: mlstacks (==0.9.0) ; extra == "mlstacks"
|
82
83
|
Requires-Dist: mypy (==1.7.1) ; extra == "dev"
|
83
84
|
Requires-Dist: numpy (<2.0.0)
|
84
85
|
Requires-Dist: orjson (>=3.10.0,<3.11.0) ; extra == "server"
|
@@ -272,9 +273,36 @@ if __name__ == "__main__":
|
|
272
273
|
|
273
274
|

|
274
275
|
|
275
|
-
###
|
276
|
+
### Easily provision an MLOps stack or reuse your existing infrastructure
|
276
277
|
|
277
|
-
The framework is a gentle entry point for practitioners to build complex ML pipelines with little knowledge required of the underlying infrastructure complexity. ZenML pipelines can be run on AWS, GCP, Azure, Airflow, Kubeflow and even on Kubernetes without having to change any code or know underlying internals.
|
278
|
+
The framework is a gentle entry point for practitioners to build complex ML pipelines with little knowledge required of the underlying infrastructure complexity. ZenML pipelines can be run on AWS, GCP, Azure, Airflow, Kubeflow and even on Kubernetes without having to change any code or know underlying internals.
|
279
|
+
|
280
|
+
ZenML provides different features to aid people to get started quickly on a remote setting as well. If you want to deploy a remote stack from scratch on your selected cloud provider, you can use the 1-click deployment feature either through the dashboard:
|
281
|
+
|
282
|
+

|
283
|
+
|
284
|
+
Or, through our CLI command:
|
285
|
+
|
286
|
+
```bash
|
287
|
+
zenml stack deploy --provider aws
|
288
|
+
```
|
289
|
+
|
290
|
+
Alternatively, if the necessary pieces of infrastructure is already deployed, you can register a cloud stack seamlessly through the stack wizard:
|
291
|
+
|
292
|
+
```bash
|
293
|
+
zenml stack register <STACK_NAME> --provider aws
|
294
|
+
```
|
295
|
+
|
296
|
+
Read more about [ZenML stacks](https://docs.zenml.io/user-guide/production-guide/understand-stacks).
|
297
|
+
|
298
|
+
### Run workloads easily on your production infrastructure
|
299
|
+
|
300
|
+
Once you have your MLOps stack configured, you can easily run workloads on it:
|
301
|
+
|
302
|
+
```bash
|
303
|
+
zenml stack set <STACK_NAME>
|
304
|
+
python run.py
|
305
|
+
```
|
278
306
|
|
279
307
|
```python
|
280
308
|
from zenml.config import ResourceSettings, DockerSettings
|
@@ -289,14 +317,8 @@ def training(...):
|
|
289
317
|
...
|
290
318
|
```
|
291
319
|
|
292
|
-
```bash
|
293
|
-
zenml stack set k8s # Set a stack with kubernetes orchestrator
|
294
|
-
python run.py
|
295
|
-
```
|
296
|
-
|
297
320
|

|
298
321
|
|
299
|
-
|
300
322
|
### Track models, pipeline, and artifacts
|
301
323
|
|
302
324
|
Create a complete lineage of who, where, and what data and models are produced.
|
@@ -445,7 +467,7 @@ the Apache License Version 2.0.
|
|
445
467
|
<a href="https://github.com/zenml-io/zenml-projects">Projects Showcase</a>
|
446
468
|
<br />
|
447
469
|
<br />
|
448
|
-
🎉 Version 0.
|
470
|
+
🎉 Version 0.61.0 is out. Check out the release notes
|
449
471
|
<a href="https://github.com/zenml-io/zenml/releases">here</a>.
|
450
472
|
<br />
|
451
473
|
🖥️ Download our VS Code Extension <a href="https://marketplace.visualstudio.com/items?itemName=ZenML.zenml-vscode">here</a>.
|