truefoundry 0.5.0rc3__py3-none-any.whl → 0.5.0rc5__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.

Potentially problematic release.


This version of truefoundry might be problematic. Click here for more details.

Files changed (27) hide show
  1. truefoundry/deploy/v2/lib/deploy_workflow.py +8 -2
  2. truefoundry/ml/__init__.py +6 -3
  3. truefoundry/ml/autogen/client/__init__.py +9 -4
  4. truefoundry/ml/autogen/client/models/__init__.py +9 -4
  5. truefoundry/ml/autogen/client/models/artifact_version_dto.py +3 -5
  6. truefoundry/ml/autogen/client/models/artifact_version_manifest.py +111 -0
  7. truefoundry/ml/autogen/client/models/{external_model_source.py → external_artifact_source.py} +8 -8
  8. truefoundry/ml/autogen/client/models/finalize_artifact_version_request_dto.py +3 -5
  9. truefoundry/ml/autogen/client/models/manifest.py +154 -0
  10. truefoundry/ml/autogen/client/models/model_version_manifest.py +17 -4
  11. truefoundry/ml/autogen/client/models/source.py +23 -23
  12. truefoundry/ml/autogen/client/models/source1.py +154 -0
  13. truefoundry/ml/autogen/client/models/transformers_framework.py +6 -1
  14. truefoundry/ml/autogen/client/models/{truefoundry_model_source.py → true_foundry_artifact_source.py} +9 -9
  15. truefoundry/ml/autogen/client/models/update_artifact_version_request_dto.py +11 -1
  16. truefoundry/ml/autogen/client_README.md +5 -2
  17. truefoundry/ml/autogen/entities/artifacts.py +26 -8
  18. truefoundry/ml/log_types/artifacts/artifact.py +131 -63
  19. truefoundry/ml/log_types/artifacts/general_artifact.py +7 -26
  20. truefoundry/ml/log_types/artifacts/model.py +99 -81
  21. truefoundry/ml/mlfoundry_api.py +6 -4
  22. truefoundry/ml/mlfoundry_run.py +10 -5
  23. truefoundry/ml/model_framework.py +2 -2
  24. {truefoundry-0.5.0rc3.dist-info → truefoundry-0.5.0rc5.dist-info}/METADATA +2 -2
  25. {truefoundry-0.5.0rc3.dist-info → truefoundry-0.5.0rc5.dist-info}/RECORD +27 -24
  26. {truefoundry-0.5.0rc3.dist-info → truefoundry-0.5.0rc5.dist-info}/WHEEL +0 -0
  27. {truefoundry-0.5.0rc3.dist-info → truefoundry-0.5.0rc5.dist-info}/entry_points.txt +0 -0
@@ -4,6 +4,7 @@ import json
4
4
  import logging
5
5
  import os.path
6
6
  import tempfile
7
+ import typing
7
8
  import uuid
8
9
  import warnings
9
10
  from pathlib import Path
@@ -15,25 +16,23 @@ from truefoundry.ml.artifact.truefoundry_artifact_repo import (
15
16
  )
16
17
  from truefoundry.ml.autogen.client import ( # type: ignore[attr-defined]
17
18
  ArtifactType,
18
- ArtifactVersionSerializationFormat,
19
19
  CreateArtifactVersionRequestDto,
20
20
  DeleteArtifactVersionsRequestDto,
21
- ExternalModelSource,
21
+ ExternalArtifactSource,
22
22
  FinalizeArtifactVersionRequestDto,
23
23
  Framework,
24
+ Manifest,
24
25
  MlfoundryArtifactsApi,
25
26
  ModelDto,
26
27
  ModelVersionDto,
27
28
  ModelVersionManifest,
28
29
  NotifyArtifactVersionFailureDto,
29
- TruefoundryModelSource,
30
+ TrueFoundryArtifactSource,
30
31
  UpdateModelVersionRequestDto,
31
32
  )
32
- from truefoundry.ml.autogen.client import (
33
- Source as ModelVersionSource,
34
- )
35
33
  from truefoundry.ml.enums import ModelFramework
36
34
  from truefoundry.ml.exceptions import MlFoundryException
35
+ from truefoundry.ml.log_types.artifacts.artifact import BlobStorageDirectory
37
36
  from truefoundry.ml.log_types.artifacts.constants import (
38
37
  INTERNAL_METADATA_PATH,
39
38
  )
@@ -46,7 +45,7 @@ from truefoundry.ml.log_types.artifacts.utils import (
46
45
  )
47
46
  from truefoundry.ml.model_framework import ModelFrameworkType, _ModelFramework
48
47
  from truefoundry.ml.session import _get_api_client
49
- from truefoundry.pydantic_v1 import BaseModel, Extra, StrictStr
48
+ from truefoundry.pydantic_v1 import BaseModel, Extra
50
49
 
51
50
  if TYPE_CHECKING:
52
51
  from truefoundry.ml.mlfoundry_run import MlFoundryRun
@@ -75,10 +74,6 @@ class ModelVersionInternalMetadata(BaseModel):
75
74
  return dct
76
75
 
77
76
 
78
- class BlobStorageModelDirectory(BaseModel):
79
- uri: StrictStr
80
-
81
-
82
77
  class ModelVersionDownloadInfo(BaseModel):
83
78
  download_dir: str
84
79
  model_dir: str
@@ -101,7 +96,8 @@ class ModelVersion:
101
96
  self._deleted = False
102
97
  self._description: str = ""
103
98
  self._metadata: Dict[str, Any] = {}
104
- self._framework: Optional["Framework"] = None
99
+ self._model_schema: Optional[Dict[str, Any]] = None
100
+ self._framework: Optional[ModelFrameworkType] = None
105
101
  self._set_mutable_attrs()
106
102
 
107
103
  @classmethod
@@ -140,20 +136,33 @@ class ModelVersion:
140
136
  )
141
137
 
142
138
  def _set_mutable_attrs(self):
143
- self._description = self._model_version.description or ""
144
- self._metadata = copy.deepcopy(self._model_version.artifact_metadata)
145
- self._framework = (
146
- copy.deepcopy(self._model_version.manifest.framework)
147
- if self._model_version.manifest
148
- else None
149
- )
139
+ if self._model_version.manifest:
140
+ self._description = self._model_version.manifest.description or ""
141
+ self._metadata = copy.deepcopy(self._model_version.manifest.metadata)
142
+ self._model_schema = copy.deepcopy(
143
+ self._model_version.manifest.model_schema
144
+ )
145
+ if self._model_version.manifest.framework:
146
+ self._framework = copy.deepcopy(
147
+ self._model_version.manifest.framework.actual_instance
148
+ )
149
+ else:
150
+ self._framework = None
151
+ else:
152
+ self._description = self._model_version.description or ""
153
+ self._metadata = copy.deepcopy(self._model_version.artifact_metadata)
154
+ self._framework = _ModelFramework.to_model_framework_type(
155
+ self._model_version.model_framework
156
+ )
157
+ self._model_schema = None
150
158
 
