zenml-nightly 0.80.0.dev20250321__py3-none-any.whl → 0.80.0.dev20250323__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 CHANGED
@@ -1 +1 @@
1
- 0.80.0.dev20250321
1
+ 0.80.0.dev20250323
zenml/cli/project.py CHANGED
@@ -38,7 +38,7 @@ def project() -> None:
38
38
  @project.command("list")
39
39
  @list_options(ProjectFilter)
40
40
  @click.pass_context
41
- def list_projects(ctx: click.Context, **kwargs: Any) -> None:
41
+ def list_projects(ctx: click.Context, /, **kwargs: Any) -> None:
42
42
  """List all projects.
43
43
 
44
44
  Args:
@@ -187,7 +187,7 @@ def describe_service_account(service_account_name_or_id: str) -> None:
187
187
  @service_account.command("list")
188
188
  @list_options(ServiceAccountFilter)
189
189
  @click.pass_context
190
- def list_service_accounts(ctx: click.Context, **kwargs: Any) -> None:
190
+ def list_service_accounts(ctx: click.Context, /, **kwargs: Any) -> None:
191
191
  """List all users.
192
192
 
193
193
  Args:
@@ -384,7 +384,7 @@ def describe_api_key(service_account_name_or_id: str, name_or_id: str) -> None:
384
384
  @api_key.command("list", help="List all API keys.")
385
385
  @list_options(APIKeyFilter)
386
386
  @click.pass_obj
387
- def list_api_keys(service_account_name_or_id: str, **kwargs: Any) -> None:
387
+ def list_api_keys(service_account_name_or_id: str, /, **kwargs: Any) -> None:
388
388
  """List all API keys.
389
389
 
390
390
  Args:
@@ -982,7 +982,7 @@ def register_service_connector(
982
982
  )
983
983
  @click.pass_context
984
984
  def list_service_connectors(
985
- ctx: click.Context, labels: Optional[List[str]] = None, **kwargs: Any
985
+ ctx: click.Context, /, labels: Optional[List[str]] = None, **kwargs: Any
986
986
  ) -> None:
987
987
  """List all service connectors.
988
988
 
