truefoundry 0.11.7__py3-none-any.whl → 0.11.8rc1__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.

File without changes
@@ -39,6 +39,7 @@ from truefoundry.ml.log_types.artifacts.utils import (
39
39
  _validate_description,
40
40
  calculate_total_size,
41
41
  get_autogen_type,
42
+ set_tfy_internal_metadata,
42
43
  )
43
44
  from truefoundry.ml.logger import logger
44
45
  from truefoundry.ml.session import _get_api_client
@@ -455,8 +456,7 @@ def _log_artifact_version_helper(
455
456
  ml_repo_id = result.id
456
457
 
457
458
  metadata = metadata or {}
458
- if ARTIFACT_METADATA_TRUEFOUNDRY_KEY not in metadata:
459
- metadata[ARTIFACT_METADATA_TRUEFOUNDRY_KEY] = {}
459
+ metadata = set_tfy_internal_metadata(metadata)
460
460
 
461
461
  _validate_description(description)
462
462
  _validate_artifact_metadata(metadata)
@@ -33,3 +33,8 @@ model_version.update()
33
33
  """
34
34
 
35
35
  ARTIFACT_METADATA_TRUEFOUNDRY_KEY = ".truefoundry"
36
+ TFY_INTERNAL_APPLICATION_ID_ENV_VAR = "TFY_INTERNAL_APPLICATION_ID"
37
+ TFY_INTERNAL_APPLICATION_NAME_ENV_VAR = "TFY_INTERNAL_APPLICATION_NAME"
38
+ TFY_INTERNAL_APPLICATION_FQN_ENV_VAR = "TFY_INTERNAL_APPLICATION_FQN"
39
+ TFY_INTERNAL_APPLICATION_VERSION_ENV_VAR = "TFY_INTERNAL_APPLICATION_VERSION"
40
+ TFY_INTERNAL_JOB_RUN_NAME_ENV_VAR = "TFY_INTERNAL_JOB_RUN_NAME"
@@ -46,6 +46,7 @@ from truefoundry.ml.log_types.artifacts.utils import (
46
46
  _validate_description,
47
47
  calculate_total_size,
48
48
  get_autogen_type,
49
+ set_tfy_internal_metadata,
49
50
  )
50
51
  from truefoundry.ml.model_framework import (
51
52
  ModelFrameworkType,
@@ -544,8 +545,7 @@ def _log_model_version( # noqa: C901
544
545
  step = step or 0
545
546
  total_size = None
546
547
  metadata = metadata or {}
547
- if ARTIFACT_METADATA_TRUEFOUNDRY_KEY not in metadata:
548
- metadata[ARTIFACT_METADATA_TRUEFOUNDRY_KEY] = {}
548
+ metadata = set_tfy_internal_metadata(metadata)
549
549
 
550
550
  _validate_description(description)
551
551
  _validate_artifact_metadata(metadata)
@@ -7,7 +7,15 @@ from pathlib import Path, PureWindowsPath
7
7
  from typing import Any, Dict, List, Optional, Sequence, Tuple, Type, Union
8
8
 
9
9
  from truefoundry.ml.exceptions import MlFoundryException
10
- from truefoundry.ml.log_types.artifacts.constants import DESCRIPTION_MAX_LENGTH
10
+ from truefoundry.ml.log_types.artifacts.constants import (
11
+ ARTIFACT_METADATA_TRUEFOUNDRY_KEY,
12
+ DESCRIPTION_MAX_LENGTH,
13
+ TFY_INTERNAL_APPLICATION_FQN_ENV_VAR,
14
+ TFY_INTERNAL_APPLICATION_ID_ENV_VAR,
15
+ TFY_INTERNAL_APPLICATION_NAME_ENV_VAR,
16
+ TFY_INTERNAL_APPLICATION_VERSION_ENV_VAR,
17
+ TFY_INTERNAL_JOB_RUN_NAME_ENV_VAR,
18
+ )
11
19
  from truefoundry.pydantic_v1 import BaseModel
12
20
 
13
21
  logger = logging.getLogger(__name__)
@@ -228,3 +236,30 @@ def get_autogen_type(parent_type: Type[BaseModel], field_name: str) -> Type[Base
228
236
  return args[0]
229
237
 
230
238
  raise NotImplementedError(f"Cannot extract main type from {type_}")
239
+
240
+
241
+ def set_tfy_internal_metadata(metadata: Dict[str, Any]) -> Dict[str, Any]:
242
+ if ARTIFACT_METADATA_TRUEFOUNDRY_KEY not in metadata:
243
+ metadata[ARTIFACT_METADATA_TRUEFOUNDRY_KEY] = {}
244
+ elif not isinstance(metadata[ARTIFACT_METADATA_TRUEFOUNDRY_KEY], dict):
245
+ return metadata
246
+
247
+ tfy_metadata = metadata[ARTIFACT_METADATA_TRUEFOUNDRY_KEY]
248
+ created_by_key = "created_by"
249
+ if created_by_key not in tfy_metadata:
250
+ tfy_metadata[created_by_key] = {}
251
+ elif not isinstance(tfy_metadata[created_by_key], dict):
252
+ return metadata
253
+
254
+ tfy_internal_metadata = {
255
+ "application_id": os.environ.get(TFY_INTERNAL_APPLICATION_ID_ENV_VAR),
256
+ "application_fqn": os.environ.get(TFY_INTERNAL_APPLICATION_FQN_ENV_VAR),
257
+ "application_name": os.environ.get(TFY_INTERNAL_APPLICATION_NAME_ENV_VAR),
258
+ "application_version": os.environ.get(TFY_INTERNAL_APPLICATION_VERSION_ENV_VAR),
259
+ "job_run_name": os.environ.get(TFY_INTERNAL_JOB_RUN_NAME_ENV_VAR),
260
+ }
261
+ created_by_metadata = tfy_metadata[created_by_key]
262
+ for key, value in tfy_internal_metadata.items():
263
+ if key not in created_by_metadata and value is not None:
264
+ created_by_metadata[key] = value
265
+ return metadata
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: truefoundry
3
- Version: 0.11.7
3
+ Version: 0.11.8rc1
4
4
  Summary: TrueFoundry CLI
5
5
  Author-email: TrueFoundry Team <abhishek@truefoundry.com>
6
6
  Requires-Python: <3.14,>=3.8.1
@@ -364,12 +364,13 @@ truefoundry/ml/log_types/__init__.py,sha256=g4u4D4Jaj0aBK5GtrLV88-qThKZR9pSZ17vF
364
364
  truefoundry/ml/log_types/plot.py,sha256=LDh4uy6z2P_a2oPM2lc85c0lt8utVvunohzeMawFjZw,7572
365
365
  truefoundry/ml/log_types/pydantic_base.py,sha256=eBlw_AEyAz4iJKDP4zgJOCFWcldwQqpf7FADW1jzIQY,272
366
366
  truefoundry/ml/log_types/utils.py,sha256=xjJ21jdPScvFmw3TbVh5NCzbzJwaqiXJyiiT4xxX1EI,335
367
- truefoundry/ml/log_types/artifacts/artifact.py,sha256=dZj9UkRvvU5EN-HUiuLCPsmosSS0yyHM5JNWzaaIxMA,19887
368
- truefoundry/ml/log_types/artifacts/constants.py,sha256=uB2JPEqwTbqevkQv2QcEMROsm_4cVAl6s0QU1MLa8SQ,1088
367
+ truefoundry/ml/log_types/artifacts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
368
+ truefoundry/ml/log_types/artifacts/artifact.py,sha256=JiqdWp6XQe2S_zP96urXCjyfdxFlx6-GNBzH9Te7hTQ,19854
369
+ truefoundry/ml/log_types/artifacts/constants.py,sha256=LmY4syH4PzZShrFgSg04Pse5rQqkPf9Jdsm7daUwZb0,1440
369
370
  truefoundry/ml/log_types/artifacts/dataset.py,sha256=OgWIoT59AhMw8P01FfvUKbJ3EL6HQf_Xw8X4E3Ff5Sg,13172
370
371
  truefoundry/ml/log_types/artifacts/general_artifact.py,sha256=yr-SQ2fhUR_sE1MB5zoHHYpGC8tizH_-t3lhsxCAULU,2747
371
- truefoundry/ml/log_types/artifacts/model.py,sha256=kAiq7TDJ8RHG1Z4IN9mQD1dzKgmLCP1p0v_Yta9GHlM,24864
372
- truefoundry/ml/log_types/artifacts/utils.py,sha256=q_atcGzn3wfxItt3RABxjdris8b3njEFNuC8ihWqUSI,8088
372
+ truefoundry/ml/log_types/artifacts/model.py,sha256=oRX6bKb5tN4LjDFifeDpjv4z1-vHXf3Ma6-nkp7mN4M,24831
373
+ truefoundry/ml/log_types/artifacts/utils.py,sha256=FrnsumSB3SIqC_xpPp3RZijbIxgOFCQyuhSfcDaZoXI,9589
373
374
  truefoundry/ml/log_types/image/__init__.py,sha256=fcOq8yQnNj1rkLcPeIjLXBpdA1WIeiPsXOlAAvMxx7M,76
374
375
  truefoundry/ml/log_types/image/constants.py,sha256=wLtGEOA4T5fZHSlOXPuNDLX3lpbCtwlvGKPFk_1fah0,255
375
376
  truefoundry/ml/log_types/image/image.py,sha256=sa0tBHdyluC8bELXY16E0HgFrUDnDBxHrteix4BFXcs,12479
@@ -386,7 +387,7 @@ truefoundry/workflow/remote_filesystem/__init__.py,sha256=LQ95ViEjJ7Ts4JcCGOxMPs
386
387
  truefoundry/workflow/remote_filesystem/logger.py,sha256=em2l7D6sw7xTLDP0kQSLpgfRRCLpN14Qw85TN7ujQcE,1022
387
388
  truefoundry/workflow/remote_filesystem/tfy_signed_url_client.py,sha256=xcT0wQmQlgzcj0nP3tJopyFSVWT1uv3nhiTIuwfXYeg,12342
388
389
  truefoundry/workflow/remote_filesystem/tfy_signed_url_fs.py,sha256=nSGPZu0Gyd_jz0KsEE-7w_BmnTD8CVF1S8cUJoxaCbc,13305
389
- truefoundry-0.11.7.dist-info/METADATA,sha256=ydC2lFQf5iICc9uFTslsw4zS96saw6rWGDbcEup0zSc,2760
390
- truefoundry-0.11.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
391
- truefoundry-0.11.7.dist-info/entry_points.txt,sha256=xVjn7RMN-MW2-9f7YU-bBdlZSvvrwzhpX1zmmRmsNPU,98
392
- truefoundry-0.11.7.dist-info/RECORD,,
390
+ truefoundry-0.11.8rc1.dist-info/METADATA,sha256=X6K9nwRmNf159lyDFhJjugm5o0eurCHD0ISxo8D61Vs,2763
391
+ truefoundry-0.11.8rc1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
392
+ truefoundry-0.11.8rc1.dist-info/entry_points.txt,sha256=xVjn7RMN-MW2-9f7YU-bBdlZSvvrwzhpX1zmmRmsNPU,98
393
+ truefoundry-0.11.8rc1.dist-info/RECORD,,