151
- def _refetch_model_version(self):
159
+ def _refetch_model_version(self, reset_mutable_attrs: bool = True):
152
160
  _model_version = self._mlfoundry_artifacts_api.get_model_version_get(
153
161
  id=self._model_version.id
154
162
  )
155
163
  self._model_version = _model_version.model_version
156
- self._set_mutable_attrs()
164
+ if reset_mutable_attrs:
165
+ self._set_mutable_attrs()
157
166
 
158
167
  def __repr__(self):
159
168
  return f"{self.__class__.__name__}(fqn={self.fqn!r})"
@@ -187,12 +196,14 @@ class ModelVersion:
187
196
  return self._model_version.fqn
188
197
 
189
198
  @property
190
- def step(self) -> int:
199
+ def step(self) -> Optional[int]:
191
200
  """Get the step in which model was created"""
201
+ if self._model_version.manifest:
202
+ return self._model_version.manifest.step
192
203
  return self._model_version.step
193
204
 
194
205
  @property
195
- def description(self) -> Optional[str]:
206
+ def description(self) -> str:
196
207
  """Get description of the model"""
197
208
  return self._description
198
209
 
@@ -201,8 +212,6 @@ class ModelVersion:
201
212
  """set the description of the model"""
202
213
  _validate_description(value)
203
214
  self._description = value
204
- if self._model_version.manifest:
205
- self._model_version.manifest.description = value
206
215
 
207
216
  @property
208
217
  def metadata(self) -> Dict[str, Any]:
@@ -213,52 +222,51 @@ class ModelVersion:
213
222
  def metadata(self, value: Dict[str, Any]):
214
223
  """set the metadata for current model"""
215
224
  _validate_artifact_metadata(value)
216
- self._metadata = value
217
- if self._model_version.manifest:
218
- self._model_version.manifest.metadata = value
225
+ self._metadata = copy.deepcopy(value)
226
+
227
+ @property
228
+ def model_schema(self) -> Optional[Dict[str, Any]]:
229
+ """Get model_schema for the current model"""
230
+ return self._model_schema
231
+
232
+ @model_schema.setter
233
+ def model_schema(self, value: Optional[Dict[str, Any]]):
234
+ """set the model_schema for current model"""
235
+ if not self._model_version.manifest:
236
+ warnings.warn(
237
+ message="This model version was created using an older serialization format. model_schema will not be updated",
238
+ category=DeprecationWarning,
239
+ stacklevel=2,
240
+ )
241
+ return
242
+ self._model_schema = copy.deepcopy(value)
219
243
 
220
244
  @property
221
245
  def framework(self) -> Optional["ModelFrameworkType"]:
222
246
  """Get the framework of the model"""
223
- return (
224
- _ModelFramework.from_dict(self._framework.actual_instance.dict())
225
- if self._framework and self._framework.actual_instance
226
- else None
227
- )
247
+ return self._framework
228
248
 
229
249
  @framework.setter
230
250
  def framework(
231
251
  self, value: Optional[Union[str, ModelFramework, "ModelFrameworkType"]]
232
252
  ):
233
- """set the framework of the model"""
234
- model_framework_type: Optional[ModelFrameworkType] = None
235
-
236
- if value is not None:
237
- model_framework_type = _ModelFramework.to_model_framework_type(value)
238
-
239
- if (
240
- self._model_version.serialization_format
241
- == ArtifactVersionSerializationFormat.V2
242
- ):
243
- self._model_version.manifest.framework = self._framework = (
244
- Framework.from_dict(model_framework_type.dict())
245
- if model_framework_type
246
- else None
247
- )
248
- else:
253
+ """Set the framework of the model"""
254
+ if not self._model_version.manifest:
249
255
  warnings.warn(
250
256
  message="This model version was created using an older serialization format. Framework will not be updated",
251
257
  category=DeprecationWarning,
252
258
  stacklevel=2,
253
259
  )
260
+ return
261
+ self._framework = _ModelFramework.to_model_framework_type(value)
254
262
 
255
263
  @property
256
- def created_at(self) -> datetime.datetime:
264
+ def created_at(self) -> Optional[datetime.datetime]:
257
265
  """Get the time at which model version was created"""
258
266
  return self._model_version.created_at
259
267
 
260
268
  @property
261
- def updated_at(self) -> datetime.datetime:
269
+ def updated_at(self) -> Optional[datetime.datetime]:
262
270
  """Get the information about when the model version was updated"""
263
271
  return self._model_version.updated_at
264
272
 
@@ -311,13 +319,11 @@ class ModelVersion:
311
319
  path=path, overwrite=overwrite, progress=progress
312
320
  )
313
321
 
314
- if (
315
- self._model_version.serialization_format
316
- == ArtifactVersionSerializationFormat.V2
317
- ):
322
+ if self._model_version.manifest:
323
+ _framework = self._model_version.manifest.framework
318
324
  model_framework = (
319
- ModelFramework(self.framework.type)
320
- if self.framework
325
+ ModelFramework(_framework.actual_instance.type)
326
+ if _framework
321
327
  else ModelFramework.UNKNOWN
322
328
  )
