truefoundry 0.4.4rc10__py3-none-any.whl → 0.4.4rc12__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/common/tfy_signed_url_client.py +11 -6
- truefoundry/common/tfy_signed_url_fs.py +7 -6
- truefoundry/common/utils.py +13 -9
- truefoundry/ml/artifact/truefoundry_artifact_repo.py +381 -399
- truefoundry/ml/log_types/artifacts/artifact.py +6 -10
- truefoundry/ml/log_types/artifacts/dataset.py +5 -13
- truefoundry/ml/log_types/artifacts/general_artifact.py +1 -3
- truefoundry/ml/log_types/artifacts/model.py +30 -18
- truefoundry/ml/log_types/artifacts/utils.py +25 -42
- truefoundry/ml/log_types/image/image.py +0 -2
- truefoundry/ml/log_types/plot.py +0 -2
- {truefoundry-0.4.4rc10.dist-info → truefoundry-0.4.4rc12.dist-info}/METADATA +1 -1
- {truefoundry-0.4.4rc10.dist-info → truefoundry-0.4.4rc12.dist-info}/RECORD +15 -15
- {truefoundry-0.4.4rc10.dist-info → truefoundry-0.4.4rc12.dist-info}/WHEEL +0 -0
- {truefoundry-0.4.4rc10.dist-info → truefoundry-0.4.4rc12.dist-info}/entry_points.txt +0 -0
|
@@ -29,10 +29,9 @@ from truefoundry.ml.autogen.entities.artifacts import ChatPrompt
|
|
|
29
29
|
from truefoundry.ml.exceptions import MlFoundryException
|
|
30
30
|
from truefoundry.ml.log_types.artifacts.constants import INTERNAL_METADATA_PATH
|
|
31
31
|
from truefoundry.ml.log_types.artifacts.utils import (
|
|
32
|
-
_get_src_dest_pairs,
|
|
33
32
|
_validate_artifact_metadata,
|
|
34
33
|
_validate_description,
|
|
35
|
-
|
|
34
|
+
calculate_local_directory_size,
|
|
36
35
|
)
|
|
37
36
|
from truefoundry.ml.logger import logger
|
|
38
37
|
from truefoundry.ml.session import _get_api_client
|
|
@@ -398,7 +397,7 @@ class ChatPromptVersion(ArtifactVersion):
|
|
|
398
397
|
@property
|
|
399
398
|
def extra_parameters(self) -> Dict[str, Any]:
|
|
400
399
|
_extra_parameters = self._chat_prompt.model_configuration.extra_parameters
|
|
401
|
-
return _extra_parameters if _extra_parameters else {}
|
|
400
|
+
return _extra_parameters.dict(exclude_unset=True) if _extra_parameters else {}
|
|
402
401
|
|
|
403
402
|
@property
|
|
404
403
|
def variables(self) -> Dict[str, Any]:
|
|
@@ -410,7 +409,6 @@ def _log_artifact_version_helper(
|
|
|
410
409
|
name: str,
|
|
411
410
|
artifact_type: ArtifactType,
|
|
412
411
|
artifact_dir: tempfile.TemporaryDirectory,
|
|
413
|
-
dest_to_src_map: Dict[str, str],
|
|
414
412
|
mlfoundry_artifacts_api: Optional[MlfoundryArtifactsApi] = None,
|
|
415
413
|
ml_repo_id: Optional[str] = None,
|
|
416
414
|
description: Optional[str] = None,
|
|
@@ -445,17 +443,15 @@ def _log_artifact_version_helper(
|
|
|
445
443
|
),
|
|
446
444
|
api_client=mlfoundry_artifacts_api.api_client,
|
|
447
445
|
)
|
|
448
|
-
|
|
449
|
-
total_size = calculate_total_size(list(dest_to_src_map.values()))
|
|
446
|
+
total_size = calculate_local_directory_size(artifact_dir)
|
|
450
447
|
try:
|
|
451
448
|
logger.info(
|
|
452
|
-
"Packaging and uploading files to remote with
|
|
449
|
+
"Packaging and uploading files to remote with Artifact Size: %.6f MB",
|
|
453
450
|
total_size / 1000000.0,
|
|
454
451
|
)
|
|
455
|
-
|
|
456
|
-
|
|
452
|
+
artifacts_repo.log_artifacts(
|
|
453
|
+
local_dir=artifact_dir.name, artifact_path=None, progress=progress
|
|
457
454
|
)
|
|
458
|
-
artifacts_repo.log_artifacts(src_dest_pairs=src_dest_pairs, progress=progress)
|
|
459
455
|
except Exception as e:
|
|
460
456
|
mlfoundry_artifacts_api.notify_failure_post(
|
|
461
457
|
notify_artifact_version_failure_dto=NotifyArtifactVersionFailureDto(
|
|
@@ -19,10 +19,9 @@ from truefoundry.ml.entities import FileInfo
|
|
|
19
19
|
from truefoundry.ml.exceptions import MlFoundryException
|
|
20
20
|
from truefoundry.ml.log_types.artifacts.utils import (
|
|
21
21
|
_copy_additional_files,
|
|
22
|
-
_get_src_dest_pairs,
|
|
23
22
|
_validate_artifact_metadata,
|
|
24
23
|
_validate_description,
|
|
25
|
-
|
|
24
|
+
calculate_local_directory_size,
|
|
26
25
|
)
|
|
27
26
|
from truefoundry.ml.logger import logger
|
|
28
27
|
from truefoundry.ml.session import _get_api_client
|
|
@@ -140,7 +139,6 @@ class DataDirectory:
|
|
|
140
139
|
file_paths: List[
|
|
141
140
|
Union[Tuple[str], Tuple[str, Optional[str]], DataDirectoryPath]
|
|
142
141
|
],
|
|
143
|
-
progress: Optional[bool] = None,
|
|
144
142
|
) -> None:
|
|
145
143
|
"""Logs File in the `DataDirectory`.
|
|
146
144
|
|
|
@@ -209,7 +207,7 @@ class DataDirectory:
|
|
|
209
207
|
|
|
210
208
|
try:
|
|
211
209
|
logger.info("Copying the files to add")
|
|
212
|
-
|
|
210
|
+
_copy_additional_files(
|
|
213
211
|
root_dir=temp_dir.name,
|
|
214
212
|
files_dir="",
|
|
215
213
|
model_dir=None,
|
|
@@ -221,19 +219,13 @@ class DataDirectory:
|
|
|
221
219
|
raise MlFoundryException("Failed to Add Files to DataDirectory") from e
|
|
222
220
|
|
|
223
221
|
artifacts_repo = self._get_artifacts_repo()
|
|
224
|
-
total_size =
|
|
222
|
+
total_size = calculate_local_directory_size(temp_dir)
|
|
225
223
|
try:
|
|
226
224
|
logger.info(
|
|
227
|
-
"Packaging and uploading files to remote with
|
|
225
|
+
"Packaging and uploading files to remote with Size: %.6f MB",
|
|
228
226
|
total_size / 1000000.0,
|
|
229
227
|
)
|
|
230
|
-
|
|
231
|
-
root_dir=temp_dir.name, dest_to_src_map=temp_dest_to_src_map
|
|
232
|
-
)
|
|
233
|
-
artifacts_repo.log_artifacts(
|
|
234
|
-
src_dest_pairs=src_dest_pairs,
|
|
235
|
-
progress=progress,
|
|
236
|
-
)
|
|
228
|
+
artifacts_repo.log_artifacts(local_dir=temp_dir.name, artifact_path=None)
|
|
237
229
|
except Exception as e:
|
|
238
230
|
raise MlFoundryException("Failed to Add Files to DataDirectory") from e
|
|
239
231
|
finally:
|
|
@@ -77,7 +77,7 @@ def _log_artifact_version(
|
|
|
77
77
|
os.makedirs(local_files_dir, exist_ok=True)
|
|
78
78
|
|
|
79
79
|
logger.info("Copying the files to log")
|
|
80
|
-
|
|
80
|
+
_copy_additional_files(
|
|
81
81
|
root_dir=temp_dir.name,
|
|
82
82
|
files_dir=internal_metadata.files_dir,
|
|
83
83
|
model_dir=None,
|
|
@@ -94,7 +94,6 @@ def _log_artifact_version(
|
|
|
94
94
|
os.makedirs(os.path.dirname(local_internal_metadata_path), exist_ok=True)
|
|
95
95
|
with open(local_internal_metadata_path, "w") as f:
|
|
96
96
|
json.dump(internal_metadata.dict(), f)
|
|
97
|
-
temp_dest_to_src_map[local_internal_metadata_path] = local_internal_metadata_path
|
|
98
97
|
|
|
99
98
|
return _log_artifact_version_helper(
|
|
100
99
|
run=run,
|
|
@@ -102,7 +101,6 @@ def _log_artifact_version(
|
|
|
102
101
|
name=name,
|
|
103
102
|
artifact_type=ArtifactType.ARTIFACT,
|
|
104
103
|
artifact_dir=temp_dir,
|
|
105
|
-
dest_to_src_map=temp_dest_to_src_map,
|
|
106
104
|
mlfoundry_artifacts_api=mlfoundry_artifacts_api,
|
|
107
105
|
description=description,
|
|
108
106
|
internal_metadata=internal_metadata,
|
|
@@ -40,10 +40,8 @@ from truefoundry.ml.log_types.artifacts.constants import (
|
|
|
40
40
|
from truefoundry.ml.log_types.artifacts.model_extras import CustomMetric, ModelSchema
|
|
41
41
|
from truefoundry.ml.log_types.artifacts.utils import (
|
|
42
42
|
_copy_additional_files,
|
|
43
|
-
_get_src_dest_pairs,
|
|
44
43
|
_validate_artifact_metadata,
|
|
45
44
|
_validate_description,
|
|
46
|
-
calculate_total_size,
|
|
47
45
|
)
|
|
48
46
|
from truefoundry.ml.session import _get_api_client
|
|
49
47
|
from truefoundry.pydantic_v1 import BaseModel, Extra
|
|
@@ -390,6 +388,24 @@ class ModelVersion:
|
|
|
390
388
|
self._set_mutable_attrs()
|
|
391
389
|
|
|
392
390
|
|
|
391
|
+
def calculate_model_size(artifact_dir: tempfile.TemporaryDirectory):
|
|
392
|
+
"""
|
|
393
|
+
Tells about the size of the model
|
|
394
|
+
|
|
395
|
+
Args:
|
|
396
|
+
artifact_dir (str): directory in which model is present.
|
|
397
|
+
|
|
398
|
+
Returns:
|
|
399
|
+
total size of the model
|
|
400
|
+
"""
|
|
401
|
+
total_size = 0
|
|
402
|
+
for path, _dirs, files in os.walk(artifact_dir.name):
|
|
403
|
+
for f in files:
|
|
404
|
+
file_path = os.path.join(path, f)
|
|
405
|
+
total_size += os.stat(file_path).st_size
|
|
406
|
+
return total_size
|
|
407
|
+
|
|
408
|
+
|
|
393
409
|
def _log_model_version( # noqa: C901
|
|
394
410
|
run: Optional["MlFoundryRun"],
|
|
395
411
|
name: str,
|
|
@@ -468,29 +484,28 @@ def _log_model_version( # noqa: C901
|
|
|
468
484
|
os.makedirs(local_model_dir, exist_ok=True)
|
|
469
485
|
|
|
470
486
|
logger.info("Adding model file/folder to model version content")
|
|
471
|
-
|
|
472
|
-
(model_file_or_folder, MODEL_DIR_NAME.rstrip(os.sep) + os.sep)
|
|
487
|
+
model_file_or_folder = [
|
|
488
|
+
(model_file_or_folder, MODEL_DIR_NAME.rstrip(os.sep) + os.sep)
|
|
473
489
|
]
|
|
474
|
-
|
|
475
|
-
temp_dest_to_src_map = _copy_additional_files(
|
|
490
|
+
_copy_additional_files(
|
|
476
491
|
root_dir=temp_dir.name,
|
|
477
492
|
files_dir=internal_metadata.files_dir,
|
|
478
493
|
model_dir=internal_metadata.model_dir,
|
|
479
|
-
additional_files=
|
|
494
|
+
additional_files=model_file_or_folder,
|
|
480
495
|
ignore_model_dir_dest_conflict=True,
|
|
481
496
|
)
|
|
482
497
|
|
|
483
498
|
# verify additional files and paths, copy additional files
|
|
484
499
|
if additional_files:
|
|
485
500
|
logger.info("Adding `additional_files` to model version contents")
|
|
486
|
-
|
|
501
|
+
_copy_additional_files(
|
|
487
502
|
root_dir=temp_dir.name,
|
|
488
503
|
files_dir=internal_metadata.files_dir,
|
|
489
504
|
model_dir=internal_metadata.model_dir,
|
|
490
505
|
additional_files=additional_files,
|
|
491
506
|
ignore_model_dir_dest_conflict=False,
|
|
492
|
-
existing_dest_to_src_map=temp_dest_to_src_map,
|
|
493
507
|
)
|
|
508
|
+
|
|
494
509
|
except Exception as e:
|
|
495
510
|
temp_dir.cleanup()
|
|
496
511
|
raise MlFoundryException("Failed to log model") from e
|
|
@@ -500,7 +515,6 @@ def _log_model_version( # noqa: C901
|
|
|
500
515
|
os.makedirs(os.path.dirname(local_internal_metadata_path), exist_ok=True)
|
|
501
516
|
with open(local_internal_metadata_path, "w") as f:
|
|
502
517
|
json.dump(internal_metadata.dict(), f)
|
|
503
|
-
temp_dest_to_src_map[local_internal_metadata_path] = local_internal_metadata_path
|
|
504
518
|
|
|
505
519
|
# create entry
|
|
506
520
|
_create_artifact_version_response = (
|
|
@@ -519,17 +533,15 @@ def _log_model_version( # noqa: C901
|
|
|
519
533
|
),
|
|
520
534
|
api_client=mlfoundry_artifacts_api.api_client,
|
|
521
535
|
)
|
|
522
|
-
|
|
523
|
-
total_size = calculate_total_size(list(temp_dest_to_src_map.values()))
|
|
536
|
+
model_size = calculate_model_size(temp_dir)
|
|
524
537
|
try:
|
|
525
538
|
logger.info(
|
|
526
|
-
"Packaging and uploading files to remote with
|
|
527
|
-
|
|
539
|
+
"Packaging and uploading files to remote with Total Size: %.6f MB",
|
|
540
|
+
model_size / 1000000.0,
|
|
528
541
|
)
|
|
529
|
-
|
|
530
|
-
|
|
542
|
+
artifacts_repo.log_artifacts(
|
|
543
|
+
local_dir=temp_dir.name, artifact_path=None, progress=progress
|
|
531
544
|
)
|
|
532
|
-
artifacts_repo.log_artifacts(src_dest_pairs=src_dest_pairs, progress=progress)
|
|
533
545
|
except Exception as e:
|
|
534
546
|
mlfoundry_artifacts_api.notify_failure_post(
|
|
535
547
|
notify_artifact_version_failure_dto=NotifyArtifactVersionFailureDto(
|
|
@@ -550,7 +562,7 @@ def _log_model_version( # noqa: C901
|
|
|
550
562
|
finalize_artifact_version_request_dto=FinalizeArtifactVersionRequestDto(
|
|
551
563
|
id=version_id,
|
|
552
564
|
run_uuid=run.run_id if run else None,
|
|
553
|
-
artifact_size=
|
|
565
|
+
artifact_size=model_size,
|
|
554
566
|
internal_metadata=internal_metadata_dto,
|
|
555
567
|
step=step if run else None,
|
|
556
568
|
)
|
|
@@ -2,6 +2,8 @@ import json
|
|
|
2
2
|
import logging
|
|
3
3
|
import os
|
|
4
4
|
import posixpath
|
|
5
|
+
import shutil
|
|
6
|
+
import tempfile
|
|
5
7
|
from pathlib import Path
|
|
6
8
|
from typing import Any, Dict, Optional, Sequence, Tuple, Union
|
|
7
9
|
|
|
@@ -11,22 +13,20 @@ from truefoundry.ml.log_types.artifacts.constants import DESCRIPTION_MAX_LENGTH
|
|
|
11
13
|
logger = logging.getLogger("truefoundry.ml")
|
|
12
14
|
|
|
13
15
|
|
|
14
|
-
def _copy_tree(
|
|
15
|
-
root_dir: str, src_path: str, dest_path: str, dest_to_src: Dict[str, str]
|
|
16
|
-
):
|
|
16
|
+
def _copy_tree(src_path, dest_path, symlinks=False, ignore_dangling_symlinks=False):
|
|
17
17
|
os.makedirs(dest_path, exist_ok=True)
|
|
18
18
|
for item in os.listdir(src_path):
|
|
19
19
|
src = os.path.join(src_path, item)
|
|
20
20
|
dest = os.path.join(dest_path, item)
|
|
21
21
|
if os.path.isdir(src):
|
|
22
22
|
_copy_tree(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
src,
|
|
24
|
+
dest,
|
|
25
|
+
symlinks=symlinks,
|
|
26
|
+
ignore_dangling_symlinks=ignore_dangling_symlinks,
|
|
27
27
|
)
|
|
28
28
|
else:
|
|
29
|
-
|
|
29
|
+
shutil.copy2(src, dest, follow_symlinks=True)
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
def is_destination_path_dirlike(dest_path) -> bool:
|
|
@@ -48,9 +48,9 @@ def _copy_additional_files(
|
|
|
48
48
|
model_dir: Optional[str], # relative to files_dir e.g "model/"
|
|
49
49
|
additional_files: Sequence[Tuple[Union[str, Path], Optional[str]]],
|
|
50
50
|
ignore_model_dir_dest_conflict: bool = False,
|
|
51
|
-
|
|
52
|
-
) -> Dict[str, str]:
|
|
51
|
+
):
|
|
53
52
|
"""
|
|
53
|
+
|
|
54
54
|
File copying examples:
|
|
55
55
|
# non ambiguous
|
|
56
56
|
# a.txt -> /tmp/ result /tmp/a.txt
|
|
@@ -69,7 +69,6 @@ def _copy_additional_files(
|
|
|
69
69
|
# .gitignore -> /tmp/.gitinclude result /tmp/.gitinclude
|
|
70
70
|
# a.txt -> /tmp/a result /tmp/a
|
|
71
71
|
"""
|
|
72
|
-
dest_to_src = existing_dest_to_src_map or {}
|
|
73
72
|
for src_path, dest_path in additional_files:
|
|
74
73
|
src_path = str(src_path)
|
|
75
74
|
if not os.path.exists(src_path):
|
|
@@ -100,47 +99,26 @@ def _copy_additional_files(
|
|
|
100
99
|
_src = src_path
|
|
101
100
|
if is_destination_path_dirlike(dest_abs_path):
|
|
102
101
|
os.makedirs(dest_abs_path, exist_ok=True)
|
|
103
|
-
|
|
102
|
+
_dst = os.path.relpath(
|
|
103
|
+
os.path.join(dest_abs_path, os.path.basename(_src)), files_abs_dir
|
|
104
|
+
)
|
|
104
105
|
else:
|
|
105
106
|
os.makedirs(os.path.dirname(dest_abs_path), exist_ok=True)
|
|
106
|
-
|
|
107
|
+
_dst = os.path.relpath(dest_abs_path, files_abs_dir)
|
|
107
108
|
logger.info(f"Adding file {_src} as /{_dst}")
|
|
108
|
-
|
|
109
|
+
shutil.copy2(src_path, dest_abs_path, follow_symlinks=True)
|
|
109
110
|
elif os.path.isdir(src_path):
|
|
110
111
|
os.makedirs(dest_abs_path, exist_ok=True)
|
|
111
112
|
_src = src_path.rstrip("/")
|
|
112
113
|
_dst = os.path.relpath(dest_abs_path, files_abs_dir).rstrip("/")
|
|
113
114
|
logger.info(f"Adding contents of {_src}/ to /{_dst}/")
|
|
114
115
|
_copy_tree(
|
|
115
|
-
root_dir=root_dir,
|
|
116
116
|
src_path=src_path,
|
|
117
117
|
dest_path=dest_abs_path,
|
|
118
|
-
|
|
118
|
+
symlinks=True,
|
|
119
|
+
ignore_dangling_symlinks=False,
|
|
119
120
|
)
|
|
120
121
|
|
|
121
|
-
return dest_to_src
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
def _make_dest_to_src_map_from_dir(root_dir: str) -> Dict[str, str]:
|
|
125
|
-
dest_to_src_map = {}
|
|
126
|
-
for root, _, files in os.walk(root_dir):
|
|
127
|
-
for file in files:
|
|
128
|
-
src = os.path.join(root, file)
|
|
129
|
-
dest = src
|
|
130
|
-
dest_to_src_map[dest] = src
|
|
131
|
-
return dest_to_src_map
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
def _get_src_dest_pairs(
|
|
135
|
-
root_dir: str,
|
|
136
|
-
dest_to_src_map: Dict[str, str],
|
|
137
|
-
) -> Sequence[Tuple[str, str]]:
|
|
138
|
-
src_dest_pairs = [
|
|
139
|
-
(src_path, os.path.relpath(dest_abs_path, root_dir))
|
|
140
|
-
for dest_abs_path, src_path in dest_to_src_map.items()
|
|
141
|
-
]
|
|
142
|
-
return src_dest_pairs
|
|
143
|
-
|
|
144
122
|
|
|
145
123
|
def _validate_description(description: Optional[str]):
|
|
146
124
|
if description is not None:
|
|
@@ -163,8 +141,8 @@ def _validate_artifact_metadata(metadata: Dict[str, Any]):
|
|
|
163
141
|
raise MlFoundryException("`metadata` must be json serializable dict") from ve
|
|
164
142
|
|
|
165
143
|
|
|
166
|
-
def
|
|
167
|
-
|
|
144
|
+
def calculate_local_directory_size(
|
|
145
|
+
directory: tempfile.TemporaryDirectory, # type: ignore[type-arg]
|
|
168
146
|
):
|
|
169
147
|
"""
|
|
170
148
|
Tells about the size of the artifact
|
|
@@ -175,4 +153,9 @@ def calculate_total_size(
|
|
|
175
153
|
Returns:
|
|
176
154
|
total size of the artifact
|
|
177
155
|
"""
|
|
178
|
-
|
|
156
|
+
total_size = 0
|
|
157
|
+
for path, _dirs, files in os.walk(directory.name):
|
|
158
|
+
for f in files:
|
|
159
|
+
file_path = os.path.join(path, f)
|
|
160
|
+
total_size += os.stat(file_path).st_size
|
|
161
|
+
return total_size
|
|
@@ -18,7 +18,6 @@ from truefoundry.ml.log_types.artifacts.constants import (
|
|
|
18
18
|
FILES_DIR,
|
|
19
19
|
INTERNAL_METADATA_PATH,
|
|
20
20
|
)
|
|
21
|
-
from truefoundry.ml.log_types.artifacts.utils import _make_dest_to_src_map_from_dir
|
|
22
21
|
from truefoundry.ml.log_types.image.constants import (
|
|
23
22
|
DEFAULT_IMAGE_FORMAT,
|
|
24
23
|
IMAGE_KEY_REGEX,
|
|
@@ -345,7 +344,6 @@ class Image:
|
|
|
345
344
|
name=key,
|
|
346
345
|
artifact_type=ArtifactType.IMAGE,
|
|
347
346
|
artifact_dir=temp_dir,
|
|
348
|
-
dest_to_src_map=_make_dest_to_src_map_from_dir(root_dir=temp_dir.name),
|
|
349
347
|
internal_metadata=internal_metadata,
|
|
350
348
|
step=step,
|
|
351
349
|
)
|
truefoundry/ml/log_types/plot.py
CHANGED
|
@@ -18,7 +18,6 @@ from truefoundry.ml.log_types.artifacts.constants import (
|
|
|
18
18
|
FILES_DIR,
|
|
19
19
|
INTERNAL_METADATA_PATH,
|
|
20
20
|
)
|
|
21
|
-
from truefoundry.ml.log_types.artifacts.utils import _make_dest_to_src_map_from_dir
|
|
22
21
|
from truefoundry.ml.log_types.pydantic_base import PydanticBase
|
|
23
22
|
from truefoundry.ml.log_types.utils import validate_key_name
|
|
24
23
|
from truefoundry.pydantic_v1 import BaseModel
|
|
@@ -187,7 +186,6 @@ class Plot:
|
|
|
187
186
|
name=key,
|
|
188
187
|
artifact_type=ArtifactType.PLOT,
|
|
189
188
|
artifact_dir=temp_dir,
|
|
190
|
-
dest_to_src_map=_make_dest_to_src_map_from_dir(root_dir=temp_dir.name),
|
|
191
189
|
internal_metadata=internal_metadata,
|
|
192
190
|
step=step,
|
|
193
191
|
)
|
|
@@ -34,9 +34,9 @@ truefoundry/common/entities.py,sha256=8O-EGPk4PKqnyoFMKUTxISCU19rz0KBnfRDJU695Dh
|
|
|
34
34
|
truefoundry/common/exceptions.py,sha256=ePpiQ_zmWe4e94gOgeMiyP_AZnKwjEBfyXsB5ScGYcI,329
|
|
35
35
|
truefoundry/common/request_utils.py,sha256=5xw4YGUcMf71Ncal3OfFCa-PoWDIvG3hYGCDa4Da4OI,2854
|
|
36
36
|
truefoundry/common/servicefoundry_client.py,sha256=2fxmgCM-ckFHpnm6n_mL-5Z8RWN_q-dYVvFC29bkYSg,3120
|
|
37
|
-
truefoundry/common/tfy_signed_url_client.py,sha256=
|
|
38
|
-
truefoundry/common/tfy_signed_url_fs.py,sha256=
|
|
39
|
-
truefoundry/common/utils.py,sha256=
|
|
37
|
+
truefoundry/common/tfy_signed_url_client.py,sha256=VklNm4K4xm1CcKZ1iiT8281X6jo803AhgYdtVvvwDXY,10183
|
|
38
|
+
truefoundry/common/tfy_signed_url_fs.py,sha256=xwUR2Vx892sVuiBN5wUNagWuGxGRMecvYsuKQ5yy1rg,8626
|
|
39
|
+
truefoundry/common/utils.py,sha256=RS_YExw9PHfoxKr0BZhPQAsDBKssqL1PgdW6a6rBqu0,3764
|
|
40
40
|
truefoundry/deploy/__init__.py,sha256=ugawKF2G02EmEXX35oZ2tec12d9oWN28Sf6mtGGIERY,2281
|
|
41
41
|
truefoundry/deploy/auto_gen/models.py,sha256=4MaxkG2_5Wg6avaZRlK0D4JiVEM5rk3NU0BCiTx8VyU,82477
|
|
42
42
|
truefoundry/deploy/builder/__init__.py,sha256=1qjHMNBE1poRCZW0WrG46dFM1f1IlivD5352qzsioMU,4953
|
|
@@ -127,7 +127,7 @@ truefoundry/langchain/utils.py,sha256=PGLDe9chZ3BuUjakexOGpIqZRFoHEgu-zJ9yKdpLLm
|
|
|
127
127
|
truefoundry/logger.py,sha256=7dLqW_Q2rEgo-_z1WZnQbGHaoy1L1MP3NqGgssaSS6o,685
|
|
128
128
|
truefoundry/ml/__init__.py,sha256=2A1l7pgqbVRt3cRW_0Lxg92hyJEkMxkCUh1EFprrmc0,942
|
|
129
129
|
truefoundry/ml/artifact/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
130
|
-
truefoundry/ml/artifact/truefoundry_artifact_repo.py,sha256=
|
|
130
|
+
truefoundry/ml/artifact/truefoundry_artifact_repo.py,sha256=uS4FZq4wUhxB8-BDx--fLYTcsLYL_V9clNtb32G0Wo0,45050
|
|
131
131
|
truefoundry/ml/autogen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
132
132
|
truefoundry/ml/autogen/client/__init__.py,sha256=B6Z0oUmE-S9YqUCDRpKDuTyNWX2Fmx4es7nWx7Bhy10,17600
|
|
133
133
|
truefoundry/ml/autogen/client/api/__init__.py,sha256=3sMSljMIS3UHYeF0BcNvrPPx6VbBSRt_1IfDn-13Kyc,752
|
|
@@ -319,19 +319,19 @@ truefoundry/ml/exceptions.py,sha256=8aJm2NYtAWWsRLu4MbzaoOqHsQZ6RjOFwBWQWqb6qrc,
|
|
|
319
319
|
truefoundry/ml/git_info.py,sha256=jvAVm9ilqivnGq8qJdUvYdd8Siv0PLtqurB-PXsS5ho,2023
|
|
320
320
|
truefoundry/ml/internal_namespace.py,sha256=QcqMHp6-C2im2H_02hlhi01EIcr1HhNaZprszs13EMU,1790
|
|
321
321
|
truefoundry/ml/log_types/__init__.py,sha256=g4u4D4Jaj0aBK5GtrLV88-qThKZR9pSZ17vFEkN-LmM,125
|
|
322
|
-
truefoundry/ml/log_types/artifacts/artifact.py,sha256=
|
|
322
|
+
truefoundry/ml/log_types/artifacts/artifact.py,sha256=ltHLkJLLeeRO1d6BqoSq3VtizicvyjdG_Hf52wqig7w,17478
|
|
323
323
|
truefoundry/ml/log_types/artifacts/constants.py,sha256=qKxQ5mMvJE4j83BvGW3qNTKunxCiBg_EEjTdgbgJtyE,1036
|
|
324
|
-
truefoundry/ml/log_types/artifacts/dataset.py,sha256=
|
|
325
|
-
truefoundry/ml/log_types/artifacts/general_artifact.py,sha256=
|
|
326
|
-
truefoundry/ml/log_types/artifacts/model.py,sha256=
|
|
324
|
+
truefoundry/ml/log_types/artifacts/dataset.py,sha256=ou6hF0RnwQ8clgpWW8SJPOu2YCG-xya51b91pGY-PjY,12823
|
|
325
|
+
truefoundry/ml/log_types/artifacts/general_artifact.py,sha256=fY74EUeCGdHdlkrp_GMoaZPvl7EQctt8OlRM6yFgLF8,3772
|
|
326
|
+
truefoundry/ml/log_types/artifacts/model.py,sha256=Qb0wq2qCbPCk4os74xsJwOXUQc-4sdGsBwKkV9emDsI,21998
|
|
327
327
|
truefoundry/ml/log_types/artifacts/model_extras.py,sha256=TIE73bLKfwIVzNiVcjmaZ841A70BHBwu4XAM6ZAQRFI,1045
|
|
328
|
-
truefoundry/ml/log_types/artifacts/utils.py,sha256=
|
|
328
|
+
truefoundry/ml/log_types/artifacts/utils.py,sha256=dwmRBrEmwIktVcA1a3lrsUfmROO7THTLgYwJ4MpSUWU,5885
|
|
329
329
|
truefoundry/ml/log_types/image/__init__.py,sha256=fcOq8yQnNj1rkLcPeIjLXBpdA1WIeiPsXOlAAvMxx7M,76
|
|
330
330
|
truefoundry/ml/log_types/image/constants.py,sha256=wLtGEOA4T5fZHSlOXPuNDLX3lpbCtwlvGKPFk_1fah0,255
|
|
331
|
-
truefoundry/ml/log_types/image/image.py,sha256=
|
|
331
|
+
truefoundry/ml/log_types/image/image.py,sha256=y2FOUVTNGtjzGW5AcaXObIxKQDGr1GoiSYBoRAB7ZaM,12310
|
|
332
332
|
truefoundry/ml/log_types/image/image_normalizer.py,sha256=vrzfuSpVGgIxw_Q2sbFe7kQ_JpAndX0bMwC7wtfi41g,3104
|
|
333
333
|
truefoundry/ml/log_types/image/types.py,sha256=inFQlyAyDvZtfliFpENirNCm1XO9beyZ8DNn97DoDKs,1568
|
|
334
|
-
truefoundry/ml/log_types/plot.py,sha256=
|
|
334
|
+
truefoundry/ml/log_types/plot.py,sha256=oFnXNb2o5fVF0zsnRjvqjSjLaphQWUnQCdw72e2uiMY,7347
|
|
335
335
|
truefoundry/ml/log_types/pydantic_base.py,sha256=eBlw_AEyAz4iJKDP4zgJOCFWcldwQqpf7FADW1jzIQY,272
|
|
336
336
|
truefoundry/ml/log_types/utils.py,sha256=xjJ21jdPScvFmw3TbVh5NCzbzJwaqiXJyiiT4xxX1EI,335
|
|
337
337
|
truefoundry/ml/logger.py,sha256=VT-BF3BnBYTWVq87O58F0c8uXMu94gYzsiFlGY3_7Ao,458
|
|
@@ -353,7 +353,7 @@ truefoundry/workflow/map_task.py,sha256=2m3qGXQ90k9LdS45q8dqCCECc3qr8t2m_LMCVd1m
|
|
|
353
353
|
truefoundry/workflow/python_task.py,sha256=SRXRLC4vdBqGjhkwuaY39LEWN6iPCpJAuW17URRdWTY,1128
|
|
354
354
|
truefoundry/workflow/task.py,sha256=ToitYiKcNzFCtOVQwz1W8sRjbR97eVS7vQBdbgUQtKg,1779
|
|
355
355
|
truefoundry/workflow/workflow.py,sha256=WaTqUjhwfAXDWu4E5ehuwAxrCbDJkoAf1oWmR2E9Qy0,4575
|
|
356
|
-
truefoundry-0.4.
|
|
357
|
-
truefoundry-0.4.
|
|
358
|
-
truefoundry-0.4.
|
|
359
|
-
truefoundry-0.4.
|
|
356
|
+
truefoundry-0.4.4rc12.dist-info/METADATA,sha256=t-97uMhttorL6bHloEkl7d4ewbPEPE5lHRz3nmCywy4,3102
|
|
357
|
+
truefoundry-0.4.4rc12.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
|
358
|
+
truefoundry-0.4.4rc12.dist-info/entry_points.txt,sha256=TXvUxQkI6zmqJuycPsyxEIMr3oqfDjgrWj0m_9X12x4,95
|
|
359
|
+
truefoundry-0.4.4rc12.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|