zenml-nightly 0.75.0.dev20250313__py3-none-any.whl → 0.75.0.dev20250315__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/analytics/context.py +4 -4
- zenml/analytics/enums.py +2 -2
- zenml/artifacts/utils.py +2 -2
- zenml/cli/__init__.py +8 -9
- zenml/cli/base.py +2 -2
- zenml/cli/code_repository.py +1 -1
- zenml/cli/login.py +21 -18
- zenml/cli/pipeline.py +3 -3
- zenml/cli/project.py +172 -0
- zenml/cli/server.py +5 -5
- zenml/cli/service_accounts.py +0 -1
- zenml/cli/service_connectors.py +15 -16
- zenml/cli/stack.py +0 -2
- zenml/cli/stack_components.py +2 -2
- zenml/cli/utils.py +3 -3
- zenml/client.py +352 -341
- zenml/config/global_config.py +41 -43
- zenml/config/server_config.py +9 -9
- zenml/constants.py +5 -3
- zenml/event_hub/event_hub.py +1 -1
- zenml/integrations/gcp/__init__.py +1 -0
- zenml/integrations/gcp/flavors/vertex_orchestrator_flavor.py +5 -0
- zenml/integrations/gcp/flavors/vertex_step_operator_flavor.py +5 -28
- zenml/integrations/gcp/orchestrators/vertex_orchestrator.py +125 -78
- zenml/integrations/gcp/service_connectors/gcp_service_connector.py +7 -6
- zenml/integrations/gcp/vertex_custom_job_parameters.py +50 -0
- zenml/integrations/mlflow/steps/mlflow_registry.py +3 -3
- zenml/integrations/wandb/__init__.py +1 -1
- zenml/integrations/wandb/experiment_trackers/wandb_experiment_tracker.py +29 -9
- zenml/integrations/wandb/flavors/wandb_experiment_tracker_flavor.py +2 -0
- zenml/login/credentials.py +26 -27
- zenml/login/credentials_store.py +5 -5
- zenml/login/pro/client.py +9 -9
- zenml/login/pro/utils.py +8 -8
- zenml/login/pro/{tenant → workspace}/__init__.py +1 -1
- zenml/login/pro/{tenant → workspace}/client.py +25 -25
- zenml/login/pro/{tenant → workspace}/models.py +27 -28
- zenml/model/model.py +2 -2
- zenml/model_registries/base_model_registry.py +1 -1
- zenml/models/__init__.py +29 -29
- zenml/models/v2/base/filter.py +1 -1
- zenml/models/v2/base/scoped.py +49 -53
- zenml/models/v2/core/action.py +12 -12
- zenml/models/v2/core/artifact.py +15 -15
- zenml/models/v2/core/artifact_version.py +15 -15
- zenml/models/v2/core/code_repository.py +12 -12
- zenml/models/v2/core/event_source.py +12 -12
- zenml/models/v2/core/model.py +26 -18
- zenml/models/v2/core/model_version.py +15 -15
- zenml/models/v2/core/pipeline.py +15 -15
- zenml/models/v2/core/pipeline_build.py +14 -14
- zenml/models/v2/core/pipeline_deployment.py +12 -14
- zenml/models/v2/core/pipeline_run.py +16 -16
- zenml/models/v2/core/project.py +203 -0
- zenml/models/v2/core/run_metadata.py +2 -2
- zenml/models/v2/core/run_template.py +15 -15
- zenml/models/v2/core/schedule.py +12 -12
- zenml/models/v2/core/secret.py +1 -1
- zenml/models/v2/core/service.py +14 -14
- zenml/models/v2/core/step_run.py +13 -13
- zenml/models/v2/core/tag.py +96 -3
- zenml/models/v2/core/trigger.py +13 -13
- zenml/models/v2/core/trigger_execution.py +2 -2
- zenml/models/v2/core/user.py +0 -17
- zenml/models/v2/misc/server_models.py +6 -6
- zenml/models/v2/misc/statistics.py +4 -4
- zenml/orchestrators/cache_utils.py +7 -7
- zenml/orchestrators/input_utils.py +1 -1
- zenml/orchestrators/step_launcher.py +1 -1
- zenml/orchestrators/step_run_utils.py +3 -3
- zenml/orchestrators/utils.py +4 -4
- zenml/pipelines/build_utils.py +2 -2
- zenml/pipelines/pipeline_definition.py +5 -5
- zenml/pipelines/run_utils.py +1 -1
- zenml/service_connectors/service_connector.py +0 -3
- zenml/service_connectors/service_connector_utils.py +0 -1
- zenml/stack/stack.py +0 -1
- zenml/steps/base_step.py +10 -2
- zenml/utils/dashboard_utils.py +1 -1
- zenml/utils/tag_utils.py +0 -12
- zenml/zen_server/cloud_utils.py +3 -3
- zenml/zen_server/feature_gate/endpoint_utils.py +1 -1
- zenml/zen_server/feature_gate/zenml_cloud_feature_gate.py +1 -1
- zenml/zen_server/rbac/endpoint_utils.py +17 -17
- zenml/zen_server/rbac/models.py +47 -22
- zenml/zen_server/rbac/rbac_sql_zen_store.py +3 -3
- zenml/zen_server/rbac/utils.py +23 -25
- zenml/zen_server/rbac/zenml_cloud_rbac.py +7 -74
- zenml/zen_server/routers/artifact_version_endpoints.py +10 -10
- zenml/zen_server/routers/auth_endpoints.py +6 -6
- zenml/zen_server/routers/code_repositories_endpoints.py +12 -14
- zenml/zen_server/routers/model_versions_endpoints.py +13 -15
- zenml/zen_server/routers/models_endpoints.py +7 -9
- zenml/zen_server/routers/pipeline_builds_endpoints.py +14 -16
- zenml/zen_server/routers/pipeline_deployments_endpoints.py +13 -15
- zenml/zen_server/routers/pipelines_endpoints.py +16 -18
- zenml/zen_server/routers/{workspaces_endpoints.py → projects_endpoints.py} +111 -68
- zenml/zen_server/routers/run_metadata_endpoints.py +7 -9
- zenml/zen_server/routers/run_templates_endpoints.py +15 -17
- zenml/zen_server/routers/runs_endpoints.py +12 -14
- zenml/zen_server/routers/schedule_endpoints.py +12 -14
- zenml/zen_server/routers/secrets_endpoints.py +1 -3
- zenml/zen_server/routers/server_endpoints.py +7 -7
- zenml/zen_server/routers/service_connectors_endpoints.py +11 -13
- zenml/zen_server/routers/service_endpoints.py +7 -9
- zenml/zen_server/routers/stack_components_endpoints.py +9 -11
- zenml/zen_server/routers/stacks_endpoints.py +9 -11
- zenml/zen_server/routers/steps_endpoints.py +6 -6
- zenml/zen_server/routers/users_endpoints.py +5 -43
- zenml/zen_server/template_execution/utils.py +4 -4
- zenml/zen_server/utils.py +10 -10
- zenml/zen_server/zen_server_api.py +6 -5
- zenml/zen_stores/base_zen_store.py +38 -42
- zenml/zen_stores/migrations/versions/12eff0206201_rename_workspace_to_project.py +768 -0
- zenml/zen_stores/migrations/versions/41b28cae31ce_make_artifacts_workspace_scoped.py +3 -3
- zenml/zen_stores/migrations/versions/cbc6acd71f92_add_workspace_display_name.py +58 -0
- zenml/zen_stores/rest_zen_store.py +55 -63
- zenml/zen_stores/schemas/__init__.py +2 -2
- zenml/zen_stores/schemas/action_schemas.py +9 -9
- zenml/zen_stores/schemas/artifact_schemas.py +15 -17
- zenml/zen_stores/schemas/code_repository_schemas.py +16 -18
- zenml/zen_stores/schemas/event_source_schemas.py +9 -9
- zenml/zen_stores/schemas/model_schemas.py +15 -17
- zenml/zen_stores/schemas/pipeline_build_schemas.py +7 -7
- zenml/zen_stores/schemas/pipeline_deployment_schemas.py +7 -7
- zenml/zen_stores/schemas/pipeline_run_schemas.py +9 -9
- zenml/zen_stores/schemas/pipeline_schemas.py +9 -9
- zenml/zen_stores/schemas/{workspace_schemas.py → project_schemas.py} +47 -41
- zenml/zen_stores/schemas/run_metadata_schemas.py +5 -5
- zenml/zen_stores/schemas/run_template_schemas.py +9 -9
- zenml/zen_stores/schemas/schedule_schema.py +9 -9
- zenml/zen_stores/schemas/service_schemas.py +7 -7
- zenml/zen_stores/schemas/step_run_schemas.py +7 -7
- zenml/zen_stores/schemas/trigger_schemas.py +9 -9
- zenml/zen_stores/schemas/user_schemas.py +0 -12
- zenml/zen_stores/sql_zen_store.py +318 -275
- zenml/zen_stores/zen_store_interface.py +56 -70
- {zenml_nightly-0.75.0.dev20250313.dist-info → zenml_nightly-0.75.0.dev20250315.dist-info}/METADATA +1 -1
- {zenml_nightly-0.75.0.dev20250313.dist-info → zenml_nightly-0.75.0.dev20250315.dist-info}/RECORD +143 -140
- zenml/cli/workspace.py +0 -160
- zenml/models/v2/core/workspace.py +0 -131
- {zenml_nightly-0.75.0.dev20250313.dist-info → zenml_nightly-0.75.0.dev20250315.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.75.0.dev20250313.dist-info → zenml_nightly-0.75.0.dev20250315.dist-info}/WHEEL +0 -0
- {zenml_nightly-0.75.0.dev20250313.dist-info → zenml_nightly-0.75.0.dev20250315.dist-info}/entry_points.txt +0 -0
@@ -32,10 +32,10 @@ from zenml.utils.time_utils import utc_now
|
|
32
32
|
from zenml.zen_stores.schemas.base_schemas import NamedSchema
|
33
33
|
from zenml.zen_stores.schemas.component_schemas import StackComponentSchema
|
34
34
|
from zenml.zen_stores.schemas.pipeline_schemas import PipelineSchema
|
35
|
+
from zenml.zen_stores.schemas.project_schemas import ProjectSchema
|
35
36
|
from zenml.zen_stores.schemas.schema_utils import build_foreign_key_field
|
36
37
|
from zenml.zen_stores.schemas.user_schemas import UserSchema
|
37
38
|
from zenml.zen_stores.schemas.utils import RunMetadataInterface
|
38
|
-
from zenml.zen_stores.schemas.workspace_schemas import WorkspaceSchema
|
39
39
|
|
40
40
|
if TYPE_CHECKING:
|
41
41
|
from zenml.zen_stores.schemas.pipeline_deployment_schemas import (
|
@@ -53,20 +53,20 @@ class ScheduleSchema(NamedSchema, RunMetadataInterface, table=True):
|
|
53
53
|
__table_args__ = (
|
54
54
|
UniqueConstraint(
|
55
55
|
"name",
|
56
|
-
"
|
57
|
-
name="
|
56
|
+
"project_id",
|
57
|
+
name="unique_schedule_name_in_project",
|
58
58
|
),
|
59
59
|
)
|
60
60
|
|
61
|
-
|
61
|
+
project_id: UUID = build_foreign_key_field(
|
62
62
|
source=__tablename__,
|
63
|
-
target=
|
64
|
-
source_column="
|
63
|
+
target=ProjectSchema.__tablename__,
|
64
|
+
source_column="project_id",
|
65
65
|
target_column="id",
|
66
66
|
ondelete="CASCADE",
|
67
67
|
nullable=False,
|
68
68
|
)
|
69
|
-
|
69
|
+
project: "ProjectSchema" = Relationship(back_populates="schedules")
|
70
70
|
|
71
71
|
user_id: Optional[UUID] = build_foreign_key_field(
|
72
72
|
source=__tablename__,
|
@@ -138,7 +138,7 @@ class ScheduleSchema(NamedSchema, RunMetadataInterface, table=True):
|
|
138
138
|
interval_second = None
|
139
139
|
return cls(
|
140
140
|
name=schedule_request.name,
|
141
|
-
|
141
|
+
project_id=schedule_request.project,
|
142
142
|
user_id=schedule_request.user,
|
143
143
|
pipeline_id=schedule_request.pipeline_id,
|
144
144
|
orchestrator_id=schedule_request.orchestrator_id,
|
@@ -203,7 +203,7 @@ class ScheduleSchema(NamedSchema, RunMetadataInterface, table=True):
|
|
203
203
|
metadata = None
|
204
204
|
if include_metadata:
|
205
205
|
metadata = ScheduleResponseMetadata(
|
206
|
-
|
206
|
+
project=self.project.to_model(),
|
207
207
|
pipeline_id=self.pipeline_id,
|
208
208
|
orchestrator_id=self.orchestrator_id,
|
209
209
|
run_metadata=self.fetch_metadata(),
|
@@ -35,9 +35,9 @@ from zenml.utils.time_utils import utc_now
|
|
35
35
|
from zenml.zen_stores.schemas.base_schemas import NamedSchema
|
36
36
|
from zenml.zen_stores.schemas.model_schemas import ModelVersionSchema
|
37
37
|
from zenml.zen_stores.schemas.pipeline_run_schemas import PipelineRunSchema
|
38
|
+
from zenml.zen_stores.schemas.project_schemas import ProjectSchema
|
38
39
|
from zenml.zen_stores.schemas.schema_utils import build_foreign_key_field
|
39
40
|
from zenml.zen_stores.schemas.user_schemas import UserSchema
|
40
|
-
from zenml.zen_stores.schemas.workspace_schemas import WorkspaceSchema
|
41
41
|
|
42
42
|
|
43
43
|
class ServiceSchema(NamedSchema, table=True):
|
@@ -45,15 +45,15 @@ class ServiceSchema(NamedSchema, table=True):
|
|
45
45
|
|
46
46
|
__tablename__ = "service"
|
47
47
|
|
48
|
-
|
48
|
+
project_id: UUID = build_foreign_key_field(
|
49
49
|
source=__tablename__,
|
50
|
-
target=
|
51
|
-
source_column="
|
50
|
+
target=ProjectSchema.__tablename__,
|
51
|
+
source_column="project_id",
|
52
52
|
target_column="id",
|
53
53
|
ondelete="CASCADE",
|
54
54
|
nullable=False,
|
55
55
|
)
|
56
|
-
|
56
|
+
project: "ProjectSchema" = Relationship(back_populates="services")
|
57
57
|
|
58
58
|
user_id: Optional[UUID] = build_foreign_key_field(
|
59
59
|
source=__tablename__,
|
@@ -146,7 +146,7 @@ class ServiceSchema(NamedSchema, table=True):
|
|
146
146
|
metadata = None
|
147
147
|
if include_metadata:
|
148
148
|
metadata = ServiceResponseMetadata(
|
149
|
-
|
149
|
+
project=self.project.to_model(),
|
150
150
|
service_source=self.service_source,
|
151
151
|
config=json.loads(base64.b64decode(self.config).decode()),
|
152
152
|
status=json.loads(base64.b64decode(self.status).decode())
|
@@ -226,7 +226,7 @@ class ServiceSchema(NamedSchema, table=True):
|
|
226
226
|
"""
|
227
227
|
return cls(
|
228
228
|
name=service_request.name,
|
229
|
-
|
229
|
+
project_id=service_request.project,
|
230
230
|
user_id=service_request.user,
|
231
231
|
service_source=service_request.service_source,
|
232
232
|
service_type=service_request.service_type.model_dump_json(),
|
@@ -50,10 +50,10 @@ from zenml.zen_stores.schemas.pipeline_deployment_schemas import (
|
|
50
50
|
PipelineDeploymentSchema,
|
51
51
|
)
|
52
52
|
from zenml.zen_stores.schemas.pipeline_run_schemas import PipelineRunSchema
|
53
|
+
from zenml.zen_stores.schemas.project_schemas import ProjectSchema
|
53
54
|
from zenml.zen_stores.schemas.schema_utils import build_foreign_key_field
|
54
55
|
from zenml.zen_stores.schemas.user_schemas import UserSchema
|
55
56
|
from zenml.zen_stores.schemas.utils import RunMetadataInterface
|
56
|
-
from zenml.zen_stores.schemas.workspace_schemas import WorkspaceSchema
|
57
57
|
|
58
58
|
if TYPE_CHECKING:
|
59
59
|
from zenml.zen_stores.schemas.artifact_schemas import ArtifactVersionSchema
|
@@ -126,10 +126,10 @@ class StepRunSchema(NamedSchema, RunMetadataInterface, table=True):
|
|
126
126
|
ondelete="SET NULL",
|
127
127
|
nullable=True,
|
128
128
|
)
|
129
|
-
|
129
|
+
project_id: UUID = build_foreign_key_field(
|
130
130
|
source=__tablename__,
|
131
|
-
target=
|
132
|
-
source_column="
|
131
|
+
target=ProjectSchema.__tablename__,
|
132
|
+
source_column="project_id",
|
133
133
|
target_column="id",
|
134
134
|
ondelete="CASCADE",
|
135
135
|
nullable=False,
|
@@ -144,7 +144,7 @@ class StepRunSchema(NamedSchema, RunMetadataInterface, table=True):
|
|
144
144
|
)
|
145
145
|
|
146
146
|
# Relationships
|
147
|
-
|
147
|
+
project: "ProjectSchema" = Relationship(back_populates="step_runs")
|
148
148
|
user: Optional["UserSchema"] = Relationship(back_populates="step_runs")
|
149
149
|
deployment: Optional["PipelineDeploymentSchema"] = Relationship(
|
150
150
|
back_populates="step_runs"
|
@@ -200,7 +200,7 @@ class StepRunSchema(NamedSchema, RunMetadataInterface, table=True):
|
|
200
200
|
"""
|
201
201
|
return cls(
|
202
202
|
name=request.name,
|
203
|
-
|
203
|
+
project_id=request.project,
|
204
204
|
user_id=request.user,
|
205
205
|
start_time=request.start_time,
|
206
206
|
end_time=request.end_time,
|
@@ -310,7 +310,7 @@ class StepRunSchema(NamedSchema, RunMetadataInterface, table=True):
|
|
310
310
|
metadata = None
|
311
311
|
if include_metadata:
|
312
312
|
metadata = StepRunResponseMetadata(
|
313
|
-
|
313
|
+
project=self.project.to_model(),
|
314
314
|
config=full_step_config.config,
|
315
315
|
spec=full_step_config.spec,
|
316
316
|
cache_key=self.cache_key,
|
@@ -41,10 +41,10 @@ from zenml.utils.time_utils import utc_now
|
|
41
41
|
from zenml.zen_stores.schemas.action_schemas import ActionSchema
|
42
42
|
from zenml.zen_stores.schemas.base_schemas import BaseSchema, NamedSchema
|
43
43
|
from zenml.zen_stores.schemas.event_source_schemas import EventSourceSchema
|
44
|
+
from zenml.zen_stores.schemas.project_schemas import ProjectSchema
|
44
45
|
from zenml.zen_stores.schemas.schema_utils import build_foreign_key_field
|
45
46
|
from zenml.zen_stores.schemas.user_schemas import UserSchema
|
46
47
|
from zenml.zen_stores.schemas.utils import get_page_from_list
|
47
|
-
from zenml.zen_stores.schemas.workspace_schemas import WorkspaceSchema
|
48
48
|
|
49
49
|
|
50
50
|
class TriggerSchema(NamedSchema, table=True):
|
@@ -54,20 +54,20 @@ class TriggerSchema(NamedSchema, table=True):
|
|
54
54
|
__table_args__ = (
|
55
55
|
UniqueConstraint(
|
56
56
|
"name",
|
57
|
-
"
|
58
|
-
name="
|
57
|
+
"project_id",
|
58
|
+
name="unique_trigger_name_in_project",
|
59
59
|
),
|
60
60
|
)
|
61
61
|
|
62
|
-
|
62
|
+
project_id: UUID = build_foreign_key_field(
|
63
63
|
source=__tablename__,
|
64
|
-
target=
|
65
|
-
source_column="
|
64
|
+
target=ProjectSchema.__tablename__,
|
65
|
+
source_column="project_id",
|
66
66
|
target_column="id",
|
67
67
|
ondelete="CASCADE",
|
68
68
|
nullable=False,
|
69
69
|
)
|
70
|
-
|
70
|
+
project: "ProjectSchema" = Relationship(back_populates="triggers")
|
71
71
|
|
72
72
|
user_id: Optional[UUID] = build_foreign_key_field(
|
73
73
|
source=__tablename__,
|
@@ -155,7 +155,7 @@ class TriggerSchema(NamedSchema, table=True):
|
|
155
155
|
"""
|
156
156
|
return cls(
|
157
157
|
name=request.name,
|
158
|
-
|
158
|
+
project_id=request.project,
|
159
159
|
user_id=request.user,
|
160
160
|
action_id=request.action_id,
|
161
161
|
event_source_id=request.event_source_id,
|
@@ -208,7 +208,7 @@ class TriggerSchema(NamedSchema, table=True):
|
|
208
208
|
metadata = None
|
209
209
|
if include_metadata:
|
210
210
|
metadata = TriggerResponseMetadata(
|
211
|
-
|
211
|
+
project=self.project.to_model(),
|
212
212
|
event_filter=json.loads(
|
213
213
|
base64.b64decode(self.event_filter).decode()
|
214
214
|
),
|
@@ -34,8 +34,6 @@ from zenml.models import (
|
|
34
34
|
)
|
35
35
|
from zenml.utils.time_utils import utc_now
|
36
36
|
from zenml.zen_stores.schemas.base_schemas import NamedSchema
|
37
|
-
from zenml.zen_stores.schemas.schema_utils import build_foreign_key_field
|
38
|
-
from zenml.zen_stores.schemas.workspace_schemas import WorkspaceSchema
|
39
37
|
|
40
38
|
if TYPE_CHECKING:
|
41
39
|
from zenml.zen_stores.schemas import (
|
@@ -84,14 +82,6 @@ class UserSchema(NamedSchema, table=True):
|
|
84
82
|
external_user_id: Optional[UUID] = Field(nullable=True)
|
85
83
|
is_admin: bool = Field(default=False)
|
86
84
|
user_metadata: Optional[str] = Field(nullable=True)
|
87
|
-
default_workspace_id: Optional[UUID] = build_foreign_key_field(
|
88
|
-
source=__tablename__,
|
89
|
-
target=WorkspaceSchema.__tablename__,
|
90
|
-
source_column="default_workspace_id",
|
91
|
-
target_column="id",
|
92
|
-
ondelete="SET NULL",
|
93
|
-
nullable=True,
|
94
|
-
)
|
95
85
|
|
96
86
|
stacks: List["StackSchema"] = Relationship(back_populates="user")
|
97
87
|
components: List["StackComponentSchema"] = Relationship(
|
@@ -195,7 +185,6 @@ class UserSchema(NamedSchema, table=True):
|
|
195
185
|
user_metadata=json.dumps(model.user_metadata)
|
196
186
|
if model.user_metadata
|
197
187
|
else None,
|
198
|
-
default_workspace_id=model.default_workspace_id,
|
199
188
|
)
|
200
189
|
|
201
190
|
@classmethod
|
@@ -310,7 +299,6 @@ class UserSchema(NamedSchema, table=True):
|
|
310
299
|
created=self.created,
|
311
300
|
updated=self.updated,
|
312
301
|
is_admin=self.is_admin,
|
313
|
-
default_workspace_id=self.default_workspace_id,
|
314
302
|
),
|
315
303
|
metadata=metadata,
|
316
304
|
)
|