323
329
  download_info = ModelVersionDownloadInfo(
@@ -429,22 +435,35 @@ class ModelVersion:
429
435
  ```
430
436
  """
431
437
  self._ensure_not_deleted()
432
- _model_version = self._mlfoundry_artifacts_api.update_model_version_post(
433
- update_model_version_request_dto=UpdateModelVersionRequestDto(
434
- id=self._model_version.id,
435
- description=self.description,
436
- artifact_metadata=self.metadata,
437
- manifest=self._model_version.manifest,
438
+ if self._model_version.manifest:
439
+ self._model_version.manifest.description = self.description
440
+ self._model_version.manifest.metadata = self.metadata
441
+ self._model_version.manifest.model_schema = self.model_schema
442
+ self._model_version.manifest.framework = (
443
+ Framework.from_dict(self.framework.dict()) if self.framework else None
438
444
  )
439
- )
440
- self._model_version = _model_version.model_version
441
- self._set_mutable_attrs()
445
+ try:
446
+ _model_version = self._mlfoundry_artifacts_api.update_model_version_post(
447
+ update_model_version_request_dto=UpdateModelVersionRequestDto(
448
+ id=self._model_version.id,
449
+ description=self.description,
450
+ artifact_metadata=self.metadata,
451
+ manifest=self._model_version.manifest,
452
+ )
453
+ )
454
+ except Exception:
455
+ # rollback edits to internal object
456
+ self._refetch_model_version(reset_mutable_attrs=False)
457
+ raise
458
+ else:
459
+ self._model_version = _model_version.model_version
460
+ self._set_mutable_attrs()
442
461
 
443
462
 
444
463
  def _log_model_version( # noqa: C901
445
464
  run: Optional["MlFoundryRun"],
446
465
  name: str,
447
- model_file_or_folder: Union[str, BlobStorageModelDirectory],
466
+ model_file_or_folder: Union[str, BlobStorageDirectory],
448
467
  mlfoundry_artifacts_api: Optional[MlfoundryArtifactsApi] = None,
449
468
  ml_repo_id: Optional[str] = None,
450
469
  additional_files: Sequence[Tuple[Union[str, Path], Optional[str]]] = (),
@@ -453,15 +472,16 @@ def _log_model_version( # noqa: C901
453
472
  step: Optional[int] = 0,
454
473
  progress: Optional[bool] = None,
455
474
  framework: Optional[Union[str, ModelFramework, "ModelFrameworkType"]] = None,
475
+ model_schema: Optional[Dict[str, Any]] = None,
456
476
  ) -> ModelVersion:
457
477
  if (run and mlfoundry_artifacts_api) or (not run and not mlfoundry_artifacts_api):
458
478
  raise MlFoundryException(
459
479
  "Exactly one of run, mlfoundry_artifacts_api should be passed"
460
480
  )
461
481
 
462
- if not isinstance(model_file_or_folder, (str, BlobStorageModelDirectory)):
482
+ if not isinstance(model_file_or_folder, (str, BlobStorageDirectory)):
463
483
  raise MlFoundryException(
464
- "model_file_or_folder should be of type str or BlobStorageModelDirectory"
484
+ "model_file_or_folder should be of type str or BlobStorageDirectory"
465
485
  )
466
486
 
467
487
  if mlfoundry_artifacts_api and not ml_repo_id:
@@ -522,11 +542,9 @@ def _log_model_version( # noqa: C901
522
542
  version_id = _create_artifact_version_response.id
523
543
  artifact_storage_root = _create_artifact_version_response.artifact_storage_root
524
544
  if isinstance(model_file_or_folder, str):
525
- # Source is of type TruefoundryModelSource
526
- source = ModelVersionSource.from_json(
527
- TruefoundryModelSource(
528
- type="truefoundry", uri=artifact_storage_root
529
- ).to_json()
545
+ # Source is of type TrueFoundryArtifactSource
546
+ source = TrueFoundryArtifactSource(
547
+ type="truefoundry", uri=artifact_storage_root
530
548
  )
531
549
  artifacts_repo = MlFoundryArtifactsRepository(
532
550
  artifact_identifier=ArtifactIdentifier(
@@ -555,20 +573,20 @@ def _log_model_version( # noqa: C901
555
573
  raise MlFoundryException("Failed to log model") from e
556
574
  finally:
557
575
  temp_dir.cleanup()
558
- elif isinstance(model_file_or_folder, BlobStorageModelDirectory):
559
- source = ModelVersionSource.from_json(
560
- ExternalModelSource(type="external", uri=model_file_or_folder.uri).to_json()
561
- )
576
+ elif isinstance(model_file_or_folder, BlobStorageDirectory):
577
+ source = ExternalArtifactSource(type="external", uri=model_file_or_folder.uri)
562
578
  else:
563
579
  raise MlFoundryException("Invalid model_file_or_folder provided")
564
580
 
565
581
  _framework = _ModelFramework.to_model_framework_type(framework)
582
+ _source_cls = typing.get_type_hints(ModelVersionManifest)["source"]
566
583
  model_manifest = ModelVersionManifest(
567
584
  description=description,
568
585
  metadata=metadata,
569
- source=source,
586
+ source=_source_cls.from_dict(source.dict()),
570
587
  framework=Framework.from_dict(_framework.dict()) if _framework else None,
571
- step=step if run else 0,
588
+ step=step,
589
+ model_schema=model_schema,
572
590
  )
573
591
  artifact_version_response = mlfoundry_artifacts_api.finalize_artifact_version_post(
574
592
  finalize_artifact_version_request_dto=FinalizeArtifactVersionRequestDto(
@@ -578,7 +596,7 @@ def _log_model_version( # noqa: C901
578
596
  artifact_metadata=metadata,
579
597
  internal_metadata=None,
580
598
  step=model_manifest.step,
581
- manifest=model_manifest,
599
+ manifest=Manifest.from_dict(model_manifest.to_dict()),
582
600
  )
583
601
  )
584
602
  return ModelVersion.from_fqn(fqn=artifact_version_response.artifact_version.fqn)
@@ -48,12 +48,12 @@ from truefoundry.ml.internal_namespace import NAMESPACE
48
48
  from truefoundry.ml.log_types.artifacts.artifact import (
49
49
  ArtifactPath,
50
50
  ArtifactVersion,
51
+ BlobStorageDirectory,
51
52
  ChatPromptVersion,
52
53
  )
53
54
  from truefoundry.ml.log_types.artifacts.dataset import DataDirectory
54
55
  from truefoundry.ml.log_types.artifacts.general_artifact import _log_artifact_version
55
56
  from truefoundry.ml.log_types.artifacts.model import (
56
- BlobStorageModelDirectory,
57
57
  ModelVersion,
58
58
  _log_model_version,
59
59
  )
@@ -1226,12 +1226,13 @@ class MlFoundry:
1226
1226
  *,
1227
1227
  ml_repo: str,
1228
1228
  name: str,
1229
- model_file_or_folder: Union[str, BlobStorageModelDirectory],
1229
+ model_file_or_folder: Union[str, BlobStorageDirectory],
1230
1230
  additional_files: Sequence[Tuple[Union[str, Path], Optional[str]]] = (),
1231
1231
  description: Optional[str] = None,
1232
1232
  metadata: Optional[Dict[str, Any]] = None,
1233
1233
  progress: Optional[bool] = None,
1234
1234
  framework: Optional[Union[str, ModelFramework, "ModelFrameworkType"]] = None,
1235
+ model_schema: Optional[Dict[str, Any]] = None,
1235
1236
  ) -> ModelVersion:
1236
1237
  """
1237
1238
  Serialize and log a versioned model under the current ml_repo. Each logged model generates a new version
@@ -1244,12 +1245,12 @@ class MlFoundry:
1244
1245
  the logged model will be added as a new version under that `name`. If no models exist with the given
1245
1246
  `name`, the given model will be logged as version 1.
1246
1247
 
1247
- model_file_or_folder (Union[str, BlobStorageModelDirectory]):
1248
+ model_file_or_folder (Union[str, BlobStorageDirectory]):
1248
1249
  str:
1249
1250
  Path to either a single file or a folder containing model files.
1250
1251
  This folder is typically created using serialization methods from libraries or frameworks,
1251
1252
  e.g., `joblib.dump`, `model.save_pretrained(...)`, `torch.save(...)`, or `model.save(...)`.
1252
- BlobStorageModelDirectory:
1253
+ BlobStorageDirectory:
1253
1254
  uri (str): URI to the model file or folder in a storage integration associated with the specified ML Repo.
1254
1255
  The model files or folder must reside within the same storage integration as the specified ML Repo.
1255
1256
  Accepted URI formats include `s3://integration-bucket-name/prefix/path/to/model` or `gs://integration-bucket-name/prefix/path/to/model`.
@@ -1391,6 +1392,7 @@ class MlFoundry:
1391
1392
  step=None,
1392
1393
  progress=progress,
1393
1394
  framework=framework,
1395
+ model_schema=model_schema,
1394
1396
  )