zenml/cli/stack.py CHANGED
@@ -937,7 +937,7 @@ def rename_stack(
937
937
  @stack.command("list")
938
938
  @list_options(StackFilter)
939
939
  @click.pass_context
940
- def list_stacks(ctx: click.Context, **kwargs: Any) -> None:
940
+ def list_stacks(ctx: click.Context, /, **kwargs: Any) -> None:
941
941
  """List all stacks that fulfill the filter requirements.
942
942
 
943
943
  Args:
@@ -155,7 +155,7 @@ def generate_stack_component_list_command(
155
155
  @list_options(ComponentFilter)
156
156
  @click.pass_context
157
157
  def list_stack_components_command(
158
- ctx: click.Context, **kwargs: Any
158
+ ctx: click.Context, /, **kwargs: Any
159
159
  ) -> None:
160
160
  """Prints a table of stack components.
161
161
 
@@ -79,7 +79,7 @@ def describe_user(user_name_or_id: Optional[str] = None) -> None:
79
79
  @user.command("list")
80
80
  @list_options(UserFilter)
81
81
  @click.pass_context
82
- def list_users(ctx: click.Context, **kwargs: Any) -> None:
82
+ def list_users(ctx: click.Context, /, **kwargs: Any) -> None:
83
83
  """List all users.
84
84
 
85
85
  Args:
@@ -17,67 +17,3 @@ The ZenML integrations module contains sub-modules for each integration that we
17
17
  support. This includes orchestrators like Apache Airflow, visualization tools
18
18
  like the ``facets`` library, as well as deep learning libraries like PyTorch.
19
19
  """
20
- from zenml.integrations.airflow import AirflowIntegration # noqa
21
- from zenml.integrations.argilla import ArgillaIntegration # noqa
22
- from zenml.integrations.aws import AWSIntegration # noqa
23
- from zenml.integrations.azure import AzureIntegration # noqa
24
- from zenml.integrations.bentoml import BentoMLIntegration # noqa
25
- from zenml.integrations.bitbucket import BitbucketIntegration # noqa
26
- from zenml.integrations.databricks import DatabricksIntegration # noqa
27
- from zenml.integrations.comet import CometIntegration # noqa
28
- from zenml.integrations.deepchecks import DeepchecksIntegration # noqa
29
- from zenml.integrations.discord import DiscordIntegration # noqa
30
- from zenml.integrations.evidently import EvidentlyIntegration # noqa
31
- from zenml.integrations.facets import FacetsIntegration # noqa
32
- from zenml.integrations.feast import FeastIntegration # noqa
33
- from zenml.integrations.gcp import GcpIntegration # noqa
34
- from zenml.integrations.github import GitHubIntegration # noqa
35
- from zenml.integrations.gitlab import GitLabIntegration # noqa
36
- from zenml.integrations.great_expectations import ( # noqa
37
- GreatExpectationsIntegration,
38
- )
39
- from zenml.integrations.lightning import LightningIntegration # noqa
40
- from zenml.integrations.huggingface import HuggingfaceIntegration # noqa
41
- from zenml.integrations.hyperai import HyperAIIntegration # noqa
42
- from zenml.integrations.kaniko import KanikoIntegration # noqa
43
- from zenml.integrations.kubeflow import KubeflowIntegration # noqa
44
- from zenml.integrations.kubernetes import KubernetesIntegration # noqa
45
- from zenml.integrations.label_studio import LabelStudioIntegration # noqa
46
- from zenml.integrations.langchain import LangchainIntegration # noqa
47
- from zenml.integrations.lightgbm import LightGBMIntegration # noqa
48
-
49
- # from zenml.integrations.llama_index import LlamaIndexIntegration # noqa
50
- from zenml.integrations.mlflow import MlflowIntegration # noqa
51
- from zenml.integrations.modal import ModalIntegration # noqa
52
- from zenml.integrations.neptune import NeptuneIntegration # noqa
53
- from zenml.integrations.neural_prophet import NeuralProphetIntegration # noqa
54
- from zenml.integrations.numpy import NumpyIntegration # noqa
55
- from zenml.integrations.openai import OpenAIIntegration # noqa
56
- from zenml.integrations.pandas import PandasIntegration # noqa
57
- from zenml.integrations.pigeon import PigeonIntegration # noqa
58
- from zenml.integrations.pillow import PillowIntegration # noqa
59
- from zenml.integrations.polars import PolarsIntegration # noqa
60
- from zenml.integrations.prodigy import ProdigyIntegration # noqa
61
- from zenml.integrations.pycaret import PyCaretIntegration # noqa
62
- from zenml.integrations.pytorch import PytorchIntegration # noqa
63
- from zenml.integrations.pytorch_lightning import ( # noqa
64
- PytorchLightningIntegration,
65
- )
66
- from zenml.integrations.s3 import S3Integration # noqa
67
- from zenml.integrations.scipy import ScipyIntegration # noqa
68
- from zenml.integrations.seldon import SeldonIntegration # noqa
69
- from zenml.integrations.sklearn import SklearnIntegration # noqa
70
- from zenml.integrations.skypilot_aws import SkypilotAWSIntegration # noqa
71
- from zenml.integrations.skypilot_gcp import SkypilotGCPIntegration # noqa
72
- from zenml.integrations.skypilot_azure import SkypilotAzureIntegration # noqa
73
- from zenml.integrations.skypilot_lambda import SkypilotLambdaIntegration # noqa
74
- from zenml.integrations.skypilot_kubernetes import SkypilotKubernetesIntegration # noqa
75
- from zenml.integrations.slack import SlackIntegration # noqa
76
- from zenml.integrations.spark import SparkIntegration # noqa
77
- from zenml.integrations.tekton import TektonIntegration # noqa
78
- from zenml.integrations.tensorboard import TensorBoardIntegration # noqa
79
- from zenml.integrations.tensorflow import TensorflowIntegration # noqa
80
- from zenml.integrations.wandb import WandbIntegration # noqa
81
- from zenml.integrations.whylogs import WhylogsIntegration # noqa
82
- from zenml.integrations.xgboost import XgboostIntegration # noqa
83
- from zenml.integrations.vllm import VLLMIntegration # noqa
@@ -223,45 +223,52 @@ class KubernetesOrchestrator(ContainerizedOrchestrator):
223
223
  msg = f"'{self.name}' Kubernetes orchestrator error: "
224
224
 
225
225
  if not self.connector:
226
- if not kubernetes_context:
226
+ if kubernetes_context:
227
+ contexts, active_context = self.get_kubernetes_contexts()
228
+
229
+ if kubernetes_context not in contexts:
230
+ return False, (
231
+ f"{msg}could not find a Kubernetes context named "
232
+ f"'{kubernetes_context}' in the local "
233
+ "Kubernetes configuration. Please make sure that "
234
+ "the Kubernetes cluster is running and that the "
235
+ "kubeconfig file is configured correctly. To list "
236
+ "all configured contexts, run:\n\n"
237
+ " `kubectl config get-contexts`\n"
238
+ )
239
+ if kubernetes_context != active_context:
240
+ logger.warning(
241
+ f"{msg}the Kubernetes context "
242
+ f"'{kubernetes_context}' configured for the "
243
+ f"Kubernetes orchestrator is not the same as the "
244
+ f"active context in the local Kubernetes "
245
+ f"configuration. If this is not deliberate, you "
246
+ f"should update the orchestrator's "
247
+ f"`kubernetes_context` field by running:\n\n"
248
+ f" `zenml orchestrator update {self.name} "
249
+ f"--kubernetes_context={active_context}`\n"
250
+ f"To list all configured contexts, run:\n\n"
251
+ f" `kubectl config get-contexts`\n"
252
+ f"To set the active context to be the same as the "
253
+ f"one configured in the Kubernetes orchestrator "
254
+ f"and silence this warning, run:\n\n"
255
+ f" `kubectl config use-context "
256
+ f"{kubernetes_context}`\n"
257
+ )
258
+ elif self.config.incluster:
259
+ # No service connector or kubernetes_context is needed when
260
+ # the orchestrator is being used from within a Kubernetes
261
+ # cluster.
262
+ pass
263
+ else:
227
264
  return False, (
228
- f"{msg}you must either link this stack component to a "
265
+ f"{msg}you must either link this orchestrator to a "
229
266
  "Kubernetes service connector (see the 'zenml "
230
- "orchestrator connect' CLI command) or explicitly set "
267
+ "orchestrator connect' CLI command), explicitly set "
231
268
  "the `kubernetes_context` attribute to the name of the "
232
269
  "Kubernetes config context pointing to the cluster "
233
- "where you would like to run pipelines."
234
- )
235
-
236
- contexts, active_context = self.get_kubernetes_contexts()
237
-
238
- if kubernetes_context not in contexts:
239
- return False, (
240
- f"{msg}could not find a Kubernetes context named "
241
- f"'{kubernetes_context}' in the local "
242
- "Kubernetes configuration. Please make sure that the "
243
- "Kubernetes cluster is running and that the kubeconfig "
244
- "file is configured correctly. To list all configured "
245
- "contexts, run:\n\n"
246
- " `kubectl config get-contexts`\n"
247
- )
248
- if kubernetes_context != active_context:
249
- logger.warning(
250
- f"{msg}the Kubernetes context '{kubernetes_context}' " # nosec
251
- f"configured for the Kubernetes orchestrator is not "
252
- f"the same as the active context in the local "
253
- f"Kubernetes configuration. If this is not deliberate,"
254
- f" you should update the orchestrator's "
255
- f"`kubernetes_context` field by running:\n\n"
256
- f" `zenml orchestrator update {self.name} "
257
- f"--kubernetes_context={active_context}`\n"
258
- f"To list all configured contexts, run:\n\n"
259
- f" `kubectl config get-contexts`\n"
260
- f"To set the active context to be the same as the one "
261
- f"configured in the Kubernetes orchestrator and "
262
- f"silence this warning, run:\n\n"
263
- f" `kubectl config use-context "
264
- f"{kubernetes_context}`\n"
270
+ "where you would like to run pipelines, or set the "
271
+ "`incluster` attribute to `True`."
265
272
  )
266
273
 
267
274
  silence_local_validations_msg = (
@@ -13,6 +13,8 @@
13
13
  # permissions and limitations under the License.
14
14
  """Implementation of a registry to track ZenML integrations."""
15
15
 
16
+ import importlib
17
+ import os
16
18
  from typing import TYPE_CHECKING, Any, Dict, List, Optional, Type
17
19
 
18
20
  from zenml.exceptions import IntegrationError
@@ -30,6 +32,7 @@ class IntegrationRegistry(object):
30
32
  def __init__(self) -> None:
31
33
  """Initializing the integration registry."""
32
34
  self._integrations: Dict[str, Type["Integration"]] = {}
35
+ self._initialized = False
33
36
 
34
37
  @property
35
38
  def integrations(self) -> Dict[str, Type["Integration"]]:
@@ -38,6 +41,7 @@ class IntegrationRegistry(object):
38
41
  Returns:
39
42
  A dict of integration key to type of `Integration`.
40
43
  """
44
+ self._initialize()
41
45
  return self._integrations
42
46
 
43
47
  @integrations.setter
@@ -68,8 +72,33 @@ class IntegrationRegistry(object):
68
72
  """
69
73
  self._integrations[key] = type_
70
74
 
75
+ def _initialize(self) -> None:
76
+ """Method to register all integrations."""
77
+ if self._initialized:
78
+ return
79
+ self._initialized = True
80
+
81
+ # Load all submodules in the integrations module
82
+ integrations_dir = os.path.dirname(__file__)
83
+ for file in os.listdir(integrations_dir):
84
+ full_path = os.path.join(integrations_dir, file)
85
+ # Skip anything that isn't a directory
86
+ if not os.path.isdir(full_path):
87
+ continue
88
+ # Skip anything that doesn't have a __init__.py file
89
+ if not os.path.exists(os.path.join(full_path, "__init__.py")):
90
+ continue
91
+ # Import the module
92
+ module_path = f"zenml.integrations.{file}"
93
+ try:
94
+ importlib.import_module(module_path)
95
+ except ImportError:
96
+ logger.exception(f"Failed to import module `{module_path}`.")
97
+ continue
98
+
71
99
  def activate_integrations(self) -> None:
72
100
  """Method to activate the integrations with are registered in the registry."""
101
+ self._initialize()
73
102
  for name, integration in self._integrations.items():
74
103
  if integration.check_installation():
75
104
  logger.debug(f"Activating integration `{name}`...")
@@ -85,6 +114,7 @@ class IntegrationRegistry(object):
85
114
  Returns:
86
115
  A list of all possible integrations.
87
116
  """
117
+ self._initialize()
88
118
  return [name for name in self._integrations]
89
119
 
90
120
  def select_integration_requirements(
@@ -104,6 +134,7 @@ class IntegrationRegistry(object):
104
134
  Raises:
105
135
  KeyError: If the integration is not found.
106
136
  """
137
+ self._initialize()
107
138
  if integration_name:
108
139
  if integration_name in self.list_integration_names:
109
140
  return self._integrations[integration_name].get_requirements(
@@ -141,6 +172,7 @@ class IntegrationRegistry(object):
141
172
  Raises:
142
173
  KeyError: If the integration is not found.
143
174
  """
175
+ self._initialize()
144
176
  if integration_name:
145
177
  if integration_name in self.list_integration_names:
146
178
  return self._integrations[
@@ -173,6 +205,7 @@ class IntegrationRegistry(object):
173
205
  Raises:
174
206
  KeyError: If the integration is not found.
175
207
  """
208
+ self._initialize()
176
209
  if integration_name in self.list_integration_names:
177
210
  return self._integrations[integration_name].check_installation()
178
211
  elif not integration_name:
@@ -194,6 +227,7 @@ class IntegrationRegistry(object):
194
227
  Returns:
195
228
  List of installed integrations.
196
229
  """
230
+ self._initialize()
197
231
  return [
198
232
  name
199
233
  for name, integration in integration_registry.integrations.items()
@@ -17,6 +17,10 @@ from typing import ClassVar, Dict, List, Optional
17
17
 
18
18
  from zenml.enums import StackDeploymentProvider
19
19
  from zenml.models import StackDeploymentConfig
20
+ from zenml.stack_deployments.constants import (
21
+ TERRAFORM_AWS_MODULE_VERSION_SPEC,
22
+ TERRAFORM_PROVIDER_VERSION_SPEC,
23
+ )
20
24
  from zenml.stack_deployments.stack_deployment import (
21
25
  STACK_DEPLOYMENT_TERRAFORM,
22
26
  ZenMLCloudStackDeployment,
@@ -203,10 +207,6 @@ console.
203
207
  # Based on the AWS regions listed at
204
208
  # https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
205
209
  return {
206
- "US East (Ohio)": "us-east-2",
207
- "US East (N. Virginia)": "us-east-1",
208
- "US West (N. California)": "us-west-1",
209
- "US West (Oregon)": "us-west-2",
210
210
  "Africa (Cape Town)": "af-south-1",
211
211
  "Asia Pacific (Hong Kong)": "ap-east-1",
212
212
  "Asia Pacific (Hyderabad)": "ap-south-2",
@@ -232,6 +232,10 @@ console.
232
232
  "Middle East (Bahrain)": "me-south-1",
233
233
  "Middle East (UAE)": "me-central-1",
234
234
  "South America (São Paulo)": "sa-east-1",
235
+ "US East (Ohio)": "us-east-2",
236
+ "US East (N. Virginia)": "us-east-1",
237
+ "US West (N. California)": "us-west-1",
238
+ "US West (Oregon)": "us-west-2",
235
239
  }
236
240
 
237
241
  def get_deployment_config(
@@ -287,6 +291,7 @@ console.
287
291
  }}
288
292
  zenml = {{
289
293
  source = "zenml-io/zenml"
294
+ version = "{TERRAFORM_PROVIDER_VERSION_SPEC}"
290
295
  }}
291
296
  }}
292
297
  }}
@@ -302,7 +307,7 @@ provider "zenml" {{
302
307
 
303
308
  module "zenml_stack" {{
304
309
  source = "zenml-io/zenml-stack/aws"
305
-
310
+ version = "{TERRAFORM_AWS_MODULE_VERSION_SPEC}"
306
311
  zenml_stack_name = "{self.stack_name}"
307
312
  zenml_stack_deployment = "{self.deployment_type}"
308
313
  }}
@@ -18,6 +18,10 @@ from typing import ClassVar, Dict, List
18
18
 
19
19
  from zenml.enums import StackDeploymentProvider
20
20
  from zenml.models import StackDeploymentConfig
21
+ from zenml.stack_deployments.constants import (
22
+ TERRAFORM_AZURE_MODULE_VERSION_SPEC,
23
+ TERRAFORM_PROVIDER_VERSION_SPEC,
24
+ )
21
25
  from zenml.stack_deployments.stack_deployment import ZenMLCloudStackDeployment
22
26
 
23
27
  AZURE_DEPLOYMENT_TYPE = "azure-cloud-shell"
@@ -156,70 +160,70 @@ ZenML's access to your Azure subscription.
156
160
  """
157
161
  # Based on `az account list-locations -o table` on 16.07.2024
158
162
  return {
159
- "(US) East US": "eastus",
160
- "(US) South Central US": "southcentralus",
161
- "(US) West US 2": "westus2",
162
- "(US) West US 3": "westus3",
163
- "(Asia Pacific) Australia East": "australiaeast",
164
- "(Asia Pacific) Southeast Asia": "southeastasia",
165
- "(Europe) North Europe": "northeurope",
166
- "(Europe) Sweden Central": "swedencentral",
167
- "(Europe) UK South": "uksouth",
168
- "(Europe) West Europe": "westeurope",
169
- "(US) Central US": "centralus",
170
163
  "(Africa) South Africa North": "southafricanorth",
164
+ "(Africa) South Africa West": "southafricawest",
165
+ "(Asia Pacific) Australia Central": "australiacentral",
166
+ "(Asia Pacific) Australia Central 2": "australiacentral2",
167
+ "(Asia Pacific) Australia East": "australiaeast",
168
+ "(Asia Pacific) Australia Southeast": "australiasoutheast",
171
169
  "(Asia Pacific) Central India": "centralindia",
172
170
  "(Asia Pacific) East Asia": "eastasia",
171
+ "(Asia Pacific) East Asia (Stage)": "eastasiastage",
173
172
  "(Asia Pacific) Japan East": "japaneast",
173
+ "(Asia Pacific) Japan West": "japanwest",
174
+ "(Asia Pacific) Jio India Central": "jioindiacentral",
175
+ "(Asia Pacific) Jio India West": "jioindiawest",
174
176
  "(Asia Pacific) Korea Central": "koreacentral",
177
+ "(Asia Pacific) Korea South": "koreasouth",
178
+ "(Asia Pacific) South India": "southindia",
179
+ "(Asia Pacific) Southeast Asia": "southeastasia",
180
+ "(Asia Pacific) Southeast Asia (Stage)": "southeastasiastage",
181
+ "(Asia Pacific) West India": "westindia",
175
182
  "(Canada) Canada Central": "canadacentral",
183
+ "(Canada) Canada East": "canadaeast",
176
184
  "(Europe) France Central": "francecentral",
185
+ "(Europe) France South": "francesouth",
186
+ "(Europe) Germany North": "germanynorth",
177
187
  "(Europe) Germany West Central": "germanywestcentral",
178
188
  "(Europe) Italy North": "italynorth",
189
+ "(Europe) North Europe": "northeurope",
179
190
  "(Europe) Norway East": "norwayeast",
191
+ "(Europe) Norway West": "norwaywest",
180
192
  "(Europe) Poland Central": "polandcentral",
181
193
  "(Europe) Spain Central": "spaincentral",
194
+ "(Europe) Sweden Central": "swedencentral",
182
195
  "(Europe) Switzerland North": "switzerlandnorth",
196
+ "(Europe) Switzerland West": "switzerlandwest",
197
+ "(Europe) UK South": "uksouth",
198
+ "(Europe) UK West": "ukwest",
199
+ "(Europe) West Europe": "westeurope",
183
200
  "(Mexico) Mexico Central": "mexicocentral",
184
- "(Middle East) UAE North": "uaenorth",
185
- "(South America) Brazil South": "brazilsouth",
186
201
  "(Middle East) Israel Central": "israelcentral",
187
202
  "(Middle East) Qatar Central": "qatarcentral",
203
+ "(Middle East) UAE Central": "uaecentral",
204
+ "(Middle East) UAE North": "uaenorth",
205
+ "(South America) Brazil South": "brazilsouth",
206
+ "(South America) Brazil Southeast": "brazilsoutheast",
207
+ "(South America) Brazil US": "brazilus",
208
+ "(US) Central US": "centralus",
188
209
  "(US) Central US (Stage)": "centralusstage",
210
+ "(US) Central US EUAP": "centraluseuap",
211
+ "(US) East US": "eastus",
189
212
  "(US) East US (Stage)": "eastusstage",
213
+ "(US) East US 2": "eastus2",
190
214
  "(US) East US 2 (Stage)": "eastus2stage",
215
+ "(US) East US 2 EUAP": "eastus2euap",
216
+ "(US) East US STG": "eastusstg",
217
+ "(US) North Central US": "northcentralus",
191
218
  "(US) North Central US (Stage)": "northcentralusstage",
219
+ "(US) South Central US": "southcentralus",
192
220
  "(US) South Central US (Stage)": "southcentralusstage",
221
+ "(US) West Central US": "westcentralus",
222
+ "(US) West US": "westus",
193
223
  "(US) West US (Stage)": "westusstage",
224
+ "(US) West US 2": "westus2",
194
225
  "(US) West US 2 (Stage)": "westus2stage",
195
- "(Asia Pacific) East Asia (Stage)": "eastasiastage",
196
- "(Asia Pacific) Southeast Asia (Stage)": "southeastasiastage",
197
- "(South America) Brazil US": "brazilus",
198
- "(US) East US 2": "eastus2",
199
- "(US) East US STG": "eastusstg",
200
- "(US) North Central US": "northcentralus",
201
- "(US) West US": "westus",
202
- "(Asia Pacific) Japan West": "japanwest",
203
- "(Asia Pacific) Jio India West": "jioindiawest",
204
- "(US) Central US EUAP": "centraluseuap",
205
- "(US) East US 2 EUAP": "eastus2euap",
206
- "(US) West Central US": "westcentralus",
207
- "(Africa) South Africa West": "southafricawest",
208
- "(Asia Pacific) Australia Central": "australiacentral",
209
- "(Asia Pacific) Australia Central 2": "australiacentral2",
210
- "(Asia Pacific) Australia Southeast": "australiasoutheast",
211
- "(Asia Pacific) Jio India Central": "jioindiacentral",
212
- "(Asia Pacific) Korea South": "koreasouth",
213
- "(Asia Pacific) South India": "southindia",
214
- "(Asia Pacific) West India": "westindia",
215
- "(Canada) Canada East": "canadaeast",
216
- "(Europe) France South": "francesouth",
217
- "(Europe) Germany North": "germanynorth",
218
- "(Europe) Norway West": "norwaywest",
219
- "(Europe) Switzerland West": "switzerlandwest",
220
- "(Europe) UK West": "ukwest",
221
- "(Middle East) UAE Central": "uaecentral",
222
- "(South America) Brazil Southeast": "brazilsoutheast",
226
+ "(US) West US 3": "westus3",
223
227
  }
224
228
 
225
229
  @classmethod
@@ -269,6 +273,7 @@ ZenML's access to your Azure subscription.
269
273
  }}
270
274
  zenml = {{
271
275
  source = "zenml-io/zenml"
276
+ version = "{TERRAFORM_PROVIDER_VERSION_SPEC}"
272
277
  }}
273
278
  }}
