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.
- truefoundry/deploy/v2/lib/deploy_workflow.py +8 -2
- truefoundry/ml/__init__.py +6 -3
- truefoundry/ml/autogen/client/__init__.py +9 -4
- truefoundry/ml/autogen/client/models/__init__.py +9 -4
- truefoundry/ml/autogen/client/models/artifact_version_dto.py +3 -5
- truefoundry/ml/autogen/client/models/artifact_version_manifest.py +111 -0
- truefoundry/ml/autogen/client/models/{external_model_source.py → external_artifact_source.py} +8 -8
- truefoundry/ml/autogen/client/models/finalize_artifact_version_request_dto.py +3 -5
- truefoundry/ml/autogen/client/models/manifest.py +154 -0
- truefoundry/ml/autogen/client/models/model_version_manifest.py +17 -4
- truefoundry/ml/autogen/client/models/source.py +23 -23
- truefoundry/ml/autogen/client/models/source1.py +154 -0
- truefoundry/ml/autogen/client/models/transformers_framework.py +6 -1
- truefoundry/ml/autogen/client/models/{truefoundry_model_source.py → true_foundry_artifact_source.py} +9 -9
- truefoundry/ml/autogen/client/models/update_artifact_version_request_dto.py +11 -1
- truefoundry/ml/autogen/client_README.md +5 -2
- truefoundry/ml/autogen/entities/artifacts.py +26 -8
- truefoundry/ml/log_types/artifacts/artifact.py +131 -63
- truefoundry/ml/log_types/artifacts/general_artifact.py +7 -26
- truefoundry/ml/log_types/artifacts/model.py +99 -81
- truefoundry/ml/mlfoundry_api.py +6 -4
- truefoundry/ml/mlfoundry_run.py +10 -5
- truefoundry/ml/model_framework.py +2 -2
- {truefoundry-0.5.0rc3.dist-info → truefoundry-0.5.0rc5.dist-info}/METADATA +2 -2
- {truefoundry-0.5.0rc3.dist-info → truefoundry-0.5.0rc5.dist-info}/RECORD +27 -24
- {truefoundry-0.5.0rc3.dist-info → truefoundry-0.5.0rc5.dist-info}/WHEEL +0 -0
- {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
|
-
|
|
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
|
-
|
|
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
|
|
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.
|
|
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
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
copy.deepcopy(
|
|
147
|
-
|
|
148
|
-
|
|
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
|
-
|
|
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) ->
|
|
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
|
-
|
|
218
|
-
|
|
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
|
-
"""
|
|
234
|
-
|
|
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.
|
|
316
|
-
== ArtifactVersionSerializationFormat.V2
|
|
317
|
-
):
|
|
322
|
+
if self._model_version.manifest:
|
|
323
|
+
_framework = self._model_version.manifest.framework
|
|
318
324
|
model_framework = (
|
|
319
|
-
ModelFramework(
|
|
320
|
-
if
|
|
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
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
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
|
-
|
|
441
|
-
|
|
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,
|
|
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,
|
|
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
|
|
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
|
|
526
|
-
source =
|
|
527
|
-
|
|
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,
|
|
559
|
-
source =
|
|
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
|
|
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)
|
truefoundry/ml/mlfoundry_api.py
CHANGED
|
@@ -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,
|
|
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,
|
|
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
|
-
|
|
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
|
truefoundry/ml/mlfoundry_run.py
CHANGED
|
@@ -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
|
|
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,
|
|
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,
|
|
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
|
-
|
|
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:
|
|
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.
|
|
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.
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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/
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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/
|
|
306
|
-
truefoundry/ml/autogen/client/models/update_artifact_version_request_dto.py,sha256=
|
|
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=
|
|
319
|
-
truefoundry/ml/autogen/entities/artifacts.py,sha256=
|
|
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=
|
|
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=
|
|
339
|
-
truefoundry/ml/log_types/artifacts/model.py,sha256=
|
|
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=
|
|
352
|
-
truefoundry/ml/mlfoundry_run.py,sha256=
|
|
353
|
-
truefoundry/ml/model_framework.py,sha256=
|
|
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.
|
|
375
|
-
truefoundry-0.5.
|
|
376
|
-
truefoundry-0.5.
|
|
377
|
-
truefoundry-0.5.
|
|
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,,
|
|
File without changes
|
|
File without changes
|