1395
1397
  logger.info(f"Logged model successfully with fqn {model_version.fqn!r}")
1396
1398
  return model_version
@@ -44,10 +44,13 @@ from truefoundry.ml.enums import ModelFramework, RunStatus
44
44
  from truefoundry.ml.exceptions import MlFoundryException
45
45
  from truefoundry.ml.internal_namespace import NAMESPACE
46
46
  from truefoundry.ml.log_types import Image, Plot
47
- from truefoundry.ml.log_types.artifacts.artifact import ArtifactPath, ArtifactVersion
47
+ from truefoundry.ml.log_types.artifacts.artifact import (
48
+ ArtifactPath,
49
+ ArtifactVersion,
50
+ BlobStorageDirectory,
51
+ )
48
52
  from truefoundry.ml.log_types.artifacts.general_artifact import _log_artifact_version
49
53
  from truefoundry.ml.log_types.artifacts.model import (
50
- BlobStorageModelDirectory,
51
54
  ModelVersion,
52
55
  _log_model_version,
53
56
  )
@@ -926,13 +929,14 @@ class MlFoundryRun:
926
929
  self,
927
930
  *,
928
931
  name: str,
929
- model_file_or_folder: Union[str, BlobStorageModelDirectory],
932
+ model_file_or_folder: Union[str, BlobStorageDirectory],
930
933
  additional_files: Sequence[Tuple[Union[str, Path], Optional[str]]] = (),
931
934
  description: Optional[str] = None,
932
935
  metadata: Optional[Dict[str, Any]] = None,
933
936
  step: int = 0,
934
937
  progress: Optional[bool] = None,
935
938
  framework: Optional[Union[str, ModelFramework, "ModelFrameworkType"]] = None,
939
+ model_schema: Optional[Dict[str, Any]] = None,
936
940
  ) -> ModelVersion:
937
941
  # TODO (chiragjn): Document mapping of framework to list of valid model save kwargs
938
942
  # TODO (chiragjn): Add more examples
@@ -945,12 +949,12 @@ class MlFoundryRun:
945
949
  name (str): Name of the model. If a model with this name already exists under the current ML Repo,
946
950
  the logged model will be added as a new version under that `name`. If no models exist with the given
947
951
  `name`, the given model will be logged as version 1.
948
- model_file_or_folder (Union[str, BlobStorageModelDirectory]):
952
+ model_file_or_folder (Union[str, BlobStorageDirectory]):
949
953
  str:
950
954
  Path to either a single file or a folder containing model files.
951
955
  This folder is typically created using serialization methods from libraries or frameworks,
952
956
  e.g., `joblib.dump`, `model.save_pretrained(...)`, `torch.save(...)`, or `model.save(...)`.
953
- BlobStorageModelDirectory:
957
+ BlobStorageDirectory:
954
958
  uri (str): URI to the model file or folder in a storage integration associated with the specified ML Repo.
955
959
  The model files or folder must reside within the same storage integration as the specified ML Repo.
956
960
  Accepted URI formats include `s3://integration-bucket-name/prefix/path/to/model` or `gs://integration-bucket-name/prefix/path/to/model`.
@@ -1085,6 +1089,7 @@ class MlFoundryRun:
1085
1089
  step=step,
1086
1090
  progress=progress,
1087
1091
  framework=framework,
1092
+ model_schema=model_schema,
1088
1093
  )
1089
1094
  logger.info(f"Logged model successfully with fqn {model_version.fqn!r}")
1090
1095
  return model_version
@@ -1,5 +1,5 @@
1
1
  import warnings
2
- from typing import Literal, Optional, Union, get_args
2
+ from typing import Any, Dict, Literal, Optional, Union, get_args
3
3
 
4
4
  from truefoundry.ml import ModelFramework
5
5
  from truefoundry.ml.autogen.entities import artifacts as autogen_artifacts
@@ -161,7 +161,7 @@ class _ModelFramework(BaseModel):
161
161
  )
162
162
 
163
163
  @classmethod
164
- def from_dict(cls, obj: dict) -> ModelFrameworkType:
164
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[ModelFrameworkType]:
165
165
  """Create an instance of ModelFramework from a dict"""
166
166
  if obj is None:
167
167
  return None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: truefoundry
3
- Version: 0.5.0rc3
3
+ Version: 0.5.0rc5
4
4
  Summary: Truefoundry CLI
5
5
  Author: Abhishek Choudhary
6
6
  Author-email: abhishek@truefoundry.com
@@ -21,7 +21,7 @@ Requires-Dist: coolname (>=1.1.0,<2.0.0)
21
21
  Requires-Dist: docker (>=6.1.2,<8.0.0)
22
22
  Requires-Dist: fastapi (>=0.56.0,<0.200.0)
23
23
  Requires-Dist: filelock (>=3.8.0,<4.0.0)
24
- Requires-Dist: flytekit (==1.12.2) ; extra == "workflow"
24
+ Requires-Dist: flytekit (==1.13.13) ; extra == "workflow"
25
25
  Requires-Dist: gitignorefile (>=1.1.2,<2.0.0)
26
26
  Requires-Dist: importlib-metadata (>=4.11.3,<9.0.0)
27
27
  Requires-Dist: importlib-resources (>=5.2.0,<7.0.0)
@@ -111,7 +111,7 @@ truefoundry/deploy/python_deploy_codegen.py,sha256=qJHH1BJQII9e6PhkcRFYiE_3De7_V
111
111
  truefoundry/deploy/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
112
  truefoundry/deploy/v2/lib/__init__.py,sha256=WEiVMZXOVljzEE3tpGJil14liIn_PCDoACJ6b3tZ6sI,188
113
113
  truefoundry/deploy/v2/lib/deploy.py,sha256=HIcY3SzQ5lWl7avuuKi3J0Z-PBES6Sf4hgMK-m6_53U,11990