274
279
  }}
@@ -288,6 +293,7 @@ provider "zenml" {{
288
293
 
289
294
  module "zenml_stack" {{
290
295
  source = "zenml-io/zenml-stack/azure"
296
+ version = "{TERRAFORM_AZURE_MODULE_VERSION_SPEC}"
291
297
 
292
298
  location = "{self.location or "eastus"}"
293
299
  zenml_stack_name = "{self.stack_name}"
@@ -0,0 +1,30 @@
1
+ # Copyright (c) ZenML GmbH 2025. All Rights Reserved.
2
+
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at:
6
+
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12
+ # or implied. See the License for the specific language governing
13
+ # permissions and limitations under the License.
14
+ """Constants for the stack deployments."""
15
+
16
+ # The ZenML Terraform provider compatible versions
17
+ # (>= 2.0.0, < 3.0.0)
18
+ TERRAFORM_PROVIDER_VERSION_SPEC = "~> 2.0"
19
+
20
+ # The ZenML AWS Terraform module compatible versions
21
+ # (>= 2.0.0, < 3.0.0)
22
+ TERRAFORM_AWS_MODULE_VERSION_SPEC = "~> 2.0"
23
+
24
+ # The ZenML GCP Terraform module compatible versions
25
+ # (>= 2.0.0, < 3.0.0)
26
+ TERRAFORM_GCP_MODULE_VERSION_SPEC = "~> 2.0"
27
+
28
+ # The ZenML Azure Terraform module compatible versions
29
+ # (>= 2.0.0, < 3.0.0)
30
+ TERRAFORM_AZURE_MODULE_VERSION_SPEC = "~> 2.0"
@@ -18,6 +18,10 @@ from typing import ClassVar, Dict, List
18
18
 
19
19
  from zenml.enums import StackDeploymentProvider
20
20
  from zenml.models import StackDeploymentConfig
21
+ from zenml.stack_deployments.constants import (
22
+ TERRAFORM_GCP_MODULE_VERSION_SPEC,
23
+ TERRAFORM_PROVIDER_VERSION_SPEC,
24
+ )
21
25
  from zenml.stack_deployments.stack_deployment import (
22
26
  STACK_DEPLOYMENT_TERRAFORM,
23
27
  ZenMLCloudStackDeployment,
@@ -267,6 +271,7 @@ GCP project and to clean up the resources created by the stack by using
267
271
  }}
268
272
  zenml = {{
269
273
  source = "zenml-io/zenml"
274
+ version = "{TERRAFORM_PROVIDER_VERSION_SPEC}"
270
275
  }}
271
276
  }}
272
277
  }}
