zenml-nightly 0.74.0.dev20250224__py3-none-any.whl → 0.74.0.dev20250225__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.74.0.dev20250224
1
+ 0.74.0.dev20250225
@@ -71,6 +71,7 @@ class SagemakerOrchestratorSettings(BaseSettings):
71
71
  For processor_args.instance_type, check
72
72
  https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks-available-instance-types.html
73
73
  for a list of available instance types.
74
+ environment: Environment variables to pass to the container.
74
75
  estimator_args: Arguments that are directly passed to the SageMaker
75
76
  Estimator for a specific step, allowing for overriding the default
76
77
  settings provided when configuring the component. See
@@ -116,6 +117,7 @@ class SagemakerOrchestratorSettings(BaseSettings):
116
117
 
117
118
  processor_args: Dict[str, Any] = {}
118
119
  estimator_args: Dict[str, Any] = {}
120
+ environment: Dict[str, str] = {}
119
121
 
120
122
  input_data_s3_mode: str = "File"
121
123
  input_data_s3_uri: Optional[Union[str, Dict[str, str]]] = Field(
@@ -55,6 +55,7 @@ class SagemakerStepOperatorSettings(BaseSettings):
55
55
  For estimator_args.instance_type, check
56
56
  https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks-available-instance-types.html
57
57
  for a list of available instance types.
58
+ environment: Environment variables to pass to the container.
58
59
 
59
60
  """
60
61
 
@@ -64,6 +65,7 @@ class SagemakerStepOperatorSettings(BaseSettings):
64
65
  default=None, union_mode="left_to_right"
65
66
  )
66
67
  estimator_args: Dict[str, Any] = {}
68
+ environment: Dict[str, str] = {}
67
69
 
68
70
  _deprecation_validator = deprecation_utils.deprecate_pydantic_attributes(
69
71
  "instance_type"
@@ -323,6 +323,19 @@ class SagemakerOrchestrator(ContainerizedOrchestrator):
323
323
  ExecutionVariables.PIPELINE_EXECUTION_ARN
324
324
  )
325
325
 
326
+ if step_settings.environment:
327
+ step_environment = step_settings.environment.copy()
328
+ # Sagemaker does not allow environment variables longer than 256
329
+ # characters to be passed to Processor steps. If an environment variable
330
+ # is longer than 256 characters, we split it into multiple environment
331
+ # variables (chunks) and re-construct it on the other side using the
332
+ # custom entrypoint configuration.
333
+ split_environment_variables(
334
+ size_limit=SAGEMAKER_PROCESSOR_STEP_ENV_VAR_SIZE_LIMIT,
335
+ env=step_environment,
336
+ )
337
+ environment.update(step_environment)
338
+
326
339
  use_training_step = (
327
340
  step_settings.use_training_step
328
341
  if step_settings.use_training_step is not None
@@ -457,6 +470,11 @@ class SagemakerOrchestrator(ContainerizedOrchestrator):
457
470
  )
458
471
  )
459
472
 
473
+ # Convert environment to a dict of strings
474
+ environment = {
475
+ key: str(value) for key, value in environment.items()
476
+ }
477
+
460
478
  if use_training_step:
461
479
  # Create Estimator and TrainingStep
462
480
  estimator = sagemaker.estimator.Estimator(
@@ -181,6 +181,11 @@ class SagemakerStepOperator(BaseStepOperator):
181
181
  self.name,
182
182
  )
183
183
 
184
+ settings = cast(SagemakerStepOperatorSettings, self.get_settings(info))
185
+
186
+ if settings.environment:
187
+ environment.update(settings.environment)
188
+
184
189
  # Sagemaker does not allow environment variables longer than 512
185
190
  # characters to be passed to Estimator steps. If an environment variable
186
191
  # is longer than 512 characters, we split it into multiple environment
@@ -194,8 +199,6 @@ class SagemakerStepOperator(BaseStepOperator):
194
199
  image_name = info.get_image(key=SAGEMAKER_DOCKER_IMAGE_KEY)
195
200
  environment[_ENTRYPOINT_ENV_VARIABLE] = " ".join(entrypoint_command)
196
201
 
197
- settings = cast(SagemakerStepOperatorSettings, self.get_settings(info))
198
-
199
202
  # Get and default fill SageMaker estimator arguments for full ZenML support
200
203
  estimator_args = settings.estimator_args
201
204
 
@@ -221,6 +224,9 @@ class SagemakerStepOperator(BaseStepOperator):
221
224
  "instance_type", settings.instance_type or "ml.m5.large"
222
225
  )
223
226
 
227
+ # Convert environment to a dict of strings
228
+ environment = {key: str(value) for key, value in environment.items()}
229
+
224
230
  estimator_args["environment"] = environment
225
231
  estimator_args["instance_count"] = 1
226
232
  estimator_args["sagemaker_session"] = session
@@ -86,7 +86,7 @@ class VertexOrchestratorConfig(
86
86
  then a subdirectory of the artifact store will be used.
87
87
  encryption_spec_key_name: The Cloud KMS resource identifier of the
88
88
  customer managed encryption key used to protect the job. Has the form:
89
- `projects/<PRJCT>/locations/<REGION>/keyRings/<KR>/cryptoKeys/<KEY>`
89
+ `projects/<PROJECT>/locations/<REGION>/keyRings/<KR>/cryptoKeys/<KEY>`
90
90
  . The key needs to be in the same region as where the compute
91
91
  resource is created.
92
92
  workload_service_account: the service account for workload run-as
@@ -124,13 +124,14 @@ class VertexOrchestratorConfig(
124
124
  pipeline_root: Optional[str] = None
125
125
  encryption_spec_key_name: Optional[str] = None
126
126
  workload_service_account: Optional[str] = None
127
- function_service_account: Optional[str] = None
128
- scheduler_service_account: Optional[str] = None
129
127
  network: Optional[str] = None
130
128
 
129
+ # Deprecated
131
130
  cpu_limit: Optional[str] = None
132
131
  memory_limit: Optional[str] = None
133
132
  gpu_limit: Optional[int] = None
133
+ function_service_account: Optional[str] = None
134
+ scheduler_service_account: Optional[str] = None
134
135
 
135
136
  _resource_deprecation = deprecation_utils.deprecate_pydantic_attributes(
136
137
  "cpu_limit",
@@ -986,6 +986,7 @@ class SqlZenStore(BaseZenStore):
986
986
  RuntimeError: if the schema does not have a `to_model` method.
987
987
  """
988
988
  query = filter_model.apply_filter(query=query, table=table)
989
+ query = filter_model.apply_sorting(query=query, table=table)
989
990
  query = query.distinct()
990
991
 
991
992
  # Get the total amount of items in the database for a given query
@@ -1005,9 +1006,6 @@ class SqlZenStore(BaseZenStore):
1005
1006
  else:
1006
1007
  total = 0
1007
1008
 
1008
- # Sorting
1009
- query = filter_model.apply_sorting(query=query, table=table)
1010
-
1011
1009
  # Get the total amount of pages in the database for a given query
1012
1010
  if total == 0:
1013
1011
  total_pages = 1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: zenml-nightly
3
- Version: 0.74.0.dev20250224
3
+ Version: 0.74.0.dev20250225
4
4
  Summary: ZenML: Write production-ready ML code.
5
5
  License: Apache-2.0
6
6
  Keywords: machine learning,production,pipeline,mlops,devops
@@ -1,5 +1,5 @@
1
1
  zenml/README.md,sha256=827dekbOWAs1BpW7VF1a4d7EbwPbjwccX-2zdXBENZo,1777
2
- zenml/VERSION,sha256=IyEgTi3qkZbE5T-L9C0C2yJSvaE5wb9untVYsQrfdo0,19
2
+ zenml/VERSION,sha256=zSzvVswwIzD3tSsA78NP_8AZNJtWkvKKmLed4ZMMYj0,19
3
3
  zenml/__init__.py,sha256=SkMObQA41ajqdZqGErN00S1Vf3KAxpLvbZ-OBy5uYoo,2130
4
4
  zenml/actions/__init__.py,sha256=mrt6wPo73iKRxK754_NqsGyJ3buW7RnVeIGXr1xEw8Y,681
5
5
  zenml/actions/base_action.py,sha256=UcaHev6BTuLDwuswnyaPjdA8AgUqB5xPZ-lRtuvf2FU,25553
@@ -141,17 +141,17 @@ zenml/integrations/aws/container_registries/aws_container_registry.py,sha256=SCx
141
141
  zenml/integrations/aws/flavors/__init__.py,sha256=XYL9fpwKzeFfHCjakU0iJ3SyHVRJk63QT7luOy9Giek,1480
142
142
  zenml/integrations/aws/flavors/aws_container_registry_flavor.py,sha256=GIDLOySz1zF08YSkmKIj89TxBqSLWueXLAHyxYwm-NI,4169
143
143
  zenml/integrations/aws/flavors/aws_image_builder_flavor.py,sha256=XobJOw5ymbY22i7YHWGYOKDQoJQAqTeMIfvkADt-DDc,5343
144
- zenml/integrations/aws/flavors/sagemaker_orchestrator_flavor.py,sha256=Shcvegidrxq0ogue4ya4Hm7fVjp6_hBd7O0LGdnnBio,13498
145
- zenml/integrations/aws/flavors/sagemaker_step_operator_flavor.py,sha256=OnNokixzGvOTBoZJQ5TDG3k4FFsP1pJmxbiij2VLW4s,5978
144
+ zenml/integrations/aws/flavors/sagemaker_orchestrator_flavor.py,sha256=aPBuzQjkroSZOdGWynXYu_A1c0YjK5dB96zb0NvHkBs,13604
145
+ zenml/integrations/aws/flavors/sagemaker_step_operator_flavor.py,sha256=e3locb2OnF7bqV3iafIUB_tHhDE8-i7eyB4H6Hyqj1Y,6084
146
146
  zenml/integrations/aws/image_builders/__init__.py,sha256=91hgH1OphG2i-vk-G8N4yKBFIzK89Wu7BK4-T5yOA7E,786
147
147
  zenml/integrations/aws/image_builders/aws_image_builder.py,sha256=UcPYYYjJjfsicY3hV4OZeJt552AVmwPZPlv-AsG1g1I,11489
148
148
  zenml/integrations/aws/orchestrators/__init__.py,sha256=Wh0Fhtt_uo6YrkvXY9kL0M478FL7XpapjoFreUZbgUg,794
149
- zenml/integrations/aws/orchestrators/sagemaker_orchestrator.py,sha256=wEMUL1kFYlhUVELbVgJTvHPh0WdgtZvKn6943PqnZn8,36348
149
+ zenml/integrations/aws/orchestrators/sagemaker_orchestrator.py,sha256=ZkZ9uH7FeN0J_0NyxAlTk1G_OAzTNwGiFj4sMcdbc4w,37254
150
150
  zenml/integrations/aws/orchestrators/sagemaker_orchestrator_entrypoint_config.py,sha256=WXCWdVojIZxx5_3-g1T95S2vsJ-RLNGcp-V409wgme0,1555
151
151
  zenml/integrations/aws/service_connectors/__init__.py,sha256=w2Md40yG89PwmU9eBceh6dGy3XYZ3MKusNAZ51sGOgE,783
152
152
  zenml/integrations/aws/service_connectors/aws_service_connector.py,sha256=7H69IoOYmyn5QcXEfL1-OmC0UaQ54TfNNhv2t8A6Daw,92107
153
153
  zenml/integrations/aws/step_operators/__init__.py,sha256=HK5oIqLixYKUKoiN4LnqTyGjAZJUdUqWYGqJhFSWyo0,817
154
- zenml/integrations/aws/step_operators/sagemaker_step_operator.py,sha256=-y1zqfIDJm2wwy_KETJ1nHdKuSbIHPFK3bT-0i9tpoA,10113
154
+ zenml/integrations/aws/step_operators/sagemaker_step_operator.py,sha256=8g9p9eHvZkg2LY2lnWPVkriB7Jr_LbQcw2HQFjVgZ6E,10330
155
155
  zenml/integrations/aws/step_operators/sagemaker_step_operator_entrypoint_config.py,sha256=2cXroe6-bXyHVkO5yPnZagNpqx6MrMDcvuvNr8J2j-A,1581
156
156
  zenml/integrations/azure/__init__.py,sha256=99cefcfBlEXl5lYCVUzWN0uvYn_TFGpBsEATvn1d3c4,2938
157
157
  zenml/integrations/azure/artifact_stores/__init__.py,sha256=dlIwbpgjE0Hy4rhMbelNJHVKm4t8tj_hRu9mQ_cEIAg,820
@@ -263,7 +263,7 @@ zenml/integrations/gcp/flavors/__init__.py,sha256=GcB8EvYjXM_VSku16jnDSNyJYMgKc2
263
263
  zenml/integrations/gcp/flavors/gcp_artifact_store_flavor.py,sha256=Ts2jvR3IgGH8YyaFBT6OQtx2kCKD9dgZgceKiRAv_QI,3560
264
264
  zenml/integrations/gcp/flavors/gcp_image_builder_flavor.py,sha256=K6sE9D-okbdlctNwNeDYEfhWmMXXW-S92x342dnhjqY,4451
265
265
  zenml/integrations/gcp/flavors/vertex_experiment_tracker_flavor.py,sha256=icexIPoqyJ_tsO6M5-Vncd1TAUaKTGbdUG0cDOYC6Kc,6834
266
- zenml/integrations/gcp/flavors/vertex_orchestrator_flavor.py,sha256=m01jsJbyX9i29l4VmCNKRo6skwyLi_RQgTJM5oKWMMQ,9907
266
+ zenml/integrations/gcp/flavors/vertex_orchestrator_flavor.py,sha256=zJBSs7sY0dT_oJFt1PCFVD3usav6LANfXEyavYg8usE,9926
267
267
  zenml/integrations/gcp/flavors/vertex_step_operator_flavor.py,sha256=VHg2coeKoBJjSYkiVSTtbfKRg9qW9o8_QZ_xXskfzI4,6653
268
268
  zenml/integrations/gcp/google_credentials_mixin.py,sha256=bPy3JYCCcyuTmPiVFqbY81YJ5g1yRdzHLlBlokvbeqg,4026
269
269
  zenml/integrations/gcp/image_builders/__init__.py,sha256=2IvTL6U2YpUoxGQXeXew-6WFoL5hHIxkqr4DaA5Ez9w,786
@@ -1277,11 +1277,11 @@ zenml/zen_stores/secrets_stores/hashicorp_secrets_store.py,sha256=NfW1EHIA99lseb
1277
1277
  zenml/zen_stores/secrets_stores/secrets_store_interface.py,sha256=Q2Jbnt2Pp7NGlR-u1YBfRZV2g8su2Fd0ArBMdksAE-Q,2819
1278
1278
  zenml/zen_stores/secrets_stores/service_connector_secrets_store.py,sha256=kPYX-Z_OOhZCI1CP77ncfV7IsV4e8brklnTXmKxZYNc,7078
1279
1279
  zenml/zen_stores/secrets_stores/sql_secrets_store.py,sha256=nEO0bAPlULBLxLVk-UTRIZiUeVpATggo8qCsKmgEU1E,8788
1280
- zenml/zen_stores/sql_zen_store.py,sha256=tKOghX2Wa0f0xSYu_ReqHgCwslvHrBhE3RePJG2tcA0,415921
1280
+ zenml/zen_stores/sql_zen_store.py,sha256=L3PtBT-VULJVh4udD4eY4TbU_o1iEC23VyUh26uBo5Y,415902
1281
1281
  zenml/zen_stores/template_utils.py,sha256=EKYBgmDLTS_PSMWaIO5yvHPLiQvMqHcsAe6NUCrv-i4,9068
1282
1282
  zenml/zen_stores/zen_store_interface.py,sha256=vf2gKBWfUUPtcGZC35oQB6pPNVzWVyQC8nWxVLjfrxM,92692
1283
- zenml_nightly-0.74.0.dev20250224.dist-info/LICENSE,sha256=wbnfEnXnafPbqwANHkV6LUsPKOtdpsd-SNw37rogLtc,11359
1284
- zenml_nightly-0.74.0.dev20250224.dist-info/METADATA,sha256=hlyV5SEOUeUqvgz0VaEP8O4XXHE6-HnAPrRMo-A_oGY,21643
1285
- zenml_nightly-0.74.0.dev20250224.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
1286
- zenml_nightly-0.74.0.dev20250224.dist-info/entry_points.txt,sha256=QK3ETQE0YswAM2mWypNMOv8TLtr7EjnqAFq1br_jEFE,43
1287
- zenml_nightly-0.74.0.dev20250224.dist-info/RECORD,,
1283
+ zenml_nightly-0.74.0.dev20250225.dist-info/LICENSE,sha256=wbnfEnXnafPbqwANHkV6LUsPKOtdpsd-SNw37rogLtc,11359
1284
+ zenml_nightly-0.74.0.dev20250225.dist-info/METADATA,sha256=m6rLsnw-E4Kl_0cIfYAMQiKk3_pd5TRUIWeqqYL06AA,21643
1285
+ zenml_nightly-0.74.0.dev20250225.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
1286
+ zenml_nightly-0.74.0.dev20250225.dist-info/entry_points.txt,sha256=QK3ETQE0YswAM2mWypNMOv8TLtr7EjnqAFq1br_jEFE,43
1287
+ zenml_nightly-0.74.0.dev20250225.dist-info/RECORD,,