114
- truefoundry/deploy/v2/lib/deploy_workflow.py,sha256=WhlrBuRf7r83qoQdTZSQzHt635fw9D4_qQIqusFWGag,12372
114
+ truefoundry/deploy/v2/lib/deploy_workflow.py,sha256=hgAhd1EGwFLz319Vs-WNXHDJmbKjdgkGPzDnBD1Up1k,12579
115
115
  truefoundry/deploy/v2/lib/deployable_patched_models.py,sha256=MROgMxhn9hDEAKwJSWl3iz12tUVvRKzEtqF2QUT6dAk,3343
116
116
  truefoundry/deploy/v2/lib/models.py,sha256=pSolLMTArDuYpeNsmeeS5DWliloN_iCDfZSpRllMHUg,1120
117
117
  truefoundry/deploy/v2/lib/patched_models.py,sha256=sokVDUdnhe3qx6dXlHM0shbf6HvSlF72-mvi8Lzt_Y8,13968
@@ -123,11 +123,11 @@ truefoundry/langchain/truefoundry_embeddings.py,sha256=8nRaZ7W1ao1WF0LHk6nNel1Lu
123
123
  truefoundry/langchain/truefoundry_llm.py,sha256=CJXyCgXIMbDsVRuuvEA5PKJsf6aRyVlYuG7zC4qtZXE,3802
124
124
  truefoundry/langchain/utils.py,sha256=PGLDe9chZ3BuUjakexOGpIqZRFoHEgu-zJ9yKdpLLmM,1329
125
125
  truefoundry/logger.py,sha256=u-YCNjg5HBwE70uQcpjIG64Ghos-K2ulTWaxC03BSj4,714
126
- truefoundry/ml/__init__.py,sha256=ZMT9C7q9YnwfnfruI0xipizSo1OO__f8Ao-oE65DZyg,1836
126
+ truefoundry/ml/__init__.py,sha256=tcFeEcIgBLR92pUDiu7zDSeI1vsSshlCzuIgnSbyE8E,1839
127
127
  truefoundry/ml/artifact/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
128
  truefoundry/ml/artifact/truefoundry_artifact_repo.py,sha256=VU8i3jnY62MLfzA3rxXuUjdqLz8Yaw4zqqPWSsf0mBg,45850
129
129
  truefoundry/ml/autogen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
130
- truefoundry/ml/autogen/client/__init__.py,sha256=0-I7KuPudFU1I1Y4qPbkvAK54E7wzjwIdjnVB57fWGA,18958
130
+ truefoundry/ml/autogen/client/__init__.py,sha256=OD4hsjMELkJNFkpVzcRGX_0tEIfWxL2n_0XYuy8mMoo,19211
131
131
  truefoundry/ml/autogen/client/api/__init__.py,sha256=NyMBxBmIzB1o5LzZZwz9LiydHB3-hPqc_sevsnY6Jrw,746
132
132
  truefoundry/ml/autogen/client/api/auth_api.py,sha256=zpWzJhUmW6HHMY_atlUf0B25k77E1kue2hmix5I5Ih0,7017
133
133
  truefoundry/ml/autogen/client/api/deprecated_api.py,sha256=0qooHNzm5mgweKUEDjnESHPeUqrlzuNEsDJwW9Cm9Vs,24232
@@ -142,7 +142,7 @@ truefoundry/ml/autogen/client/api_client.py,sha256=8qg-WpadDuKgbRt5yABJ4wVS4IRxd
142
142
  truefoundry/ml/autogen/client/api_response.py,sha256=KRyvecPMXF05PaxILHZ8JHoP4rgKBjKONMgG83aU-rM,844
143
143
  truefoundry/ml/autogen/client/configuration.py,sha256=V1oaEnxt-NfpaNmp-EZpf2glovzVhM2coWYt8HBNB4M,15723
144
144
  truefoundry/ml/autogen/client/exceptions.py,sha256=XbCbDHhYT3BVejdoGNPgEa4oS56ypkwFdxk1iOc_tFY,5355
145
- truefoundry/ml/autogen/client/models/__init__.py,sha256=ZNjoIgoxY6uxmChlRP7q5ea1g2EZvNARDvHKIYujGXU,17580
145
+ truefoundry/ml/autogen/client/models/__init__.py,sha256=IH4Cx1qYoYds5nkThxh9yMShRYZ5mGwn5fFFyPvnG6Y,17833
146
146
  truefoundry/ml/autogen/client/models/add_custom_metrics_to_model_version_request_dto.py,sha256=_ISDspicTGjBCYYXubKfRYYSSQVyW3AvG-jFh47-Zfc,2163
147
147
  truefoundry/ml/autogen/client/models/add_features_to_model_version_request_dto.py,sha256=rU0h96pEE8K1Ukw2pzDSjq0e6BgtDEuOctI-aZMrpUY,2653
148
148
  truefoundry/ml/autogen/client/models/agent.py,sha256=fnMWdEPe5Iw50WKydtu7QAxU419j3ju1IukpChUnGqY,3871
@@ -153,7 +153,8 @@ truefoundry/ml/autogen/client/models/agent_with_fqn.py,sha256=_LFRmdT0KNe1CRNBfE
153
153
  truefoundry/ml/autogen/client/models/artifact_dto.py,sha256=JWL8_sITJJXbxywcfRj4xqt8jR9pyBmA4TfwNTdX6CE,4243
154
154
  truefoundry/ml/autogen/client/models/artifact_response_dto.py,sha256=T_HLjkHnqiO1bnSXiCUOlwDEHGz89mlUNhBq0SJTapo,2226
155
155
  truefoundry/ml/autogen/client/models/artifact_type.py,sha256=LBXGYUoesmL5J-0xzCR8jBST3bjb6HY86RmqSGvytRs,828
156
- truefoundry/ml/autogen/client/models/artifact_version_dto.py,sha256=oGWsRSxLDy8aGMI9dfaaNZH9JpPnqLevWSRmMCsHo44,6233
156
+ truefoundry/ml/autogen/client/models/artifact_version_dto.py,sha256=GXjjKycpsEgJ60V2hAfL4NMxM2gZKLP2qV2yBb9WgdM,6174
157
+ truefoundry/ml/autogen/client/models/artifact_version_manifest.py,sha256=xqznaihmb9voR_-GqQ3vlDG5ZxvYhjjWCP9nR-WmIIE,3531
157
158
  truefoundry/ml/autogen/client/models/artifact_version_response_dto.py,sha256=JmiSYdPYG-ki6LCBeF7NtihdQ2LPiHld8cSPivY2GmQ,2421
158
159
  truefoundry/ml/autogen/client/models/artifact_version_serialization_format.py,sha256=2Qfgq1nykn0_mKNEJzOxhQwHm_95WIr9wJcHLeFWXQM,774