@@ -283,6 +288,7 @@ provider "zenml" {{
283
288
 
284
289
  module "zenml_stack" {{
285
290
  source = "zenml-io/zenml-stack/gcp"
291
+ version = "{TERRAFORM_GCP_MODULE_VERSION_SPEC}"
286
292
 
287
293
  zenml_stack_name = "{self.stack_name}"
288
294
  zenml_stack_deployment = "{self.deployment_type}"
@@ -40,6 +40,7 @@ from zenml.zen_server.rbac.models import Action, ResourceType
40
40
  from zenml.zen_server.rbac.utils import verify_permission
41
41
  from zenml.zen_server.utils import (
42
42
  handle_exceptions,
43
+ server_config,
43
44
  )
44
45
 
45
46
  router = APIRouter(
@@ -105,10 +106,17 @@ def get_stack_deployment_config(
105
106
  verify_permission(resource_type=ResourceType.STACK, action=Action.CREATE)
106
107
 
107
108
  stack_deployment_class = get_stack_deployment_class(provider)
108
- # Get the base server URL used to call this FastAPI endpoint
109
- url = request.url.replace(path="").replace(query="")
110
- # Use HTTPS for the URL
111
- url = url.replace(scheme="https")
109
+
110
+ config = server_config()
111
+ if config.server_url:
112
+ url = config.server_url
113
+ else:
114
+ # Get the base server URL used to call this FastAPI endpoint
115
+ url = str(
116
+ request.url.replace(path="")
117
+ .replace(query="")
118
+ .replace(scheme="https")
119
+ )
112
120
 
113
121
  token = auth_context.access_token
114
122
  assert token is not None
@@ -1,7 +1,7 @@
1
1
  """make tags user scoped [288f4fb6e112].
2
2
 
3
3
  Revision ID: 288f4fb6e112
4
- Revises: 3b1776345020
4
+ Revises: 41b28cae31ce
5
5
  Create Date: 2025-02-19 15:16:42.954792
6
6
 
7
7
  """
@@ -13,7 +13,7 @@ from sqlalchemy.orm import Session
13
13
 
14
14
  # revision identifiers, used by Alembic.
15
15
  revision = "288f4fb6e112"
16
- down_revision = "3b1776345020"
16
+ down_revision = "41b28cae31ce"
17
17
  branch_labels = None
18
18
  depends_on = None
19
19
 
@@ -1,7 +1,7 @@
1
1
  """make artifacts workspace scoped [41b28cae31ce].
2
2
 
3
3
  Revision ID: 41b28cae31ce
4
- Revises: 288f4fb6e112
4
+ Revises: 3b1776345020
5
5
  Create Date: 2025-02-19 23:23:08.133826
6
6
 
7
7
  """
@@ -21,7 +21,7 @@ from zenml.constants import (
21
21
 
22
22
  # revision identifiers, used by Alembic.
23
23
  revision = "41b28cae31ce"
24
- down_revision = "288f4fb6e112"
24
+ down_revision = "3b1776345020"
25
25
  branch_labels = None
26
26
  depends_on = None
27
27
 
@@ -1,7 +1,7 @@
1
1
  """add secret private attr [f1d723fd723b].
2
2
 
3
3
  Revision ID: f1d723fd723b
4
- Revises: 41b28cae31ce
4
+ Revises: 288f4fb6e112
5
5
  Create Date: 2025-02-21 19:40:14.596681
6
6
 
7
7
  """
@@ -11,7 +11,7 @@ from alembic import op
11
11
 
12
12
  # revision identifiers, used by Alembic.
13
13
  revision = "f1d723fd723b"
14
- down_revision = "41b28cae31ce"
14
+ down_revision = "288f4fb6e112"
15
15
  branch_labels = None
16
16
  depends_on = None
17
17
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: zenml-nightly
3
- Version: 0.80.0.dev20250321
3
+ Version: 0.80.0.dev20250323
4
4
  Summary: ZenML: Write production-ready ML code.
5
5
  License: Apache-2.0
6
6
  Keywords: machine learning,production,pipeline,mlops,devops
@@ -54,7 +54,7 @@ Requires-Dist: azure-storage-blob (>=12.0.0) ; extra == "connectors-azure"
54
54
  Requires-Dist: bandit (>=1.7.5,<2.0.0) ; extra == "dev"
55
55
  Requires-Dist: bcrypt (==4.0.1)
56
56
  Requires-Dist: boto3 (>=1.16.0) ; extra == "secrets-aws" or extra == "connectors-aws"
57
- Requires-Dist: click (>=8.0.1,<8.1.4)
57
+ Requires-Dist: click (>=8.0.1,<8.1.8)
58
58
  Requires-Dist: cloudpickle (>=2.0.0,<3)
59
59
  Requires-Dist: copier (>=8.1.0) ; extra == "templates"
60
60
  Requires-Dist: coverage[toml] (>=5.5,<6.0) ; extra == "dev"
@@ -1,5 +1,5 @@
1
1
  zenml/README.md,sha256=827dekbOWAs1BpW7VF1a4d7EbwPbjwccX-2zdXBENZo,1777
2
- zenml/VERSION,sha256=5LDhSpVk32ZVZBJXFidQzteghDB8sdGv9NFuO89kAzI,19
2
+ zenml/VERSION,sha256=I-vNXpVTqJvqmBhyxz6qBJynqszwSZuoa2Tbyop_LAQ,19
3
3
  zenml/__init__.py,sha256=CKEyepFK-7akXYiMrNVh92Nb01Cjs23w4_YyI6sgdc8,2242
4
4
  zenml/actions/__init__.py,sha256=mrt6wPo73iKRxK754_NqsGyJ3buW7RnVeIGXr1xEw8Y,681
5
5
  zenml/actions/base_action.py,sha256=UcaHev6BTuLDwuswnyaPjdA8AgUqB5xPZ-lRtuvf2FU,25553
@@ -42,17 +42,17 @@ zenml/cli/login.py,sha256=-tPuTaWctRDkWZOcY4Af2uens6_oEWFkehl8ITeKFHk,38836
42
42
  zenml/cli/model.py,sha256=7lmeMLwD3BIWaw_P3WBFRe42Twfvb11K67p_xmvRWH0,22817
43
43
  zenml/cli/model_registry.py,sha256=zzxWXXFhKu2B1Wp0u7prKVnN1ftM-JdGdQwlD-5G-QM,20786
44
44
  zenml/cli/pipeline.py,sha256=Vlz1OgGb1Ep-4Ekgd-Wz5SmieWigfx56i8wA5BGl228,19222
45
- zenml/cli/project.py,sha256=_XEGi0xIhfSYHHc2mpSG0zQrrIvh8gHQzKBbmJmgXC8,5414
45
+ zenml/cli/project.py,sha256=7kqc-MaNr7gFbkl2NlAPwQ4jMipRX-TW_Eml5fQJqao,5417
46
46
  zenml/cli/secret.py,sha256=zwt07v0xoIf_dLf-qY5CFdbKepBEuwmXD2HIMcLe_xU,20164
47
47
  zenml/cli/served_model.py,sha256=3w1UcAbg6Geu37fr7ej1_81GBCt3fF7j3Ge799YE4Mc,14974
48
48
  zenml/cli/server.py,sha256=30DYWQI9cNQgRTXeX2ff23RAdQcb9kYmDAtUNfV0SoQ,26105
49
- zenml/cli/service_accounts.py,sha256=dLhoLBzLxh7p9W_KVUvI9TLo5Ol2owr-4nD5zIJjxW8,17760
50
- zenml/cli/service_connectors.py,sha256=n6szoJXZ0uVO3hTdgSzl87Ge5TRDjZN0fXhkSyni_cM,74329
51
- zenml/cli/stack.py,sha256=6GnDH0fQNpCdYP8tOAeEvAg_glDtnYNGC6fFq3xvcLE,67233
52
- zenml/cli/stack_components.py,sha256=zYbe9u6ExhQPV1ttsqYmv57z96fndK_S2bj9p0_C5dU,52960
49
+ zenml/cli/service_accounts.py,sha256=DkSrBroYvQ3zNDHVYbY9IxqmbN7f8wGsAmt0Wyjq1FE,17766
50
+ zenml/cli/service_connectors.py,sha256=ZGo1X3UwoHZ2BEFVev216Vfaf9wBEb0PKduwtX3mnk4,74332
51
+ zenml/cli/stack.py,sha256=J5FzZWOrn9RLoJ6WjsxDl75pcTrBMiPOJeQj_lNix6U,67236
52
+ zenml/cli/stack_components.py,sha256=QqakqWsvzgG7nOvQmvlbcfwDZUTsXI2pOlsOBXP5EXg,52963
53
53
  zenml/cli/tag.py,sha256=JiAoYyDDBBYj0ChT8zWY8KGjzAnJTNx-WLQrjLLEyik,4802
54
54
  zenml/cli/text_utils.py,sha256=bY1GIjoULt1cW2FyrPlMoAXNS2R7cSOjDFEZQqrpVQ8,3553
55
- zenml/cli/user_management.py,sha256=fTuRworQahst_j78qPYTtgciUeUOxwo7efiyPwmj2tI,13075
55
+ zenml/cli/user_management.py,sha256=sNnhaUxH-cHecbZBR1L0mEU0TnLNZHzI6ZBCUSQa7OY,13078
56
56
  zenml/cli/utils.py,sha256=6Bv2-gqkHC8DdUT4b_HL6pgGMErY8lwjuJb-eHgPTJA,86383
57
57
  zenml/cli/version.py,sha256=nm1iSU_1V6-MUwpMKeXcwFhLYGUMLswvQL67cEuCpxA,3635
58
58
  zenml/client.py,sha256=y_5faIEjAj0WeTG3NkNX4ayjFAWH2g1cNTFPnsji3PY,292150
@@ -123,7 +123,7 @@ zenml/image_builders/base_image_builder.py,sha256=yFmtn8Y6PdNxie3F51tbpMf8zBhNRn
123
123
  zenml/image_builders/build_context.py,sha256=k38xERo4IXU9KKM-Zi5A2HzIp1pUZeWnhCPuRPSjkEQ,5864
124
124
  zenml/image_builders/local_image_builder.py,sha256=R_zMpERtUCWLLDZg9kXuAQSWLtin1ve_rxpbUBiym7s,6448
125
125
  zenml/integrations/README.md,sha256=hFIZwjsAItHjvDWVBqGSF-ZAeMsFR2GKX1Axl2g1Bz0,6190
126
- zenml/integrations/__init__.py,sha256=GiLRzSCu1O9Jg5NSCRKVDWLIXtKuc90ozntqYjUHo08,4905
126
+ zenml/integrations/__init__.py,sha256=Bvi24aF0C2bnWGXH3zPAj4ZSFOg_eBWtZMhlgPn1Vzg,884
127
127
  zenml/integrations/airflow/__init__.py,sha256=KsEMqW2NpjgKNY_bHmfu2LtubXoSwdaE6SM8t4SBD6g,1442
128
128
  zenml/integrations/airflow/flavors/__init__.py,sha256=Y48mn5OxERPPaXDBd5CFAIn6yhLPsgN5ZMk26hLXiNM,800
129
129
  zenml/integrations/airflow/flavors/airflow_orchestrator_flavor.py,sha256=VfZQD2H-WwIgVD1Fi7uewdnkvRoSykY0YCfROFDadXg,6189
@@ -338,7 +338,7 @@ zenml/integrations/kubernetes/flavors/kubernetes_orchestrator_flavor.py,sha256=0
338
338
  zenml/integrations/kubernetes/flavors/kubernetes_step_operator_flavor.py,sha256=ILN-H4cl7z3i4ltb4UBs55wbtIo871b4ib28pYkQoyQ,5605
339
339
  zenml/integrations/kubernetes/orchestrators/__init__.py,sha256=TJID3OTieZBox36WpQpzD0jdVRA_aZVcs_bNtfXS8ik,811
340
340
  zenml/integrations/kubernetes/orchestrators/kube_utils.py,sha256=roAYEGTvjnjCERCbjnN2o4v6kL_2xKI-eFnhiRBs1oY,14759
341
- zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator.py,sha256=aYztkcO-0wgXFfar8B2CJeiEp-dgHyXzIkGa3eeHZhk,24321
341
+ zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator.py,sha256=sahuh1is5zj642F0QEHta3-WZQWBc3EEMCusnV7RK2U,24801
342
342
  zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator_entrypoint.py,sha256=T8r6k9sRBl_0PvsiG-k56gT9uG9VB4YxYrIoiGQZ4IM,7721
343
343
  zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator_entrypoint_configuration.py,sha256=Y7uGU8eksMluGyXYsf688CwpiXwI_W6WYLscYwRZXRY,2494
344
344
  zenml/integrations/kubernetes/orchestrators/manifest_utils.py,sha256=Owyuz5Iix-QvCnKObC6xhcuQtNG_ik-8Vbdmk13eWfc,12557
@@ -448,7 +448,7 @@ zenml/integrations/pytorch/utils.py,sha256=IbJTsMb5zYcGlxZj0xKIFQuPHdnizWMd_zmeM
448
448
  zenml/integrations/pytorch_lightning/__init__.py,sha256=dgbBAEaMiXi1MIZcF58aG3vCd4aj_1hYLD-WuvMBytM,1127
449
449
  zenml/integrations/pytorch_lightning/materializers/__init__.py,sha256=zZsRri9X8YMJy4_h-8_Uss5RHjkFkd-RGF9zKnd713Q,814
450
450
  zenml/integrations/pytorch_lightning/materializers/pytorch_lightning_materializer.py,sha256=dmNXbGLAzbiaFEa2K9ctOiOoyuQ2GNVsDfgcvdV14Is,1245
451
- zenml/integrations/registry.py,sha256=L43KXOAW5vi736Ox7mJJgQN3lVrtbf0TwUHA-Gao31o,7164
451
+ zenml/integrations/registry.py,sha256=02WjPZVrTWdAKHUxEGDMVFud7IrJBDEVXdmWEh1GQBc,8383
452
452
  zenml/integrations/s3/__init__.py,sha256=UkZ4_-z-2yxW1SQjAJ0LvGLGIUrhjq16mhZ0PB6J2g8,2179
453
453
  zenml/integrations/s3/artifact_stores/__init__.py,sha256=xK8pbJIg66f7BXlJfyCKVRgxxD7KmdAxiuXGtFvenVQ,793
454
454
  zenml/integrations/s3/artifact_stores/s3_artifact_store.py,sha256=0KD2b2-Fi3w5I4tnVh2XnmczwIcsNIjkOHCWGRO3KZE,18059
@@ -739,9 +739,10 @@ zenml/stack/stack_component.py,sha256=cJlbzrjmYE_lTF-x3D3N_ewWr0pQjmojCow_sNOr8G
739
739
  zenml/stack/stack_validator.py,sha256=hWbvvGIeWLj6NwSsF4GCc6RAxAWvxHXTcBZL9nJvcak,3111
740
740
  zenml/stack/utils.py,sha256=qHMFi8SVMSDFeZTFO4KkvaLUbF-l3B0_JZ5SSMxYrwI,6406
741
741
  zenml/stack_deployments/__init__.py,sha256=-7593cQ_ZgRn774Ol-8AKXXQquIU4DSiaThVEr6TfWM,644
742
- zenml/stack_deployments/aws_stack_deployment.py,sha256=FnkiSwSMiM9O8KVTQmGfIKjsp5RkOiO-AbOsr7cd3zE,12358
743
- zenml/stack_deployments/azure_stack_deployment.py,sha256=E0PhlmC_2Urf_7k1U7EoOHU21CbhY_3jZG0wXO1NcWI,13032
744
- zenml/stack_deployments/gcp_stack_deployment.py,sha256=RD9Z0cZicZexUyK2YE0855LHu_VGOrLUnzy-QnrBRnA,12596
742
+ zenml/stack_deployments/aws_stack_deployment.py,sha256=-73_jUDq4A3Q1b6g5GcZBKpn0-gCgF-mcaa30LN_5GI,12593
743
+ zenml/stack_deployments/azure_stack_deployment.py,sha256=kuZHCUNYSSxKThmK85HYGjmT8W-UdD09sUQN5c9fvTM,13272
744
+ zenml/stack_deployments/constants.py,sha256=v91BOyOMQ7v4STEv9F1zmzn1ul008dbBJSmnLdDc4H0,1137
745
+ zenml/stack_deployments/gcp_stack_deployment.py,sha256=HUF4IVfCWA8p6SqM7JtfbXiLitzNcwNNOC0LlUjzFy0,12832
745
746
  zenml/stack_deployments/stack_deployment.py,sha256=4032l7r1llIux_J0PGwgLP346P1tAe4ExaHZwCX2-YU,7743
746
747
  zenml/stack_deployments/utils.py,sha256=4rU0JM6wAmSLLlH7f9xk3g3EsacMHQYDTgN1OvU9pRs,1738
747
748
  zenml/step_operators/__init__.py,sha256=tqj7fgnQyZubLjwUu4ITwkA-70KMQz4g37agbfF7ZgE,1228
@@ -1049,7 +1050,7 @@ zenml/zen_server/routers/service_accounts_endpoints.py,sha256=egShMu776yf0jmoMLm
1049
1050
  zenml/zen_server/routers/service_connectors_endpoints.py,sha256=lM3kJ14P1EhINqYdcoomK12amDRCwpTwlyxRb3F2-ZY,17401
1050
1051
  zenml/zen_server/routers/service_endpoints.py,sha256=VmcmTXXkW2K6-_WC-Te8679Dr5uY0nsbIQUapUvrUfc,5488
1051
1052
  zenml/zen_server/routers/stack_components_endpoints.py,sha256=8g8CA88uxOnWDMN4tZgZpSzkyThfDEhJiyJB16bjb9A,8143
1052
- zenml/zen_server/routers/stack_deployment_endpoints.py,sha256=e7J3ZAlrg_8BKZ7tjYaIazXbFtgU-qB-KoeQ1tm4rYQ,5193
1053
+ zenml/zen_server/routers/stack_deployment_endpoints.py,sha256=dzSGkX8bnQAhdS5cfjN6dyklCporIo6cun0B4evEnII,5329
1053
1054
  zenml/zen_server/routers/stacks_endpoints.py,sha256=iF9SANF2JCdl4YCrL0PpIG8LzoGO8C5-A1UnOZyBXwc,7449
1054
1055
  zenml/zen_server/routers/steps_endpoints.py,sha256=By-9_VKrJeSo6UUqrggDhGKtrnhxiElORK_T-Ngn-OM,8135
1055
1056
  zenml/zen_server/routers/tag_resource_endpoints.py,sha256=AdmbujrwKK6arnSx2VHpJWbZXnlviGlay7LCov4x9Fc,3203
@@ -1177,7 +1178,7 @@ zenml/zen_stores/migrations/versions/248dfd320b68_update_size_of_flavor_config_s
1177
1178
  zenml/zen_stores/migrations/versions/25155145c545_separate_actions_and_triggers.py,sha256=T1A3e0YAtSIdGFmJUjUSfp6f8v82T91XHT-kziui4N4,7588
1178
1179
  zenml/zen_stores/migrations/versions/26351d482b9e_add_step_run_unique_constraint.py,sha256=8R2Zhgjig13c8kqbW14pRcA_sgjE65j2UTitlAqK-mg,1075
1179
1180
  zenml/zen_stores/migrations/versions/26b776ad583e_redesign_artifacts.py,sha256=X4o8IIdtVIKIVziETnJIKlEeBLioTrnkjv7yKd9uybc,6250
1180
- zenml/zen_stores/migrations/versions/288f4fb6e112_make_tags_user_scoped.py,sha256=Pn6gy7ALRUCXhiSEPDcS4tArNf0CvxvtDTYYfpuGawc,2065
1181
+ zenml/zen_stores/migrations/versions/288f4fb6e112_make_tags_user_scoped.py,sha256=z6vjIRWN0NhphSPDj94jXkLo3WZcL6UeOEePG3ol22w,2065
1181
1182
  zenml/zen_stores/migrations/versions/2d201872e23c_remove_db_dependency_loop.py,sha256=8dP2C7yTnHlEWYzcuFpcC2bWf_CCMeinPIwsWSbLXjg,727
1182
1183
  zenml/zen_stores/migrations/versions/2e695a26fe7a_add_user_default_workspace.py,sha256=b7Xgr09iKWFQdFx09OI24a5g2WmfbNF5ox28U6mwn7s,1253
1183
1184
  zenml/zen_stores/migrations/versions/37835ce041d2_optimizing_database.py,sha256=lHh9USrLJeb0gIWDCmusYUrk-gGwRm-75K-QIDCoewY,9140
@@ -1187,7 +1188,7 @@ zenml/zen_stores/migrations/versions/3b1776345020_remove_workspace_from_globals.
1187
1188
  zenml/zen_stores/migrations/versions/3b68abe58f44_add_model_watchtower_entities.py,sha256=b4d8-L2NwuuBrKHKSBjLqPk7eHlzDlSCPkBGQ0TEd8U,7658
1188
1189
  zenml/zen_stores/migrations/versions/3c5a367730c2_add_environment_info_to_runs.py,sha256=oswAntOI6qYTJX3VMF0soAvoPLVAiiffdaRSI8AB6hA,1199
1189
1190
  zenml/zen_stores/migrations/versions/3dcc5d20e82f_add_last_user_activity.py,sha256=MpPFB-Ri7Dw7QbwrafH4rTvcXjJdI-t8HBLAw0jaBC4,1395
1190
- zenml/zen_stores/migrations/versions/41b28cae31ce_make_artifacts_workspace_scoped.py,sha256=z1J0qCPQaJ7YhlK9HzAPyrA9tTjzk95YyOJQ7dhS8Fw,3984
1191
+ zenml/zen_stores/migrations/versions/41b28cae31ce_make_artifacts_workspace_scoped.py,sha256=QtToqRSBn69NzEb99j20Hdqewz3sbnU3C9uF7neE6nA,3984
1191
1192
  zenml/zen_stores/migrations/versions/43a86093b60e_add_labels_for_stack_components.py,sha256=8a_Aikd4O3YqVWm2-ejZ4Q-BkWGVxAk8-0M3j3gTK9g,1019
1192
1193
  zenml/zen_stores/migrations/versions/46506f72f0ed_add_server_settings.py,sha256=yDkK-9dXJ3ufgoG2BdEvac8oJC5YUgGKQVnrmT96h-4,3816
1193
1194
  zenml/zen_stores/migrations/versions/479103df60b6_add_triggers.py,sha256=g5hic8at_cYdTE6DwGoMjZGY1mQVNJWyz9huQ86fH9E,5702
@@ -1256,7 +1257,7 @@ zenml/zen_stores/migrations/versions/e5225281b4d3_add_connector_skew_tolerance.p
1256
1257
  zenml/zen_stores/migrations/versions/e65aa6708ff7_pipeline_versioning.py,sha256=cMkVeKzDZZbwJbmYL3_yg_9NUSdSEcuxEZ-aqjrrbOk,1817
1257
1258
  zenml/zen_stores/migrations/versions/ec0d785ca296_create_run_metadata_table.py,sha256=kFPcy5ePTiCzFpP34KkcrrdP7p0wjXg-8LsOAm-K-UU,3639
1258
1259
  zenml/zen_stores/migrations/versions/ec6307720f92_simplify_model_version_links.py,sha256=QfEpo7QtXv87Hp17vfNFfErIHFtxesBRrzrDw92jGp4,3710
1259
- zenml/zen_stores/migrations/versions/f1d723fd723b_add_secret_private_attr.py,sha256=WZtKGzfu7fBUhaYF51qVLoyyXd2r7M1Ik7e0x3ZuB8Y,1982
1260
+ zenml/zen_stores/migrations/versions/f1d723fd723b_add_secret_private_attr.py,sha256=OIrFjJHApYqBQEyBM3BazvtDxaEW8OaLPq47E9JjWSo,1982
1260
1261
  zenml/zen_stores/migrations/versions/f3b3964e3a0f_add_oauth_devices.py,sha256=2CR4R-7Vx6j_AXxo-e5Guy6OX-ZnS47HSKSGfqlO-y0,3065
1261
1262
  zenml/zen_stores/migrations/versions/f49904a80aa7_increase_length_of_artifact_table_sources.py,sha256=kLgfDUnQdAb5_SyFx3VKXDLC0YbuBKf9iXRDNeBin7Q,1618
1262
1263
  zenml/zen_stores/migrations/versions/f76a368a25a5_add_stack_description.py,sha256=u8fRomaasFeGhxvM2zU-Ab-AEpVsWm5zRcixxKFXdRw,904
@@ -1307,8 +1308,8 @@ zenml/zen_stores/secrets_stores/sql_secrets_store.py,sha256=nEO0bAPlULBLxLVk-UTR
1307
1308
  zenml/zen_stores/sql_zen_store.py,sha256=RmcpUHnSlPOMLNZ9StPxi_9FPqB1HgfiK_Humst9sns,440431
1308
1309
  zenml/zen_stores/template_utils.py,sha256=GWBP5QEOyvhzndS_MLPmvh28sQaOPpPoZFXCIX9CRL4,9065
1309
1310
  zenml/zen_stores/zen_store_interface.py,sha256=fF_uL_FplnvGvM5o3jOQ8i1zHXhuhKLL2n4nvIKSR7E,92090
1310
- zenml_nightly-0.80.0.dev20250321.dist-info/LICENSE,sha256=wbnfEnXnafPbqwANHkV6LUsPKOtdpsd-SNw37rogLtc,11359
1311
- zenml_nightly-0.80.0.dev20250321.dist-info/METADATA,sha256=EOpAs7r-16Rwb_Ox9Nry60M9YyokcgEDGov7zAvLz3s,24215
1312
- zenml_nightly-0.80.0.dev20250321.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
1313
- zenml_nightly-0.80.0.dev20250321.dist-info/entry_points.txt,sha256=QK3ETQE0YswAM2mWypNMOv8TLtr7EjnqAFq1br_jEFE,43
1314
- zenml_nightly-0.80.0.dev20250321.dist-info/RECORD,,
1311
+ zenml_nightly-0.80.0.dev20250323.dist-info/LICENSE,sha256=wbnfEnXnafPbqwANHkV6LUsPKOtdpsd-SNw37rogLtc,11359
1312
+ zenml_nightly-0.80.0.dev20250323.dist-info/METADATA,sha256=o0pXpFLQ3MUlnaj-TOCaA6j5hGYQs2Vxb_UWJv-NV7w,24215
1313
+ zenml_nightly-0.80.0.dev20250323.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
1314
+ zenml_nightly-0.80.0.dev20250323.dist-info/entry_points.txt,sha256=QK3ETQE0YswAM2mWypNMOv8TLtr7EjnqAFq1br_jEFE,43
1315
+ zenml_nightly-0.80.0.dev20250323.dist-info/RECORD,,