zenml-nightly 0.75.0.dev20250317__py3-none-any.whl → 0.80.0.dev20250321__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/__init__.py +3 -1
- zenml/artifacts/artifact_config.py +2 -2
- zenml/artifacts/utils.py +4 -8
- zenml/cli/__init__.py +6 -6
- zenml/cli/base.py +2 -2
- zenml/cli/login.py +2 -2
- zenml/cli/server.py +6 -4
- zenml/cli/utils.py +3 -3
- zenml/client.py +9 -9
- zenml/config/compiler.py +1 -1
- zenml/config/server_config.py +1 -1
- zenml/constants.py +2 -1
- zenml/enums.py +12 -0
- zenml/integrations/airflow/__init__.py +0 -2
- zenml/integrations/argilla/__init__.py +0 -1
- zenml/integrations/aws/__init__.py +0 -3
- zenml/integrations/azure/__init__.py +0 -2
- zenml/integrations/azure/service_connectors/azure_service_connector.py +1 -1
- zenml/integrations/bentoml/__init__.py +0 -2
- zenml/integrations/bentoml/services/bentoml_container_deployment.py +2 -2
- zenml/integrations/bentoml/services/bentoml_local_deployment.py +1 -1
- zenml/integrations/bentoml/steps/bentoml_deployer.py +1 -1
- zenml/integrations/bitbucket/__init__.py +0 -2
- zenml/integrations/comet/__init__.py +0 -2
- zenml/integrations/databricks/__init__.py +0 -2
- zenml/integrations/databricks/services/databricks_deployment.py +3 -1
- zenml/integrations/deepchecks/__init__.py +0 -2
- zenml/integrations/discord/__init__.py +0 -2
- zenml/integrations/evidently/__init__.py +0 -2
- zenml/integrations/facets/__init__.py +0 -2
- zenml/integrations/feast/__init__.py +0 -2
- zenml/integrations/gcp/__init__.py +0 -3
- zenml/integrations/gcp/orchestrators/vertex_orchestrator.py +5 -0
- zenml/integrations/github/__init__.py +0 -2
- zenml/integrations/github/code_repositories/github_code_repository.py +10 -3
- zenml/integrations/gitlab/__init__.py +0 -1
- zenml/integrations/gitlab/code_repositories/gitlab_code_repository.py +5 -2
- zenml/integrations/great_expectations/__init__.py +0 -3
- zenml/integrations/huggingface/__init__.py +0 -1
- zenml/integrations/huggingface/services/huggingface_deployment.py +3 -1
- zenml/integrations/hyperai/__init__.py +0 -2
- zenml/integrations/kaniko/__init__.py +0 -2
- zenml/integrations/kubeflow/__init__.py +0 -1
- zenml/integrations/kubeflow/orchestrators/kubeflow_orchestrator.py +6 -0
- zenml/integrations/kubernetes/__init__.py +0 -2
- zenml/integrations/kubernetes/flavors/kubernetes_orchestrator_flavor.py +4 -0
- zenml/integrations/kubernetes/orchestrators/kube_utils.py +89 -1
- zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator.py +82 -48
- zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator_entrypoint.py +44 -10
- zenml/integrations/kubernetes/orchestrators/manifest_utils.py +45 -1
- zenml/integrations/kubernetes/pod_settings.py +52 -0
- zenml/integrations/label_studio/__init__.py +0 -2
- zenml/integrations/langchain/__init__.py +0 -2
- zenml/integrations/lightgbm/__init__.py +0 -1
- zenml/integrations/lightning/__init__.py +0 -2
- zenml/integrations/mlflow/__init__.py +1 -3
- zenml/integrations/mlflow/services/mlflow_deployment.py +1 -1
- zenml/integrations/modal/__init__.py +0 -1
- zenml/integrations/neptune/__init__.py +0 -2
- zenml/integrations/neural_prophet/__init__.py +0 -2
- zenml/integrations/numpy/__init__.py +0 -2
- zenml/integrations/openai/__init__.py +0 -1
- zenml/integrations/pandas/__init__.py +0 -2
- zenml/integrations/pigeon/__init__.py +0 -1
- zenml/integrations/pillow/__init__.py +0 -3
- zenml/integrations/polars/__init__.py +0 -2
- zenml/integrations/prodigy/__init__.py +0 -1
- zenml/integrations/pycaret/__init__.py +0 -2
- zenml/integrations/pytorch/__init__.py +0 -1
- zenml/integrations/pytorch_lightning/__init__.py +0 -2
- zenml/integrations/s3/__init__.py +0 -2
- zenml/integrations/scipy/__init__.py +0 -2
- zenml/integrations/seldon/__init__.py +0 -2
- zenml/integrations/seldon/services/seldon_deployment.py +3 -2
- zenml/integrations/sklearn/__init__.py +1 -1
- zenml/integrations/skypilot/orchestrators/skypilot_base_vm_orchestrator.py +43 -18
- zenml/integrations/skypilot_aws/__init__.py +1 -3
- zenml/integrations/skypilot_azure/__init__.py +1 -2
- zenml/integrations/skypilot_gcp/__init__.py +1 -3
- zenml/integrations/skypilot_kubernetes/__init__.py +1 -3
- zenml/integrations/skypilot_lambda/__init__.py +1 -3
- zenml/integrations/slack/__init__.py +0 -1
- zenml/integrations/spark/__init__.py +0 -1
- zenml/integrations/tekton/__init__.py +0 -1
- zenml/integrations/tekton/orchestrators/tekton_orchestrator.py +5 -0
- zenml/integrations/tensorboard/__init__.py +0 -2
- zenml/integrations/tensorboard/services/tensorboard_service.py +1 -1
- zenml/integrations/tensorflow/__init__.py +0 -2
- zenml/integrations/vllm/__init__.py +0 -1
- zenml/integrations/vllm/services/vllm_deployment.py +1 -1
- zenml/integrations/wandb/__init__.py +0 -1
- zenml/integrations/whylogs/__init__.py +0 -1
- zenml/integrations/xgboost/__init__.py +0 -2
- zenml/login/credentials.py +1 -1
- zenml/login/pro/utils.py +1 -0
- zenml/materializers/__init__.py +1 -0
- zenml/model_deployers/base_model_deployer.py +1 -1
- zenml/models/__init__.py +4 -0
- zenml/models/v2/base/filter.py +162 -54
- zenml/models/v2/base/scoped.py +132 -0
- zenml/models/v2/core/artifact_version.py +12 -33
- zenml/models/v2/core/model_version.py +12 -50
- zenml/models/v2/core/pipeline_run.py +12 -32
- zenml/models/v2/core/service.py +2 -2
- zenml/models/v2/core/step_run.py +15 -32
- zenml/{services/service_type.py → models/v2/misc/service.py} +1 -1
- zenml/orchestrators/step_run_utils.py +1 -1
- zenml/orchestrators/utils.py +1 -1
- zenml/services/__init__.py +3 -5
- zenml/services/container/container_service.py +2 -1
- zenml/services/local/local_service.py +2 -1
- zenml/services/service.py +3 -2
- zenml/services/service_endpoint.py +2 -1
- zenml/services/service_monitor.py +1 -1
- zenml/services/service_status.py +1 -12
- zenml/steps/entrypoint_function_utils.py +1 -1
- zenml/utils/dashboard_utils.py +73 -8
- zenml/utils/server_utils.py +52 -0
- zenml/zen_server/dashboard/assets/{404-BbAvjc7Z.js → 404-2I8egBQu.js} +1 -1
- zenml/zen_server/dashboard/assets/@reactflow-BHoFKFSZ.js +17 -0
- zenml/zen_server/dashboard/assets/{AlertDialogDropdownItem-XL2NfFgP.js → AlertDialogDropdownItem-D7KZcPFw.js} +1 -1
- zenml/zen_server/dashboard/assets/CodeSnippet-DUkCnBpQ.js +9 -0
- zenml/zen_server/dashboard/assets/{CollapsibleCard-Djtd_ocf.js → CollapsibleCard-B5-5Plnd.js} +1 -1
- zenml/zen_server/dashboard/assets/{Commands-V-hH_IKQ.js → Commands-CbOMmarC.js} +1 -1
- zenml/zen_server/dashboard/assets/{ComponentBadge-CVN2FsiW.js → ComponentBadge-FrujKBC6.js} +1 -1
- zenml/zen_server/dashboard/assets/ComponentIcon-Dx5fBrDX.js +1 -0
- zenml/zen_server/dashboard/assets/{CsvVizualization-CWaQcWIN.js → CsvVizualization-B8E3p9we.js} +1 -1
- zenml/zen_server/dashboard/assets/{DeleteAlertDialog-CTLRrcFM.js → DeleteAlertDialog-BgTZbbAt.js} +1 -1
- zenml/zen_server/dashboard/assets/{DialogItem-ST291Hsl.js → DialogItem-CNWLiJcc.js} +1 -1
- zenml/zen_server/dashboard/assets/{Error-CIBjAdSc.js → Error-BkUP4Luv.js} +1 -1
- zenml/zen_server/dashboard/assets/ExecutionStatus-CD8Vj7sp.js +1 -0
- zenml/zen_server/dashboard/assets/{Helpbox-cwQNH06F.js → Helpbox-DIx6mDOH.js} +1 -1
- zenml/zen_server/dashboard/assets/{Infobox-DYKoAVhW.js → Infobox-BHEdNmME.js} +1 -1
- zenml/zen_server/dashboard/assets/{InlineAvatar-Bk4QLPTU.js → InlineAvatar-Bin9UPKJ.js} +1 -1
- zenml/zen_server/dashboard/assets/{NestedCollapsible-CE4OF670.js → NestedCollapsible-Da-k0Mff.js} +1 -1
- zenml/zen_server/dashboard/assets/{Partials-cL1-u_sT.js → Partials-TNaYjHsV.js} +1 -1
- zenml/zen_server/dashboard/assets/ProBadge-BfPp-B97.js +1 -0
- zenml/zen_server/dashboard/assets/{ProCta-DtUutIul.js → ProCta-7_FtpX3I.js} +1 -1
- zenml/zen_server/dashboard/assets/ProviderIcon-CxeziA5a.js +1 -0
- zenml/zen_server/dashboard/assets/{ProviderRadio-C4bltH6-.js → ProviderRadio-DPmZHff_.js} +1 -1
- zenml/zen_server/dashboard/assets/RunSelector-BVKB4Z8F.js +1 -0
- zenml/zen_server/dashboard/assets/{RunsBody-D2VoO-cR.js → RunsBody-Cj4sIqQB.js} +1 -1
- zenml/zen_server/dashboard/assets/{SearchField-DfNxVtjV.js → SearchField-DjAOZic5.js} +1 -1
- zenml/zen_server/dashboard/assets/SecretTooltip-mMAAP4dM.js +1 -0
- zenml/zen_server/dashboard/assets/{SetPassword-CWl2mwz8.js → SetPassword-B0o5kSJU.js} +1 -1
- zenml/zen_server/dashboard/assets/{StackList-C8KNd00o.js → StackList-5UB8LoEq.js} +1 -1
- zenml/zen_server/dashboard/assets/{Tabs-BEWDPvPV.js → Tabs-AuhCyzle.js} +1 -1
- zenml/zen_server/dashboard/assets/Tick-CHW0jc8Y.js +1 -0
- zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-DCuCj7NK.js → UpdatePasswordSchemas-Bauivjf-.js} +1 -1
- zenml/zen_server/dashboard/assets/{UsageReason-CwUrEwEz.js → UsageReason-Dr5ca5M4.js} +1 -1
- zenml/zen_server/dashboard/assets/{Wizard-CynnoHg4.js → Wizard-XEp9rGmf.js} +1 -1
- zenml/zen_server/dashboard/assets/{WizardFooter-B2bYs89C.js → WizardFooter-BtL1Gi1k.js} +1 -1
- zenml/zen_server/dashboard/assets/{all-pipeline-runs-query-B509kMlL.js → all-pipeline-runs-query-COvsm3bC.js} +1 -1
- zenml/zen_server/dashboard/assets/configuration-form-BJUCr0wl.js +1 -0
- zenml/zen_server/dashboard/assets/{create-stack-BjWXz5nx.js → create-stack-B2c98UlP.js} +1 -1
- zenml/zen_server/dashboard/assets/{delete-run-CzPWbsBy.js → delete-run-Do3XyF4W.js} +1 -1
- zenml/zen_server/dashboard/assets/flavor-select-D8CranSY.js +1 -0
- zenml/zen_server/dashboard/assets/{form-schemas-B6u3P_a4.js → form-schemas-Bm-dTV3L.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-BCKg1Y5r.css → index-6mLFgFwe.css} +1 -1
- zenml/zen_server/dashboard/assets/{index-Bjeu4_0O.js → index-CzhJC6pc.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-CaRx22lH.js → index-D-n6tspq.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-DWoLoYDY.js → index-DPjvk73v.js} +8 -8
- zenml/zen_server/dashboard/assets/{index-Dba8yULY.js → index-eIIP-0dQ.js} +1 -1
- zenml/zen_server/dashboard/assets/login-mutation-D6uiKsKk.js +1 -0
- zenml/zen_server/dashboard/assets/{not-found-DGQ8rm7B.js → not-found-DFrksY0r.js} +1 -1
- zenml/zen_server/dashboard/assets/page-B-uHUFcm.js +1 -0
- zenml/zen_server/dashboard/assets/page-B0Llmzo_.js +1 -0
- zenml/zen_server/dashboard/assets/page-B150LbzG.js +1 -0
- zenml/zen_server/dashboard/assets/{page-CfeQbejg.js → page-B1Un9vAU.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-CxrLV30P.js → page-B80TE04v.js} +1 -1
- zenml/zen_server/dashboard/assets/page-BIseZTJt.js +2 -0
- zenml/zen_server/dashboard/assets/{page-C5xq6rqE.js → page-BJ15SGwt.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-B6msmF1h.js → page-BJrZsPSh.js} +1 -1
- zenml/zen_server/dashboard/assets/page-BMZaECzB.js +1 -0
- zenml/zen_server/dashboard/assets/{page-D1upvSPi.js → page-BTvnIFGR.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DLw1Apss.js → page-BXh1mF-D.js} +1 -1
- zenml/zen_server/dashboard/assets/page-BZUxCBoD.js +1 -0
- zenml/zen_server/dashboard/assets/page-BeFiRx31.js +1 -0
- zenml/zen_server/dashboard/assets/{page-C89bN6VV.js → page-BnUwQBeg.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-k-UXKVnV.js → page-BqQ6y8Hb.js} +1 -1
- zenml/zen_server/dashboard/assets/page-BwAFqFCf.js +1 -0
- zenml/zen_server/dashboard/assets/page-BzlVs5tC.js +1 -0
- zenml/zen_server/dashboard/assets/{page-C3BbJ-5n.js → page-C11vPVkH.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-AnG2ilmi.js → page-CAKBSE9f.js} +1 -1
- zenml/zen_server/dashboard/assets/page-CPe9nQSo.js +1 -0
- zenml/zen_server/dashboard/assets/page-D0Zt2-7X.js +1 -0
- zenml/zen_server/dashboard/assets/page-D2F0Rvak.js +1 -0
- zenml/zen_server/dashboard/assets/{page-2EzZ5aWS.js → page-D5GZlpKq.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-CxoG4zme.js → page-DBNBYSwq.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DDvwWgKP.js +6 -0
- zenml/zen_server/dashboard/assets/page-DF9q7ySu.js +1 -0
- zenml/zen_server/dashboard/assets/page-DOzFoJuo.js +1 -0
- zenml/zen_server/dashboard/assets/page-DaHH2ZEF.js +1 -0
- zenml/zen_server/dashboard/assets/{page-B9ELcPAy.js → page-Dd-0y3SU.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-Dy6HYsJr.js → page-DhNnHHmX.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-CZ_3LB0U.js → page-DkJfgcDi.js} +1 -1
- zenml/zen_server/dashboard/assets/page-EhqRFAZc.js +1 -0
- zenml/zen_server/dashboard/assets/{page-nHAZvd76.js → page-NIWnUdVg.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DazwBcbq.js → page-kYlFrH53.js} +1 -1
- zenml/zen_server/dashboard/assets/page-ygCPGHAV.js +1 -0
- zenml/zen_server/dashboard/assets/{persist-BglceT_t.js → persist-C5RlwSq6.js} +1 -1
- zenml/zen_server/dashboard/assets/{persist-CMkLV2Cs.js → persist-DHGuHP2H.js} +1 -1
- zenml/zen_server/dashboard/assets/{service-DNKY_ZYd.js → service-Do7yitqe.js} +1 -1
- zenml/zen_server/dashboard/assets/{sharedSchema-BOmQa793.js → sharedSchema-i_9Y4WcA.js} +1 -1
- zenml/zen_server/dashboard/assets/stack-detail-query-omCumL7U.js +1 -0
- zenml/zen_server/dashboard/assets/update-server-settings-mutation-B4eE33z-.js +1 -0
- zenml/zen_server/dashboard/index.html +4 -4
- zenml/zen_server/deploy/daemon/daemon_zen_server.py +1 -1
- zenml/zen_server/deploy/deployment.py +1 -2
- zenml/zen_server/deploy/docker/docker_zen_server.py +1 -1
- zenml/zen_server/rbac/endpoint_utils.py +1 -2
- zenml/zen_server/routers/projects_endpoints.py +14 -3
- zenml/zen_server/utils.py +2 -86
- zenml/zen_stores/migrations/versions/0.80.0_release.py +23 -0
- zenml/zen_stores/schemas/artifact_visualization_schemas.py +1 -1
- zenml/zen_stores/schemas/model_schemas.py +1 -1
- zenml/zen_stores/schemas/service_schemas.py +1 -1
- zenml/zen_stores/schemas/step_run_schemas.py +1 -1
- zenml/zen_stores/schemas/trigger_schemas.py +1 -1
- zenml/zen_stores/sql_zen_store.py +5 -0
- {zenml_nightly-0.75.0.dev20250317.dist-info → zenml_nightly-0.80.0.dev20250321.dist-info}/METADATA +7 -8
- {zenml_nightly-0.75.0.dev20250317.dist-info → zenml_nightly-0.80.0.dev20250321.dist-info}/RECORD +226 -225
- zenml/zen_server/dashboard/assets/@reactflow-DMaYqp8l.js +0 -17
- zenml/zen_server/dashboard/assets/CodeSnippet-D8ptwPjg.js +0 -9
- zenml/zen_server/dashboard/assets/ComponentIcon-gpMJ2Y2e.js +0 -1
- zenml/zen_server/dashboard/assets/ExecutionStatus-DHiK3Am-.js +0 -1
- zenml/zen_server/dashboard/assets/ProBadge-ypma7R8i.js +0 -1
- zenml/zen_server/dashboard/assets/ProviderIcon-DKN3Gdcg.js +0 -1
- zenml/zen_server/dashboard/assets/RunSelector-CYmRHGdm.js +0 -1
- zenml/zen_server/dashboard/assets/SecretTooltip-CHPWF0bu.js +0 -1
- zenml/zen_server/dashboard/assets/Tick-DgU4udUn.js +0 -1
- zenml/zen_server/dashboard/assets/configuration-form-BEwWCxqY.js +0 -1
- zenml/zen_server/dashboard/assets/flavor-select-C1pyy8gq.js +0 -1
- zenml/zen_server/dashboard/assets/login-mutation-7WFxPe10.js +0 -1
- zenml/zen_server/dashboard/assets/page-BKN4SYXY.js +0 -1
- zenml/zen_server/dashboard/assets/page-BNrOW_3T.js +0 -2
- zenml/zen_server/dashboard/assets/page-BX6ZrAVH.js +0 -1
- zenml/zen_server/dashboard/assets/page-BnOdORy3.js +0 -1
- zenml/zen_server/dashboard/assets/page-BtkfcEI7.js +0 -1
- zenml/zen_server/dashboard/assets/page-Bz_grLBY.js +0 -1
- zenml/zen_server/dashboard/assets/page-CCEwuGU4.js +0 -1
- zenml/zen_server/dashboard/assets/page-COAGXWJu.js +0 -1
- zenml/zen_server/dashboard/assets/page-CaibMa0l.js +0 -1
- zenml/zen_server/dashboard/assets/page-CskoTYOC.js +0 -1
- zenml/zen_server/dashboard/assets/page-Cyoe7AtN.js +0 -1
- zenml/zen_server/dashboard/assets/page-D03wm5f1.js +0 -1
- zenml/zen_server/dashboard/assets/page-D8UimvyP.js +0 -1
- zenml/zen_server/dashboard/assets/page-DEnmFyzi.js +0 -1
- zenml/zen_server/dashboard/assets/page-TiOZeeo0.js +0 -1
- zenml/zen_server/dashboard/assets/page-cveasWUr.js +0 -6
- zenml/zen_server/dashboard/assets/page-iTvxfhgZ.js +0 -1
- zenml/zen_server/dashboard/assets/page-niRD8Hqz.js +0 -1
- zenml/zen_server/dashboard/assets/stack-detail-query-CI_YMUx6.js +0 -1
- zenml/zen_server/dashboard/assets/transform-DKsRLKTv.js +0 -1
- zenml/zen_server/dashboard/assets/update-server-settings-mutation-CNYCc-FU.js +0 -1
- {zenml_nightly-0.75.0.dev20250317.dist-info → zenml_nightly-0.80.0.dev20250321.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.75.0.dev20250317.dist-info → zenml_nightly-0.80.0.dev20250321.dist-info}/WHEEL +0 -0
- {zenml_nightly-0.75.0.dev20250317.dist-info → zenml_nightly-0.80.0.dev20250321.dist-info}/entry_points.txt +0 -0
@@ -38,11 +38,11 @@ from zenml.constants import (
|
|
38
38
|
from zenml.enums import AuthScheme, StoreType
|
39
39
|
from zenml.logger import get_logger
|
40
40
|
from zenml.models import ServerDeploymentType
|
41
|
+
from zenml.models.v2.misc.service import ServiceType
|
41
42
|
from zenml.services import (
|
42
43
|
LocalDaemonService,
|
43
44
|
LocalDaemonServiceConfig,
|
44
45
|
LocalDaemonServiceEndpoint,
|
45
|
-
ServiceType,
|
46
46
|
)
|
47
47
|
from zenml.utils.io_utils import get_global_config_directory
|
48
48
|
from zenml.zen_server.deploy.deployment import LocalServerDeploymentConfig
|
@@ -17,8 +17,7 @@ from typing import Optional
|
|
17
17
|
|
18
18
|
from pydantic import BaseModel, ConfigDict
|
19
19
|
|
20
|
-
from zenml.enums import ServerProviderType
|
21
|
-
from zenml.services.service_status import ServiceState
|
20
|
+
from zenml.enums import ServerProviderType, ServiceState
|
22
21
|
|
23
22
|
|
24
23
|
class LocalServerDeploymentConfig(BaseModel):
|
@@ -38,11 +38,11 @@ from zenml.constants import (
|
|
38
38
|
from zenml.enums import AuthScheme, StoreType
|
39
39
|
from zenml.logger import get_logger
|
40
40
|
from zenml.models import ServerDeploymentType
|
41
|
+
from zenml.models.v2.misc.service import ServiceType
|
41
42
|
from zenml.services import (
|
42
43
|
ContainerService,
|
43
44
|
ContainerServiceConfig,
|
44
45
|
ContainerServiceEndpoint,
|
45
|
-
ServiceType,
|
46
46
|
)
|
47
47
|
from zenml.services.container.container_service import (
|
48
48
|
SERVICE_CONTAINER_GLOBAL_CONFIG_DIR,
|
@@ -306,8 +306,7 @@ def verify_permissions_and_delete_entity(
|
|
306
306
|
Returns:
|
307
307
|
The deleted entity.
|
308
308
|
"""
|
309
|
-
|
310
|
-
model = get_method(id, False)
|
309
|
+
model = get_method(id, True)
|
311
310
|
verify_permission_for_model(model, action=Action.DELETE)
|
312
311
|
delete_method(model.id, **delete_method_kwargs)
|
313
312
|
delete_model_resource(model)
|
@@ -37,6 +37,9 @@ from zenml.models import (
|
|
37
37
|
)
|
38
38
|
from zenml.zen_server.auth import AuthContext, authorize
|
39
39
|
from zenml.zen_server.exceptions import error_response
|
40
|
+
from zenml.zen_server.feature_gate.endpoint_utils import (
|
41
|
+
report_decrement,
|
42
|
+
)
|
40
43
|
from zenml.zen_server.rbac.endpoint_utils import (
|
41
44
|
verify_permissions_and_create_entity,
|
42
45
|
verify_permissions_and_delete_entity,
|
@@ -51,6 +54,7 @@ from zenml.zen_server.rbac.utils import (
|
|
51
54
|
from zenml.zen_server.utils import (
|
52
55
|
handle_exceptions,
|
53
56
|
make_dependable,
|
57
|
+
server_config,
|
54
58
|
zen_store,
|
55
59
|
)
|
56
60
|
|
@@ -225,11 +229,14 @@ def delete_project(
|
|
225
229
|
Args:
|
226
230
|
project_name_or_id: Name or ID of the project.
|
227
231
|
"""
|
228
|
-
verify_permissions_and_delete_entity(
|
232
|
+
project = verify_permissions_and_delete_entity(
|
229
233
|
id=project_name_or_id,
|
230
234
|
get_method=zen_store().get_project,
|
231
235
|
delete_method=zen_store().delete_project,
|
232
236
|
)
|
237
|
+
if server_config().feature_gate_enabled:
|
238
|
+
if ResourceType.PROJECT in server_config().reportable_resources:
|
239
|
+
report_decrement(ResourceType.PROJECT, resource_id=project.id)
|
233
240
|
|
234
241
|
|
235
242
|
# TODO: kept for backwards compatibility only; to be removed after the migration
|
@@ -268,13 +275,17 @@ def get_project_statistics(
|
|
268
275
|
run_filter = PipelineRunFilter(project=project.id)
|
269
276
|
run_filter.configure_rbac(
|
270
277
|
authenticated_user_id=user_id,
|
271
|
-
id=get_allowed_resource_ids(
|
278
|
+
id=get_allowed_resource_ids(
|
279
|
+
resource_type=ResourceType.PIPELINE_RUN, project_id=project.id
|
280
|
+
),
|
272
281
|
)
|
273
282
|
|
274
283
|
pipeline_filter = PipelineFilter(project=project.id)
|
275
284
|
pipeline_filter.configure_rbac(
|
276
285
|
authenticated_user_id=user_id,
|
277
|
-
id=get_allowed_resource_ids(
|
286
|
+
id=get_allowed_resource_ids(
|
287
|
+
resource_type=ResourceType.PIPELINE, project_id=project.id
|
288
|
+
),
|
278
289
|
)
|
279
290
|
|
280
291
|
return ProjectStatistics(
|
zenml/zen_server/utils.py
CHANGED
@@ -29,7 +29,6 @@ from typing import (
|
|
29
29
|
Union,
|
30
30
|
cast,
|
31
31
|
)
|
32
|
-
from urllib.parse import urlparse
|
33
32
|
from uuid import UUID
|
34
33
|
|
35
34
|
from pydantic import BaseModel, ValidationError
|
@@ -43,16 +42,11 @@ from zenml.constants import (
|
|
43
42
|
INFO,
|
44
43
|
VERSION_1,
|
45
44
|
)
|
46
|
-
from zenml.enums import StoreType
|
47
45
|
from zenml.exceptions import IllegalOperationError, OAuthError
|
48
46
|
from zenml.logger import get_logger
|
49
47
|
from zenml.models.v2.base.scoped import ProjectScopedFilter
|
50
48
|
from zenml.plugins.plugin_flavor_registry import PluginFlavorRegistry
|
51
49
|
from zenml.zen_server.cache import MemoryCache
|
52
|
-
from zenml.zen_server.deploy.deployment import (
|
53
|
-
LocalServerDeployment,
|
54
|
-
)
|
55
|
-
from zenml.zen_server.deploy.exceptions import ServerDeploymentNotFoundError
|
56
50
|
from zenml.zen_server.exceptions import http_exception_from_error
|
57
51
|
from zenml.zen_server.feature_gate.feature_gate_interface import (
|
58
52
|
FeatureGateInterface,
|
@@ -66,6 +60,7 @@ from zenml.zen_stores.sql_zen_store import SqlZenStore
|
|
66
60
|
if TYPE_CHECKING:
|
67
61
|
from fastapi import Request
|
68
62
|
|
63
|
+
|
69
64
|
logger = get_logger(__name__)
|
70
65
|
|
71
66
|
_zen_store: Optional["SqlZenStore"] = None
|
@@ -98,6 +93,7 @@ def plugin_flavor_registry() -> PluginFlavorRegistry:
|
|
98
93
|
The plugin flavor registry.
|
99
94
|
"""
|
100
95
|
global _plugin_flavor_registry
|
96
|
+
|
101
97
|
if _plugin_flavor_registry is None:
|
102
98
|
_plugin_flavor_registry = PluginFlavorRegistry()
|
103
99
|
_plugin_flavor_registry.initialize_plugins()
|
@@ -269,86 +265,6 @@ def server_config() -> ServerConfiguration:
|
|
269
265
|
return _server_config
|
270
266
|
|
271
267
|
|
272
|
-
def get_local_server() -> Optional["LocalServerDeployment"]:
|
273
|
-
"""Get the active local server.
|
274
|
-
|
275
|
-
Call this function to retrieve the local server deployed on this machine.
|
276
|
-
|
277
|
-
Returns:
|
278
|
-
The local server deployment or None, if no local server deployment was
|
279
|
-
found.
|
280
|
-
"""
|
281
|
-
from zenml.zen_server.deploy.deployer import LocalServerDeployer
|
282
|
-
|
283
|
-
deployer = LocalServerDeployer()
|
284
|
-
try:
|
285
|
-
return deployer.get_server()
|
286
|
-
except ServerDeploymentNotFoundError:
|
287
|
-
return None
|
288
|
-
|
289
|
-
|
290
|
-
def connected_to_local_server() -> bool:
|
291
|
-
"""Check if the client is connected to a local server.
|
292
|
-
|
293
|
-
Returns:
|
294
|
-
True if the client is connected to a local server, False otherwise.
|
295
|
-
"""
|
296
|
-
from zenml.zen_server.deploy.deployer import LocalServerDeployer
|
297
|
-
|
298
|
-
deployer = LocalServerDeployer()
|
299
|
-
return deployer.is_connected_to_server()
|
300
|
-
|
301
|
-
|
302
|
-
def show_dashboard(
|
303
|
-
local: bool = False,
|
304
|
-
ngrok_token: Optional[str] = None,
|
305
|
-
) -> None:
|
306
|
-
"""Show the ZenML dashboard.
|
307
|
-
|
308
|
-
Args:
|
309
|
-
local: Whether to show the dashboard for the local server or the
|
310
|
-
one for the active server.
|
311
|
-
ngrok_token: An ngrok auth token to use for exposing the ZenML
|
312
|
-
dashboard on a public domain. Primarily used for accessing the
|
313
|
-
dashboard in Colab.
|
314
|
-
|
315
|
-
Raises:
|
316
|
-
RuntimeError: If no server is connected.
|
317
|
-
"""
|
318
|
-
from zenml.utils.dashboard_utils import show_dashboard
|
319
|
-
from zenml.utils.networking_utils import get_or_create_ngrok_tunnel
|
320
|
-
|
321
|
-
url: Optional[str] = None
|
322
|
-
if not local:
|
323
|
-
gc = GlobalConfiguration()
|
324
|
-
if gc.store_configuration.type == StoreType.REST:
|
325
|
-
url = gc.store_configuration.url
|
326
|
-
|
327
|
-
if not url:
|
328
|
-
# Else, check for local servers
|
329
|
-
server = get_local_server()
|
330
|
-
if server and server.status and server.status.url:
|
331
|
-
url = server.status.url
|
332
|
-
|
333
|
-
if not url:
|
334
|
-
raise RuntimeError(
|
335
|
-
"ZenML is not connected to any server right now. Please use "
|
336
|
-
"`zenml login` to connect to a server or spin up a new local server "
|
337
|
-
"via `zenml login --local`."
|
338
|
-
)
|
339
|
-
|
340
|
-
if ngrok_token:
|
341
|
-
parsed_url = urlparse(url)
|
342
|
-
|
343
|
-
ngrok_url = get_or_create_ngrok_tunnel(
|
344
|
-
ngrok_token=ngrok_token, port=parsed_url.port or 80
|
345
|
-
)
|
346
|
-
logger.debug(f"Tunneling dashboard from {url} to {ngrok_url}.")
|
347
|
-
url = ngrok_url
|
348
|
-
|
349
|
-
show_dashboard(url)
|
350
|
-
|
351
|
-
|
352
268
|
F = TypeVar("F", bound=Callable[..., Any])
|
353
269
|
|
354
270
|
|
@@ -0,0 +1,23 @@
|
|
1
|
+
"""Release [0.80.0].
|
2
|
+
|
3
|
+
Revision ID: 0.80.0
|
4
|
+
Revises: 12eff0206201
|
5
|
+
Create Date: 2025-03-19 10:07:36.959628
|
6
|
+
|
7
|
+
"""
|
8
|
+
|
9
|
+
# revision identifiers, used by Alembic.
|
10
|
+
revision = "0.80.0"
|
11
|
+
down_revision = "12eff0206201"
|
12
|
+
branch_labels = None
|
13
|
+
depends_on = None
|
14
|
+
|
15
|
+
|
16
|
+
def upgrade() -> None:
|
17
|
+
"""Upgrade database schema and/or data, creating a new revision."""
|
18
|
+
pass
|
19
|
+
|
20
|
+
|
21
|
+
def downgrade() -> None:
|
22
|
+
"""Downgrade database schema and/or data back to the previous revision."""
|
23
|
+
pass
|
@@ -43,7 +43,7 @@ class ArtifactVisualizationSchema(BaseSchema, table=True):
|
|
43
43
|
# Foreign Keys
|
44
44
|
artifact_version_id: UUID = build_foreign_key_field(
|
45
45
|
source=__tablename__,
|
46
|
-
target=ArtifactVersionSchema.__tablename__,
|
46
|
+
target=ArtifactVersionSchema.__tablename__,
|
47
47
|
source_column="artifact_version_id",
|
48
48
|
target_column="id",
|
49
49
|
ondelete="CASCADE",
|
@@ -552,7 +552,7 @@ class ModelVersionArtifactSchema(BaseSchema, table=True):
|
|
552
552
|
)
|
553
553
|
artifact_version_id: UUID = build_foreign_key_field(
|
554
554
|
source=__tablename__,
|
555
|
-
target=ArtifactVersionSchema.__tablename__,
|
555
|
+
target=ArtifactVersionSchema.__tablename__,
|
556
556
|
source_column="artifact_version_id",
|
557
557
|
target_column="id",
|
558
558
|
ondelete="CASCADE",
|
@@ -88,7 +88,7 @@ class ServiceSchema(NamedSchema, table=True):
|
|
88
88
|
)
|
89
89
|
model_version_id: Optional[UUID] = build_foreign_key_field(
|
90
90
|
source=__tablename__,
|
91
|
-
target=ModelVersionSchema.__tablename__,
|
91
|
+
target=ModelVersionSchema.__tablename__,
|
92
92
|
source_column="model_version_id",
|
93
93
|
target_column="id",
|
94
94
|
ondelete="SET NULL",
|
@@ -112,7 +112,7 @@ class StepRunSchema(NamedSchema, RunMetadataInterface, table=True):
|
|
112
112
|
)
|
113
113
|
pipeline_run_id: UUID = build_foreign_key_field(
|
114
114
|
source=__tablename__,
|
115
|
-
target=PipelineRunSchema.__tablename__,
|
115
|
+
target=PipelineRunSchema.__tablename__,
|
116
116
|
source_column="pipeline_run_id",
|
117
117
|
target_column="id",
|
118
118
|
ondelete="CASCADE",
|
@@ -84,7 +84,7 @@ class TriggerSchema(NamedSchema, table=True):
|
|
84
84
|
|
85
85
|
event_source_id: Optional[UUID] = build_foreign_key_field(
|
86
86
|
source=__tablename__,
|
87
|
-
target=EventSourceSchema.__tablename__,
|
87
|
+
target=EventSourceSchema.__tablename__,
|
88
88
|
source_column="event_source_id",
|
89
89
|
target_column="id",
|
90
90
|
# This won't happen because the SQL zen store prevents an event source
|
@@ -9330,6 +9330,11 @@ class SqlZenStore(BaseZenStore):
|
|
9330
9330
|
include_metadata=True, include_resources=True
|
9331
9331
|
)
|
9332
9332
|
|
9333
|
+
self._update_onboarding_state(
|
9334
|
+
completed_steps={OnboardingStep.PROJECT_CREATED},
|
9335
|
+
session=session,
|
9336
|
+
)
|
9337
|
+
|
9333
9338
|
return project_model
|
9334
9339
|
|
9335
9340
|
def get_project(
|
{zenml_nightly-0.75.0.dev20250317.dist-info → zenml_nightly-0.80.0.dev20250321.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: zenml-nightly
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.80.0.dev20250321
|
4
4
|
Summary: ZenML: Write production-ready ML code.
|
5
5
|
License: Apache-2.0
|
6
6
|
Keywords: machine learning,production,pipeline,mlops,devops
|
@@ -79,12 +79,11 @@ Requires-Dist: kfp (>=2.6.0) ; extra == "vertex"
|
|
79
79
|
Requires-Dist: kubernetes (>=18.20.0) ; extra == "connectors-kubernetes" or extra == "connectors-aws" or extra == "connectors-gcp" or extra == "connectors-azure"
|
80
80
|
Requires-Dist: maison (<2.0) ; extra == "dev"
|
81
81
|
Requires-Dist: mike (>=1.1.2,<2.0.0) ; extra == "dev"
|
82
|
-
Requires-Dist: mkdocs (>=1.
|
83
|
-
Requires-Dist: mkdocs-autorefs (>=
|
84
|
-
Requires-Dist: mkdocs-awesome-pages-plugin (>=2.
|
85
|
-
Requires-Dist: mkdocs-material (>=9.
|
86
|
-
Requires-Dist: mkdocstrings (>=0.
|
87
|
-
Requires-Dist: mkdocstrings-python (>=1.1.0,<2.0.0) ; extra == "dev"
|
82
|
+
Requires-Dist: mkdocs (>=1.6.1,<2.0.0) ; extra == "dev"
|
83
|
+
Requires-Dist: mkdocs-autorefs (>=1.4.0,<2.0.0) ; extra == "dev"
|
84
|
+
Requires-Dist: mkdocs-awesome-pages-plugin (>=2.10.1,<3.0.0) ; extra == "dev"
|
85
|
+
Requires-Dist: mkdocs-material (>=9.6.5,<10.0.0) ; extra == "dev"
|
86
|
+
Requires-Dist: mkdocstrings[python] (>=0.28.1,<0.29.0) ; extra == "dev"
|
88
87
|
Requires-Dist: mypy (==1.7.1) ; extra == "dev"
|
89
88
|
Requires-Dist: orjson (>=3.10.0,<3.11.0) ; extra == "server"
|
90
89
|
Requires-Dist: packaging (>=24.1)
|
@@ -532,7 +531,7 @@ the Apache License Version 2.0.
|
|
532
531
|
<a href="https://github.com/zenml-io/zenml-projects">Projects Showcase</a>
|
533
532
|
<br />
|
534
533
|
<br />
|
535
|
-
🎉 Version 0.
|
534
|
+
🎉 Version 0.80.0 is out. Check out the release notes
|
536
535
|
<a href="https://github.com/zenml-io/zenml/releases">here</a>.
|
537
536
|
<br />
|
538
537
|
🖥️ Download our VS Code Extension <a href="https://marketplace.visualstudio.com/items?itemName=ZenML.zenml-vscode">here</a>.
|