159
160
  truefoundry/ml/autogen/client/models/artifact_version_status.py,sha256=iIcomqhuaJkZH2rT3e6IjQutM79t9hEshW-RCIMKHEY,780
@@ -198,12 +199,12 @@ truefoundry/ml/autogen/client/models/experiment_dto.py,sha256=bl4-Hp1EHl8CEKgWq6
198
199
  truefoundry/ml/autogen/client/models/experiment_id_request_dto.py,sha256=ZMH827n_UTpDI30UnkuOam-4ANBKCDgocIzI8StxFR8,1891
199
200
  truefoundry/ml/autogen/client/models/experiment_response_dto.py,sha256=wuflV6_f8PQq061-wU2GzNY4BZi8SG8ARCIbSQN1oT4,2268
200
201
  truefoundry/ml/autogen/client/models/experiment_tag_dto.py,sha256=nEpCkeZ9ficIDkjmmLfkJeNNokd-Rhgr-cepPWG6L3M,1902
201
- truefoundry/ml/autogen/client/models/external_model_source.py,sha256=WE3JoHmaCDIeoHpcSOtkDsNocBoaTMzqiIuAiq6qIro,2336
202
+ truefoundry/ml/autogen/client/models/external_artifact_source.py,sha256=s7cDavSpmlCblMVV1DjSWur258YHYPxVjWze3uQTjXY,2360
202
203
  truefoundry/ml/autogen/client/models/fast_ai_framework.py,sha256=pl--nyTJF687SNmX0v1ICISmUCVc6ekF8VH_Rl1kHEQ,2170
203
204
  truefoundry/ml/autogen/client/models/feature_dto.py,sha256=XM7fF71P_bYP3UlO1ILjnD3DJNpf2tGwAWbrkQyvyA4,1924
204
205
  truefoundry/ml/autogen/client/models/feature_value_type.py,sha256=3ZKxxEfrrWk8ePlV7n11wa-FdDH0SRLyHRqSvIU7F-M,732
205
206
  truefoundry/ml/autogen/client/models/file_info_dto.py,sha256=7oc8venicsFVk8zT9wHNhHnZGtFkFlqimFnS7ozGL9k,2156
206
- truefoundry/ml/autogen/client/models/finalize_artifact_version_request_dto.py,sha256=tArvzRPp80PpfJ4CoMwwaKqPAfzonq-8C-yKBEjs9co,3877
207
+ truefoundry/ml/autogen/client/models/finalize_artifact_version_request_dto.py,sha256=tkPcNjI0_qhX-D3m6AXqLzdmo9_K0tFBtbPDeg0Zo7U,3818
207
208
  truefoundry/ml/autogen/client/models/framework.py,sha256=W_KrqH1qKRvlrssCCWFIlmPaeAw0eiM6VqS3pbdlMXU,14720
208
209
  truefoundry/ml/autogen/client/models/get_experiment_response_dto.py,sha256=FhJpoUeRbZV1s1KR3Y07Kv6U4enLbbgdpGbguT9us0A,2923
209
210
  truefoundry/ml/autogen/client/models/get_latest_run_log_response_dto.py,sha256=g5NG252VzjGHiA-w5nhxmZxGrowJO9XCHDQTjf8y2KE,2266
@@ -251,6 +252,7 @@ truefoundry/ml/autogen/client/models/list_run_logs_response_dto.py,sha256=ckQBBY
251
252
  truefoundry/ml/autogen/client/models/log_batch_request_dto.py,sha256=xDas-pmJP5T-8zKd17BbSnglZuX15ei3n9blBZUxa-Y,3702
252
253
  truefoundry/ml/autogen/client/models/log_metric_request_dto.py,sha256=QED1aIeaZJG-8iKFxT3NX9ozlUz_wom1xDsyZgL-a-4,2442
253
254
  truefoundry/ml/autogen/client/models/log_param_request_dto.py,sha256=Hd7AqrVnSkwfa9CcDbATERaim5Hf8rM59WZQNxSlJzk,2160
255
+ truefoundry/ml/autogen/client/models/manifest.py,sha256=PosK8HiHt54GARPhLecmMcDQrzCgPJhReV4UHArj19w,5078
254
256
  truefoundry/ml/autogen/client/models/method.py,sha256=NepwKtC72Wn0b4kkYM9uek6lZ55erqFEtlASOn1fYbU,734
255
257
  truefoundry/ml/autogen/client/models/metric_collection_dto.py,sha256=02ZWKm2_8DjGBhrPMysTACE2SQpyz4BSVMY01-k_qEA,2507
256
258
  truefoundry/ml/autogen/client/models/metric_dto.py,sha256=Xrcc8XRY0sZeg_cnb6gyf-AUUIS0FPxSGTCbDzcBzXQ,2174
@@ -260,7 +262,7 @@ truefoundry/ml/autogen/client/models/model_dto.py,sha256=TUO74MDqe8XCVJBB2O7Tiqi
260
262
  truefoundry/ml/autogen/client/models/model_response_dto.py,sha256=osrTxfygkuhxWj6SkRBALrSnFVPH4LSK6qTufTeZuJg,2163
261
263
  truefoundry/ml/autogen/client/models/model_schema_dto.py,sha256=ElEPK7fwuf3eiohNBBHJyl-nhNqzGnDLzZVzuQl-xC0,2620
262
264
  truefoundry/ml/autogen/client/models/model_version_dto.py,sha256=6kI1Z2czYAieJZBaVvcV8Y2eeNEUDyjPuTLHTdyWnOE,7282
263
- truefoundry/ml/autogen/client/models/model_version_manifest.py,sha256=Jd8oJj9-awzg-jP_hhLEMH3PSXir2p5Kc5o0YEB9ZRA,3957
265
+ truefoundry/ml/autogen/client/models/model_version_manifest.py,sha256=jPE3JYVvv8Wmqc4-w4Ff10HlqqxXaK9EQVkIgN7h9j4,4262
264
266
  truefoundry/ml/autogen/client/models/model_version_response_dto.py,sha256=D6XOCyggxqTkbePuypqYSHYh1PYeDv7R_J32q61sDM0,2320
265
267
  truefoundry/ml/autogen/client/models/multi_part_upload_dto.py,sha256=Ckq405vud8RQmMyKCJQJBlW5iXO7Y2mlgo8eVkiMvxg,3738
266
268
  truefoundry/ml/autogen/client/models/multi_part_upload_response_dto.py,sha256=VjH0kvl7rMjgDHjYGHnsh7KsZ5-qn-k3ksdGLJ49nIM,2431
@@ -288,7 +290,8 @@ truefoundry/ml/autogen/client/models/set_experiment_tag_request_dto.py,sha256=nr
288
290
  truefoundry/ml/autogen/client/models/set_tag_request_dto.py,sha256=IRgAdMcWBxmjNV6nZJej4pcNfLmZwrelEZ3otwt7eeE,2144
