zenml-nightly 0.74.0.dev20250224__py3-none-any.whl → 0.74.0.dev20250226__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.dev20250226
@@ -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",
@@ -285,6 +285,28 @@ class StepLogsStorage:
285
285
  Args:
286
286
  force: whether to force a save even if the write conditions not met.
287
287
  """
288
+ import asyncio
289
+ import threading
290
+
291
+ # Most artifact stores are based on fsspec, which converts between
292
+ # sync and async operations by using a separate AIO thread.
293
+ # It may happen that the fsspec call itself will log something,
294
+ # which will trigger this method, which may then use fsspec again,
295
+ # causing a "Calling sync() from within a running loop" error, because
296
+ # the fsspec library does not expect sync calls being made as a result
297
+ # of a logging call made by itself.
298
+ # To avoid this, we simply check if we're running in the fsspec AIO
299
+ # thread and skip the save if that's the case.
300
+ try:
301
+ if (
302
+ asyncio.events.get_running_loop() is not None
303
+ and threading.current_thread().name == "fsspecIO"
304
+ ):
305
+ return
306
+ except RuntimeError:
307
+ # No running loop
308
+ pass
309
+
288
310
  if not self.disabled and (self._is_write_needed or force):
289
311
  # IMPORTANT: keep this as the first code line in this method! The
290
312
  # code that follows might still emit logging messages, which will
@@ -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.dev20250226
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,10 +79,12 @@ 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.2.3,<2.0.0) ; extra == "dev"
82
+ Requires-Dist: mkdocs (>=1.4.0,<2.0.0) ; extra == "dev"
83
+ Requires-Dist: mkdocs-autorefs (>=0.4.1,<1.0.0) ; extra == "dev"
83
84
  Requires-Dist: mkdocs-awesome-pages-plugin (>=2.6.1,<3.0.0) ; extra == "dev"
84
- Requires-Dist: mkdocs-material (>=8.1.7,<9.0.0) ; extra == "dev"
85
- Requires-Dist: mkdocstrings (>=0.17.0,<0.18.0) ; extra == "dev"
85
+ Requires-Dist: mkdocs-material (>=9.0.0,<10.0.0) ; extra == "dev"
86
+ Requires-Dist: mkdocstrings (>=0.20.0,<1.0.0) ; extra == "dev"
87
+ Requires-Dist: mkdocstrings-python (>=1.1.0,<2.0.0) ; extra == "dev"
86
88
  Requires-Dist: mypy (==1.7.1) ; extra == "dev"
87
89
  Requires-Dist: orjson (>=3.10.0,<3.11.0) ; extra == "server"
88
90
  Requires-Dist: packaging (>=24.1)
@@ -144,8 +146,8 @@ Description-Content-Type: text/markdown
144
146
 
145
147
  <div align="center">
146
148
  <img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=0fcbab94-8fbe-4a38-93e8-c2348450a42e" />
147
- <h1 align="center">Connecting data science teams seamlessly to cloud infrastructure.
148
- </h1>
149
+ <h1 align="center">Beyond The Demo: Production-Grade AI Systems</h1>
150
+ <h3 align="center">ZenML brings battle-tested MLOps practices to your AI applications, handling evaluation, monitoring, and deployment at scale</h3>
149
151
  </div>
150
152
 
151
153
  <!-- PROJECT SHIELDS -->
@@ -244,40 +246,44 @@ Take a tour with the guided quickstart by running:
244
246
  zenml go
245
247
  ```
246
248
 
247
- ## 🪄 Simple, integrated, End-to-end MLOps
249
+ ## 🪄 From Prototype to Production: AI Made Simple
248
250
 
249
- ### Create machine learning pipelines with minimal code changes
251
+ ### Create AI pipelines with minimal code changes
250
252
 
251
- ZenML is a MLOps framework intended for data scientists or ML engineers looking to standardize machine learning practices. Just add `@step` and `@pipeline` to your existing Python functions to get going. Here is a toy example:
253
+ ZenML is an open-source framework that handles MLOps and LLMOps for engineers scaling AI beyond prototypes. Automate evaluation loops, track performance, and deploy updates across 100s of pipelines—all while your RAG apps run like clockwork.
252
254
 
253
255
  ```python
254
256
  from zenml import pipeline, step
255
257
 
256
- @step # Just add this decorator
257
- def load_data() -> dict:
258
- training_data = [[1, 2], [3, 4], [5, 6]]
259
- labels = [0, 1, 0]
260
- return {'features': training_data, 'labels': labels}
258
+ @step
259
+ def load_rag_documents() -> dict:
260
+ # Load and chunk documents for RAG pipeline
261
+ documents = extract_web_content(url="https://www.zenml.io/")
262
+ return {"chunks": chunk_documents(documents)}
261
263
 
262
264
  @step
263
- def train_model(data: dict) -> None:
264
- total_features = sum(map(sum, data['features']))
265
- total_labels = sum(data['labels'])
266
-
267
- print(f"Trained model using {len(data['features'])} data points. "
268
- f"Feature sum is {total_features}, label sum is {total_labels}")
265
+ def generate_embeddings(data: dict) -> None:
266
+ # Generate embeddings for RAG pipeline
267
+ embeddings = embed_documents(data['chunks'])
268
+ return {"embeddings": embeddings}
269
269
 
270
- @pipeline # This function combines steps together
271
- def simple_ml_pipeline():
272
- dataset = load_data()
273
- train_model(dataset)
270
+ @step
271
+ def index_generator(
272
+ embeddings: dict,
273
+ ) -> str:
274
+ # Generate index for RAG pipeline
275
+ index = create_index(embeddings)
276
+ return index.id
277
+
274
278
 
275
- if __name__ == "__main__":
276
- run = simple_ml_pipeline() # call this to run the pipeline
277
-
279
+ @pipeline
280
+ def rag_pipeline() -> str:
281
+ documents = load_rag_documents()
282
+ embeddings = generate_embeddings(documents)
283
+ index = index_generator(embeddings)
284
+ return index
278
285
  ```
279
-
280
- ![Running a ZenML pipeline](/docs/book/.gitbook/assets/readme_basic_pipeline.gif)
286
+ ![Running a ZenML pipeline](/docs/book/.gitbook/assets/readme_simple_pipeline.gif)
281
287
 
282
288
  ### Easily provision an MLOps stack or reuse your existing infrastructure
283
289
 
@@ -329,18 +335,47 @@ def training(...):
329
335
 
330
336
  Create a complete lineage of who, where, and what data and models are produced.
331
337
 
332
- Youll be able to find out who produced which model, at what time, with which data, and on which version of the code. This guarantees full reproducibility and auditability.
338
+ You'll be able to find out who produced which model, at what time, with which data, and on which version of the code. This guarantees full reproducibility and auditability.
333
339
 
334
340
  ```python
335
341
  from zenml import Model
336
342
 
337
- @step(model=Model(name="classification"))
338
- def trainer(training_df: pd.DataFrame) -> Annotated["model", torch.nn.Module]:
339
- ...
343
+ @step(model=Model(name="rag_llm", tags=["staging"]))
344
+ def deploy_rag(index_id: str) -> str:
345
+ deployment_id = deploy_to_endpoint(index_id)
346
+ return deployment_id
340
347
  ```
341
348
 
342
349
  ![Exploring ZenML Models](/docs/book/.gitbook/assets/readme_mcp.gif)
343
350
 
351
+ ## 🚀 Key LLMOps Capabilities
352
+
353
+ ### Continual RAG Improvement
354
+ **Build production-ready retrieval systems**
355
+
356
+ <div align="center">
357
+ <img src="/docs/book/.gitbook/assets/rag_zenml_home.png" width="800" alt="RAG Pipeline">
358
+ </div>
359
+
360
+ ZenML tracks document ingestion, embedding versions, and query patterns. Implement feedback loops and:
361
+ - Fix your RAG logic based on production logs
362
+ - Automatically re-ingest updated documents
363
+ - A/B test different embedding models
364
+ - Monitor retrieval quality metrics
365
+
366
+ ### Reproducible Model Fine-Tuning
367
+ **Confidence in model updates**
368
+
369
+ <div align="center">
370
+ <img src="/docs/book/.gitbook/assets/finetune_zenml_home.png" width="800" alt="Finetuning Pipeline">
371
+ </div>
372
+
373
+ Maintain full lineage of SLM/LLM training runs:
374
+ - Version training data and hyperparameters
375
+ - Track performance across iterations
376
+ - Automatically promote validated models
377
+ - Roll back to previous versions if needed
378
+
344
379
  ### Purpose built for machine learning with integrations to your favorite tools
345
380
 
346
381
  While ZenML brings a lot of value out of the box, it also integrates into your existing tooling and infrastructure without you having to be locked in.
@@ -357,6 +392,14 @@ def train_and_deploy(training_df: pd.DataFrame) -> bento.Bento
357
392
 
358
393
  ![Exploring ZenML Integrations](/docs/book/.gitbook/assets/readme_integrations.gif)
359
394
 
395
+ ## 🔄 Your LLM Framework Isn't Enough for Production
396
+
397
+ While tools like LangChain and LlamaIndex help you **build** LLM workflows, ZenML helps you **productionize** them by adding:
398
+
399
+ ✅ **Artifact Tracking** - Every vector store index, fine-tuned model, and evaluation result versioned automatically
400
+ ✅ **Pipeline History** - See exactly what code/data produced each version of your RAG system
401
+ ✅ **Stage Promotion** - Move validated pipelines from staging → production with one click
402
+
360
403
  ## 🖼️ Learning
361
404
 
362
405
  The best way to learn about ZenML is the [docs](https://docs.zenml.io/). We recommend beginning with the [Starter Guide](https://docs.zenml.io/user-guide/starter-guide) to get up and running quickly.
@@ -441,13 +484,23 @@ Or, if you
441
484
  prefer, [open an issue](https://github.com/zenml-io/zenml/issues/new/choose) on
442
485
  our GitHub repo.
443
486
 
444
- ## ⭐️ Show Your Support
487
+ ## 📚 LLM-focused Learning Resources
445
488
 
446
- If you find ZenML helpful or interesting, please consider giving us a star on GitHub. Your support helps promote the project and lets others know that it's worth checking out.
489
+ 1. [LL Complete Guide - Full RAG Pipeline](https://github.com/zenml-io/zenml-projects/tree/main/llm-complete-guide) - Document ingestion, embedding management, and query serving
490
+ 2. [LLM Fine-Tuning Pipeline](https://github.com/zenml-io/zenml-projects/tree/main/llm-finetuning) - From data prep to deployed model
491
+ 3. [LLM Agents Example](https://github.com/zenml-io/zenml-projects/tree/main/llm-agents) - Track conversation quality and tool usage
447
492
 
448
- Thank you for your support! 🌟
493
+ ## 🤖 AI-Friendly Documentation with llms.txt
449
494
 
450
- [![Star this project](https://img.shields.io/github/stars/zenml-io/zenml?style=social)](https://github.com/zenml-io/zenml/stargazers)
495
+ ZenML implements the llms.txt standard to make our documentation more accessible to AI assistants and LLMs. Our implementation includes:
496
+
497
+ - Base documentation at [zenml.io/llms.txt](https://zenml.io/llms.txt) with core user guides
498
+ - Specialized files for different documentation aspects:
499
+ - [Component guides](https://zenml.io/component-guide.txt) for integration details
500
+ - [How-to guides](https://zenml.io/how-to-guides.txt) for practical implementations
501
+ - [Complete documentation corpus](https://zenml.io/llms-full.txt) for comprehensive access
502
+
503
+ This structured approach helps AI tools better understand and utilize ZenML's documentation, enabling more accurate code suggestions and improved documentation search.
451
504
 
452
505
  ## 📜 License
453
506
 
@@ -1,5 +1,5 @@
1
1
  zenml/README.md,sha256=827dekbOWAs1BpW7VF1a4d7EbwPbjwccX-2zdXBENZo,1777
2
- zenml/VERSION,sha256=IyEgTi3qkZbE5T-L9C0C2yJSvaE5wb9untVYsQrfdo0,19
2
+ zenml/VERSION,sha256=n_IJGeb0RH66CmOQbcKEAS5voks_xBKYRaXKI1Qb0m0,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
@@ -576,7 +576,7 @@ zenml/io/filesystem_registry.py,sha256=stujDg4a5k983WMwp3rj4Z4puiUco4REyVoIoMIpI
576
576
  zenml/io/local_filesystem.py,sha256=xQTZPT5cpooptUV8KiifxZojS6pWCv1-6UUxitUYb_E,7386
577
577
  zenml/logger.py,sha256=LMV2sMFQ-6JK9xEn6kEt1C9vAoQ0lwuHVM5XHIeKubE,6966
578
578
  zenml/logging/__init__.py,sha256=lnqbOa31wAHwPP5f8vZazOrUwnP2QviLiIVwxoAefD8,975
579
- zenml/logging/step_logging.py,sha256=L8Kruo9HfVoSIhHEjN6ls3Ywd6wk4w9rTvFipTWkkGA,17606
579
+ zenml/logging/step_logging.py,sha256=6QDfn4oN4h7D_M3RxkVre0NBYRou8IeVtk1vyO89tqQ,18551
580
580
  zenml/login/__init__.py,sha256=Evi7hq8tpUn57IM3iX3hYP0r8oIeEWUhS471TAOyVGs,644
581
581
  zenml/login/credentials.py,sha256=dl7qB0Xh-RY9mJsB1bQWCx_xwHisrv6mT5YddZvn0Ko,12707
582
582
  zenml/login/credentials_store.py,sha256=Hrkk8xzoLwK50Z0dZpjr-aCudUADQFMfzb-2r_vyJRo,23619
@@ -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.dev20250226.dist-info/LICENSE,sha256=wbnfEnXnafPbqwANHkV6LUsPKOtdpsd-SNw37rogLtc,11359
1284
+ zenml_nightly-0.74.0.dev20250226.dist-info/METADATA,sha256=Kt71h9uwFZZLAkdOEla7Snde0AoZGAEj-eZtZn7tWYY,24274
1285
+ zenml_nightly-0.74.0.dev20250226.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
1286
+ zenml_nightly-0.74.0.dev20250226.dist-info/entry_points.txt,sha256=QK3ETQE0YswAM2mWypNMOv8TLtr7EjnqAFq1br_jEFE,43
1287
+ zenml_nightly-0.74.0.dev20250226.dist-info/RECORD,,