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 +1 -1
- zenml/integrations/aws/flavors/sagemaker_orchestrator_flavor.py +2 -0
- zenml/integrations/aws/flavors/sagemaker_step_operator_flavor.py +2 -0
- zenml/integrations/aws/orchestrators/sagemaker_orchestrator.py +18 -0
- zenml/integrations/aws/step_operators/sagemaker_step_operator.py +8 -2
- zenml/integrations/gcp/flavors/vertex_orchestrator_flavor.py +4 -3
- zenml/zen_stores/sql_zen_store.py +1 -3
- {zenml_nightly-0.74.0.dev20250224.dist-info → zenml_nightly-0.74.0.dev20250225.dist-info}/METADATA +1 -1
- {zenml_nightly-0.74.0.dev20250224.dist-info → zenml_nightly-0.74.0.dev20250225.dist-info}/RECORD +12 -12
- {zenml_nightly-0.74.0.dev20250224.dist-info → zenml_nightly-0.74.0.dev20250225.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.74.0.dev20250224.dist-info → zenml_nightly-0.74.0.dev20250225.dist-info}/WHEEL +0 -0
- {zenml_nightly-0.74.0.dev20250224.dist-info → zenml_nightly-0.74.0.dev20250225.dist-info}/entry_points.txt +0 -0
zenml/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.74.0.
|
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/<
|
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
|
{zenml_nightly-0.74.0.dev20250224.dist-info → zenml_nightly-0.74.0.dev20250225.dist-info}/RECORD
RENAMED
@@ -1,5 +1,5 @@
|
|
1
1
|
zenml/README.md,sha256=827dekbOWAs1BpW7VF1a4d7EbwPbjwccX-2zdXBENZo,1777
|
2
|
-
zenml/VERSION,sha256=
|
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=
|
145
|
-
zenml/integrations/aws/flavors/sagemaker_step_operator_flavor.py,sha256=
|
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=
|
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
|
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=
|
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=
|
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.
|
1284
|
-
zenml_nightly-0.74.0.
|
1285
|
-
zenml_nightly-0.74.0.
|
1286
|
-
zenml_nightly-0.74.0.
|
1287
|
-
zenml_nightly-0.74.0.
|
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,,
|
{zenml_nightly-0.74.0.dev20250224.dist-info → zenml_nightly-0.74.0.dev20250225.dist-info}/LICENSE
RENAMED
File without changes
|
{zenml_nightly-0.74.0.dev20250224.dist-info → zenml_nightly-0.74.0.dev20250225.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|