289
291
  truefoundry/ml/autogen/client/models/signed_url_dto.py,sha256=9oHoXBj07xTdc04rqOqJO3eOjQWXCyWPhfHg-6qX60w,1897
290
292
  truefoundry/ml/autogen/client/models/sklearn_framework.py,sha256=8-GvfwN5fHVDiOXPvVa9rBeG0VEavwwTsfEp3Nl0uO8,2187
291
- truefoundry/ml/autogen/client/models/source.py,sha256=8vQ6Fcky8kYAQiATuphxuhxKGRhH4WmcTiUa9N8iZQM,5095
293
+ truefoundry/ml/autogen/client/models/source.py,sha256=ZG2-3oIs_M8mZNPjoIRPzhHqlm63vLCVQC9idUxQ0XU,5180
294
+ truefoundry/ml/autogen/client/models/source1.py,sha256=io35b9uVzqSvOHw6RlCXxM30thN-vHm1upaSiN2i0II,5183
292
295
  truefoundry/ml/autogen/client/models/spa_cy_framework.py,sha256=JM1DLF8JL4c7-JZN-dQX_7NF8jIS6RP-mEk1uoWQpaU,2149
293
296
  truefoundry/ml/autogen/client/models/stats_models_framework.py,sha256=INndD-nZFAfRbKZXss4erx4xtotb_hlRFlEvitKrIzQ,2230
294
297
  truefoundry/ml/autogen/client/models/stop.py,sha256=UlAjRWI6Gjc92D2UME6qRAIfd6GoDI3VBWYkJqgixmU,4760
@@ -299,11 +302,11 @@ truefoundry/ml/autogen/client/models/system_message.py,sha256=yxRCJPl36FGv2zrsuH
299
302
  truefoundry/ml/autogen/client/models/tensor_flow_framework.py,sha256=lvABZqmVED7Hg7aDZ7bovN6usG_TZCWI4B8Ew6NAymw,2218
300
303
  truefoundry/ml/autogen/client/models/text.py,sha256=HAIK-w_TxB1kXGvVNK1d2cweoQi-GJ9d-0QSZl21u68,4862
301
304
  truefoundry/ml/autogen/client/models/text_content_part.py,sha256=fRQu22tiV3rDKmTgVZSLHX-cMcha3q53W8qWNCk5wmU,2492
302
- truefoundry/ml/autogen/client/models/transformers_framework.py,sha256=ialS6K3F64iLSe19qVXeuXNctEq6IzMFi7cBhP00bdg,2903
305
+ truefoundry/ml/autogen/client/models/transformers_framework.py,sha256=0lbFboK0hfHxZGLRiLAhX0imn-EAJHunFWDORF6-zSY,3203
303
306
  truefoundry/ml/autogen/client/models/trigger_job_run_config_request_dto.py,sha256=1HtO6zfW6Ulq8Gm_UL0YqVrse0795vZkMxgCQ0GKD9w,2864
304
307
  truefoundry/ml/autogen/client/models/trigger_job_run_config_response_dto.py,sha256=P35xzE8MyS_HtxCcXC9fZORPX2wbf93LbCZCRggkQxw,2144
305
- truefoundry/ml/autogen/client/models/truefoundry_model_source.py,sha256=Jc3sP2n05kQz92nHaU5RCcwP9bfeIBFUuxfvwdojub8,2418
306
- truefoundry/ml/autogen/client/models/update_artifact_version_request_dto.py,sha256=AhXj2afmrKskBi5uMT0-mSywZyz3g17lFE3uMRQ5pEM,2246
308
+ truefoundry/ml/autogen/client/models/true_foundry_artifact_source.py,sha256=Qwtowy8XSqMgQQ9yEk9AUL1ghaETLbwQW9sGNQfh6D0,2456
309
+ truefoundry/ml/autogen/client/models/update_artifact_version_request_dto.py,sha256=nBcEe5aCIvqKz_iIeegkDKsOedSTq6-ahlC_GAwxkO4,2766
307
310
  truefoundry/ml/autogen/client/models/update_dataset_request_dto.py,sha256=MF-rjJGUP6sDZVH3xP4Q8AEC9CV2PXEO9cXrR6yK57A,2182
308
311
  truefoundry/ml/autogen/client/models/update_experiment_request_dto.py,sha256=QE_kZzTDdiXKtQ2U-zbI_gb5vxS5Yv9YupYvD22RkFs,2198
309
312
  truefoundry/ml/autogen/client/models/update_model_version_request_dto.py,sha256=0xWqHHflnpO8FyT79psPiPBIGW6Aiovs-b6H7sjMSDQ,3589
@@ -315,8 +318,8 @@ truefoundry/ml/autogen/client/models/validation_error.py,sha256=mFjwoc8g2-Usu1HX
315
318
  truefoundry/ml/autogen/client/models/validation_error_loc_inner.py,sha256=nThJ5Gmy8W2Wok-ZOI4sK7uRe1BAkLS0qzq-XZbq8zs,4915
316
319
  truefoundry/ml/autogen/client/models/xg_boost_framework.py,sha256=kXijWcmEd5mc6Rks0mYQLqgYp1v7bxp31HQAmaJLZ3s,2182
317
320
  truefoundry/ml/autogen/client/rest.py,sha256=9goba8qHjQuVx5O_yRaTKu7PvBnb7r7swfy3dwuTEgk,14281
318
- truefoundry/ml/autogen/client_README.md,sha256=h8EUUiMl1vHri3Jrt0PjkFD-CoXAf5WXSgG4iRqlouc,35564
319
- truefoundry/ml/autogen/entities/artifacts.py,sha256=qc4XW3X8BR-zE32tNbCBMJ5kc_aPehDOBhyugvAYY-8,16646
321
+ truefoundry/ml/autogen/client_README.md,sha256=nIyCT1OXBMLV_cadu0OIqQCtXmGm3frJnO0gbJ_7b9Q,35790
322
+ truefoundry/ml/autogen/entities/artifacts.py,sha256=EbGDmD0npfa5BSHau67Y8-dSk6qPJJlJX3I3N4kqAgA,17326
320
323
  truefoundry/ml/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
321
324
  truefoundry/ml/cli/cli.py,sha256=ckBcjUpqfhgrPE1okqT_G2iouOLt-0KjpLhHp2YdVFU,256
322
325
  truefoundry/ml/cli/commands/__init__.py,sha256=diDUiRUX4l6TtNLI4iF-ZblczkELM7FRViJ-8gGNJQY,82
@@ -332,11 +335,11 @@ truefoundry/ml/exceptions.py,sha256=8aJm2NYtAWWsRLu4MbzaoOqHsQZ6RjOFwBWQWqb6qrc,
332
335
  truefoundry/ml/git_info.py,sha256=jvAVm9ilqivnGq8qJdUvYdd8Siv0PLtqurB-PXsS5ho,2023
333
336
  truefoundry/ml/internal_namespace.py,sha256=QcqMHp6-C2im2H_02hlhi01EIcr1HhNaZprszs13EMU,1790
334
337
  truefoundry/ml/log_types/__init__.py,sha256=g4u4D4Jaj0aBK5GtrLV88-qThKZR9pSZ17vFEkN-LmM,125
335
- truefoundry/ml/log_types/artifacts/artifact.py,sha256=n2EwAupOigDcUXQQFIIESRqp7zipLZieec0vLQ2DVRQ,17593
338
+ truefoundry/ml/log_types/artifacts/artifact.py,sha256=6X4lO23DwM7yTgUOY4RRoYMrf9m2AbiBBo2WftS2-dc,20457
336
339
  truefoundry/ml/log_types/artifacts/constants.py,sha256=qKxQ5mMvJE4j83BvGW3qNTKunxCiBg_EEjTdgbgJtyE,1036
337
340
  truefoundry/ml/log_types/artifacts/dataset.py,sha256=a4dxd2EN8p7Ci-cLGGiDOboN3t0395_XhWE1dmTw1Q4,13112
338
- truefoundry/ml/log_types/artifacts/general_artifact.py,sha256=_EOlNGMg2PFjlevlD6LEOsaQBBwRWs60PkzJases6tE,3927
339
- truefoundry/ml/log_types/artifacts/model.py,sha256=fcMc63BKqcbjUygpA6w0SFuoWZDvyxJvlPHyh7bNKv4,21161
341
+ truefoundry/ml/log_types/artifacts/general_artifact.py,sha256=B4XErLr-m6RmQWtxMTu3wlFRFcqSwPYp6J0OL4Ng6L0,3179
342
+ truefoundry/ml/log_types/artifacts/model.py,sha256=PZgqRO8NImvU7yfdjldqJ4Z3ow47GMnSL0A1DeE2DYk,22511
340
343
  truefoundry/ml/log_types/artifacts/model_extras.py,sha256=TIE73bLKfwIVzNiVcjmaZ841A70BHBwu4XAM6ZAQRFI,1045
341
344
  truefoundry/ml/log_types/artifacts/utils.py,sha256=3FVOYlfcvZiW8vTbMe7Ft1cjNPR2GW7J69M3dyAY-qc,6299
342
345
  truefoundry/ml/log_types/image/__init__.py,sha256=fcOq8yQnNj1rkLcPeIjLXBpdA1WIeiPsXOlAAvMxx7M,76
@@ -348,9 +351,9 @@ truefoundry/ml/log_types/plot.py,sha256=HuYvvRA5r8V0xAIuuqMME2IHb9d3SfGHUiuEkOP3
348
351
  truefoundry/ml/log_types/pydantic_base.py,sha256=eBlw_AEyAz4iJKDP4zgJOCFWcldwQqpf7FADW1jzIQY,272
349
352
  truefoundry/ml/log_types/utils.py,sha256=xjJ21jdPScvFmw3TbVh5NCzbzJwaqiXJyiiT4xxX1EI,335
350
353
  truefoundry/ml/logger.py,sha256=VT-BF3BnBYTWVq87O58F0c8uXMu94gYzsiFlGY3_7Ao,458
351
- truefoundry/ml/mlfoundry_api.py,sha256=eLzbXPSaUWBuIZQKld0r30StOHD-dXiS9zQL_Wq4Zk4,62037
352
- truefoundry/ml/mlfoundry_run.py,sha256=FDTEBflyKRA7nP8qCm834NyYjpyy9540J_WnagB25oI,46195
353
- truefoundry/ml/model_framework.py,sha256=YCdRD31rQbPQK-ehNLf1YHuOcPgserFjdPgrrB2Twqg,4737
354
+ truefoundry/ml/mlfoundry_api.py,sha256=_LAXCBu1A-xg8fD3qzjQv9YlghEbSgYe6rQB0YgvXGQ,62111
355
+ truefoundry/ml/mlfoundry_run.py,sha256=jLeDz9raUPKjXGH4PPAFel3Zg030iUWB_QP7FeW0DE0,46282
356
+ truefoundry/ml/model_framework.py,sha256=TosB73eEpTRlsh6v1AY_LnnW_4OoaSlzENnBXqkVRl4,4778
354
357
  truefoundry/ml/run_utils.py,sha256=0W208wSLUrbdfk2pjNcZlkUi9bNxG2JORqoe-5rVqHI,2423
355
358
  truefoundry/ml/session.py,sha256=F83GTC5WwGBjnJ69Ct8MqMnlutYc56JCc6YhEY1Wl-A,5394
356
359
  truefoundry/ml/validation_utils.py,sha256=XBSUd9OoyriWJpT3M5LKz17iWY3yVMr3hM5vdaVjtf0,12082
@@ -371,7 +374,7 @@ truefoundry/workflow/remote_filesystem/tfy_signed_url_client.py,sha256=5mBCIc-ON
371
374
  truefoundry/workflow/remote_filesystem/tfy_signed_url_fs.py,sha256=Hf6Dk6Fu6P7DqsK5ULgraf9DStjgigf-kjaRAMBW-RU,8680
372
375
  truefoundry/workflow/task.py,sha256=ToitYiKcNzFCtOVQwz1W8sRjbR97eVS7vQBdbgUQtKg,1779
373
376
  truefoundry/workflow/workflow.py,sha256=WaTqUjhwfAXDWu4E5ehuwAxrCbDJkoAf1oWmR2E9Qy0,4575
374
- truefoundry-0.5.0rc3.dist-info/METADATA,sha256=NztODLVhdKXFCu6xs3BKqMuKiLFe9FBw98dKtIwmm5Q,3101
375
- truefoundry-0.5.0rc3.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
376
- truefoundry-0.5.0rc3.dist-info/entry_points.txt,sha256=TXvUxQkI6zmqJuycPsyxEIMr3oqfDjgrWj0m_9X12x4,95
377
- truefoundry-0.5.0rc3.dist-info/RECORD,,
377
+ truefoundry-0.5.0rc5.dist-info/METADATA,sha256=WD9-zZ_Rxg1qbBVQZm_GDVlNvWPzuM2HNC78-Rbg-mk,3102
378
+ truefoundry-0.5.0rc5.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
379
+ truefoundry-0.5.0rc5.dist-info/entry_points.txt,sha256=TXvUxQkI6zmqJuycPsyxEIMr3oqfDjgrWj0m_9X12x4,95
380
+ truefoundry-0.5.0rc5.dist-info/RECORD,,