truefoundry 0.10.5__py3-none-any.whl → 0.10.7rc1__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/__init__.py CHANGED
@@ -16,11 +16,13 @@ from truefoundry_sdk import (
16
16
  from truefoundry._client import client
17
17
  from truefoundry.common.warnings import (
18
18
  suppress_truefoundry_deprecation_warnings,
19
+ suppress_truefoundry_ml_autogen_warnings,
19
20
  surface_truefoundry_deprecation_warnings,
20
21
  )
21
22
  from truefoundry.deploy.core import login, logout
22
23
  from truefoundry.ml.prompt_utils import render_prompt
23
24
 
25
+ suppress_truefoundry_ml_autogen_warnings()
24
26
  surface_truefoundry_deprecation_warnings()
25
27
 
26
28
  __all__ = [
truefoundry/cli/util.py CHANGED
@@ -7,6 +7,7 @@ import questionary
7
7
  import rich_click as click
8
8
  from packaging.version import parse as parse_version
9
9
  from requests.exceptions import ConnectionError, Timeout
10
+ from rich.markup import escape
10
11
  from rich.padding import Padding
11
12
  from rich.panel import Panel
12
13
  from rich.table import Table
@@ -15,6 +16,14 @@ from truefoundry.cli.config import CliConfig
15
16
  from truefoundry.cli.console import console
16
17
  from truefoundry.common.exceptions import HttpRequestException
17
18
 
19
+ try:
20
+ import importlib.metadata as importlib_metadata
21
+ except ImportError:
22
+ import importlib_metadata
23
+
24
+
25
+ _CLICK_VERSION = None
26
+
18
27
 
19
28
  def setup_rich_click():
20
29
  click.rich_click.STYLE_ERRORS_SUGGESTION = "blue italic"
@@ -28,7 +37,10 @@ def handle_exception(exception):
28
37
  console.print_exception(show_locals=True)
29
38
  if isinstance(exception, HttpRequestException):
30
39
  print_dict_as_table_panel(
31
- {"Status Code": str(exception.status_code), "Error": exception.message},
40
+ {
41
+ "Status Code": str(exception.status_code),
42
+ "Error": escape(exception.message),
43
+ },
32
44
  title="Command Failed",
33
45
  border_style="red",
34
46
  )
@@ -57,7 +69,7 @@ def handle_exception(exception):
57
69
  console.print_exception(show_locals=False, max_frames=1)
58
70
  else:
59
71
  print_dict_as_table_panel(
60
- {"Error": str(exception)},
72
+ {"Error": escape(str(exception))},
61
73
  title="Command Failed",
62
74
  border_style="red",
63
75
  )
@@ -128,11 +140,17 @@ def unzip_package(path_to_package, destination):
128
140
  zip_ref.extractall(destination)
129
141
 
130
142
 
131
- def _prompt_if_no_value_and_supported(prompt: str, hide_input: bool = True):
132
- import click as _click
133
-
143
+ def prompt_if_no_value_and_supported(prompt: str, hide_input: bool = True):
144
+ global _CLICK_VERSION
134
145
  kwargs = {}
135
- if parse_version(_click.__version__).major >= 8:
146
+
147
+ if _CLICK_VERSION is None:
148
+ try:
149
+ _CLICK_VERSION = parse_version(importlib_metadata.version("click"))
150
+ except Exception:
151
+ _CLICK_VERSION = parse_version("0.0.0")
152
+
153
+ if _CLICK_VERSION.major >= 8:
136
154
  kwargs = {"prompt": prompt, "hide_input": hide_input, "prompt_required": False}
137
155
 
138
156
  return kwargs
@@ -19,3 +19,11 @@ def suppress_truefoundry_deprecation_warnings() -> None:
19
19
  "ignore",
20
20
  category=TrueFoundryDeprecationWarning,
21
21
  )
22
+
23
+
24
+ def suppress_truefoundry_ml_autogen_warnings() -> None:
25
+ """Mute TrueFoundry ML autogen warnings."""
26
+ warnings.filterwarnings(
27
+ "ignore",
28
+ module="truefoundry.ml._autogen",
29
+ )
@@ -2,8 +2,8 @@ import rich_click as click
2
2
 
3
3
  from truefoundry.cli.const import COMMAND_CLS
4
4
  from truefoundry.cli.util import (
5
- _prompt_if_no_value_and_supported,
6
5
  handle_exception_wrapper,
6
+ prompt_if_no_value_and_supported,
7
7
  )
8
8
  from truefoundry.common.constants import TFY_HOST_ENV_KEY
9
9
  from truefoundry.deploy.io.rich_output_callback import RichOutputCallBack
@@ -24,7 +24,7 @@ from truefoundry.deploy.lib.session import login
24
24
  "--api_key",
25
25
  type=click.STRING,
26
26
  default=None,
27
- **_prompt_if_no_value_and_supported(prompt="API Key", hide_input=True),
27
+ **prompt_if_no_value_and_supported(prompt="API Key", hide_input=True),
28
28
  )
29
29
  @handle_exception_wrapper
30
30
  def login_command(relogin: bool, host: str, api_key: str):
@@ -1,3 +1,4 @@
1
+ import copy
1
2
  import difflib
2
3
  from typing import Any, Dict, Optional
3
4
 
@@ -7,6 +8,25 @@ from rich.markdown import Markdown
7
8
  from rich.panel import Panel
8
9
 
9
10
 
11
+ def _normalize_manifest_for_diff(obj: Any) -> Any:
12
+ """
13
+ Normalize a manifest object for consistent diffing.
14
+ Only sorts the 'integrations' field by name
15
+ """
16
+ if isinstance(obj, dict):
17
+ _type = obj.get("type") or ""
18
+ integrations = obj.get("integrations")
19
+ if (
20
+ _type.startswith("provider-account/")
21
+ and isinstance(integrations, list)
22
+ and all(isinstance(item, dict) and "name" in item for item in integrations)
23
+ ):
24
+ result = copy.deepcopy(obj)
25
+ result["integrations"] = sorted(integrations, key=lambda x: x["name"])
26
+ return result
27
+ return obj
28
+
29
+
10
30
  def format_manifest_for_diff(manifest: Dict[str, Any]) -> str:
11
31
  """
12
32
  Format a manifest for diffing with consistent formatting.
@@ -17,7 +37,9 @@ def format_manifest_for_diff(manifest: Dict[str, Any]) -> str:
17
37
  Returns:
18
38
  A consistently formatted YAML string suitable for diffing
19
39
  """
20
- return yaml.dump(manifest, sort_keys=True, indent=2)
40
+ # Normalize the manifest for diffing
41
+ normalized_manifest = _normalize_manifest_for_diff(manifest)
42
+ return yaml.dump(normalized_manifest, sort_keys=True, indent=2)
21
43
 
22
44
 
23
45
  def generate_manifest_diff(
@@ -200,7 +200,7 @@ def _deploy_wait_handler( # noqa: C901
200
200
  time_elapsed = time.monotonic() - start_time
201
201
  if time_elapsed > total_timeout_time:
202
202
  logger.warning(
203
- "Polled server for %s secs. Disconnecting from server, the deployment will still continue.",
203
+ "Polled build logs for %s secs. Disconnecting from server, the deployment will still continue.",
204
204
  int(time_elapsed),
205
205
  )
206
206
  if socket and socket.connected:
@@ -29,7 +29,10 @@ from truefoundry.ml.artifact.truefoundry_artifact_repo import (
29
29
  MlFoundryArtifactsRepository,
30
30
  )
31
31
  from truefoundry.ml.exceptions import MlFoundryException
32
- from truefoundry.ml.log_types.artifacts.constants import INTERNAL_METADATA_PATH
32
+ from truefoundry.ml.log_types.artifacts.constants import (
33
+ ARTIFACT_METADATA_TRUEFOUNDRY_KEY,
34
+ INTERNAL_METADATA_PATH,
35
+ )
33
36
  from truefoundry.ml.log_types.artifacts.utils import (
34
37
  _get_src_dest_pairs,
35
38
  _validate_artifact_metadata,
@@ -455,6 +458,13 @@ def _log_artifact_version_helper(
455
458
  experiment_name=ml_repo
456
459
  ).experiment.experiment_id
457
460
 
461
+ metadata = metadata or {}
462
+ if ARTIFACT_METADATA_TRUEFOUNDRY_KEY not in metadata:
463
+ metadata[ARTIFACT_METADATA_TRUEFOUNDRY_KEY] = {}
464
+
465
+ _validate_description(description)
466
+ _validate_artifact_metadata(metadata)
467
+
458
468
  assert mlfoundry_artifacts_api is not None
459
469
  _create_artifact_response = mlfoundry_artifacts_api.create_artifact_version_post(
460
470
  create_artifact_version_request_dto=CreateArtifactVersionRequestDto(
@@ -465,7 +475,8 @@ def _log_artifact_version_helper(
465
475
  )
466
476
  version_id = _create_artifact_response.id
467
477
  artifact_storage_root = _create_artifact_response.artifact_storage_root
468
- total_size = 0
478
+ total_size = None
479
+
469
480
  if isinstance(artifact_dir, tempfile.TemporaryDirectory):
470
481
  # Source is of type TrueFoundryManagedSource
471
482
  source = TrueFoundryManagedSource(type="truefoundry", uri=artifact_storage_root)
@@ -502,6 +513,9 @@ def _log_artifact_version_helper(
502
513
  else:
503
514
  raise MlFoundryException("Invalid artifact_dir provided")
504
515
 
516
+ if total_size is not None and total_size > 0:
517
+ metadata[ARTIFACT_METADATA_TRUEFOUNDRY_KEY]["artifact_size"] = total_size
518
+
505
519
  artifact_manifest = None
506
520
  if artifact_type == ArtifactType.ARTIFACT:
507
521
  _source_cls = get_autogen_type(ArtifactManifest, "source")
@@ -509,11 +523,13 @@ def _log_artifact_version_helper(
509
523
  name=name,
510
524
  ml_repo=ml_repo,
511
525
  description=description,
512
- metadata=metadata or {},
526
+ metadata=metadata,
513
527
  source=_source_cls.from_dict(source.dict()),
514
528
  step=step,
529
+ run_id=run.run_id if run else None,
515
530
  )
516
531
  _manifest_cls = get_autogen_type(FinalizeArtifactVersionRequestDto, "manifest")
532
+
517
533
  finalize_artifact_version_request_dto = FinalizeArtifactVersionRequestDto(
518
534
  id=version_id,
519
535
  run_uuid=run.run_id if run else None,
@@ -31,3 +31,5 @@ model_version = ModelSchema(...) # or schema in dictionary format {{"features":
31
31
  model_version.update()
32
32
  ```
33
33
  """
34
+
35
+ ARTIFACT_METADATA_TRUEFOUNDRY_KEY = ".truefoundry"
@@ -36,6 +36,7 @@ from truefoundry.ml.enums import ModelFramework
36
36
  from truefoundry.ml.exceptions import MlFoundryException
37
37
  from truefoundry.ml.log_types.artifacts.artifact import BlobStorageDirectory
38
38
  from truefoundry.ml.log_types.artifacts.constants import (
39
+ ARTIFACT_METADATA_TRUEFOUNDRY_KEY,
39
40
  INTERNAL_METADATA_PATH,
40
41
  )
41
42
  from truefoundry.ml.log_types.artifacts.utils import (
@@ -547,6 +548,8 @@ def _log_model_version( # noqa: C901
547
548
  step = step or 0
548
549
  total_size = None
549
550
  metadata = metadata or {}
551
+ if ARTIFACT_METADATA_TRUEFOUNDRY_KEY not in metadata:
552
+ metadata[ARTIFACT_METADATA_TRUEFOUNDRY_KEY] = {}
550
553
 
551
554
  _validate_description(description)
552
555
  _validate_artifact_metadata(metadata)
@@ -617,6 +620,9 @@ def _log_model_version( # noqa: C901
617
620
  else:
618
621
  raise MlFoundryException("Invalid model_file_or_folder provided")
619
622
 
623
+ if total_size is not None and total_size > 0:
624
+ metadata[ARTIFACT_METADATA_TRUEFOUNDRY_KEY]["artifact_size"] = total_size
625
+
620
626
  _source_cls = get_autogen_type(ModelManifest, "source")
621
627
  # Auto fetch the framework & environment details if not provided
622
628
  framework = _ModelFramework.to_model_framework_type(framework)
@@ -636,6 +642,7 @@ def _log_model_version( # noqa: C901
636
642
  framework=Framework.from_dict(framework.dict()) if framework else None,
637
643
  environment=environment,
638
644
  step=step,
645
+ run_id=run.run_id if run else None,
639
646
  )
640
647
  _manifest_cls = get_autogen_type(FinalizeArtifactVersionRequestDto, "manifest")
641
648
  artifact_version_response = mlfoundry_artifacts_api.finalize_artifact_version_post(
truefoundry/version.py CHANGED
@@ -1,6 +1,9 @@
1
1
  try:
2
- import importlib.metadata
2
+ import importlib.metadata as importlib_metadata
3
+ except ImportError:
4
+ import importlib_metadata
3
5
 
4
- __version__ = importlib.metadata.version("truefoundry")
6
+ try:
7
+ __version__ = importlib_metadata.version("truefoundry")
5
8
  except Exception:
6
9
  __version__ = "NA"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: truefoundry
3
- Version: 0.10.5
3
+ Version: 0.10.7rc1
4
4
  Summary: TrueFoundry CLI
5
5
  Author-email: TrueFoundry Team <abhishek@truefoundry.com>
6
6
  Requires-Python: <3.14,>=3.8.1
@@ -1,8 +1,8 @@
1
- truefoundry/__init__.py,sha256=VVpO-Awh1v93VOURe7hank8QpeSPc0dCykwr14GOFsw,967
1
+ truefoundry/__init__.py,sha256=z9iNNI3mqVWkvzBXMRu096jXaYloYSN6rnlTbfmKcJE,1056
2
2
  truefoundry/_client.py,sha256=Y3qHi_Lg4Sx6GNvsjAHIoAfFr8PJnqgCrXmpNAI3ECg,1417
3
3
  truefoundry/logger.py,sha256=u-YCNjg5HBwE70uQcpjIG64Ghos-K2ulTWaxC03BSj4,714
4
4
  truefoundry/pydantic_v1.py,sha256=jSuhGtz0Mbk1qYu8jJ1AcnIDK4oxUsdhALc4spqstmM,345
5
- truefoundry/version.py,sha256=bqiT4Q-VWrTC6P4qfK43mez-Ppf-smWfrl6DcwV7mrw,137
5
+ truefoundry/version.py,sha256=xaf13PCnuYzw9j8IqtCn6XVEVbgBba6sLn_u_NLFfrs,214
6
6
  truefoundry/_ask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  truefoundry/_ask/cli.py,sha256=RDi1lwbUMYw0CnvaYG4o6o1phmnKjuggdQ5I8sllTlA,5812
8
8
  truefoundry/_ask/client.py,sha256=QWQRiDwmtIlLaZsyGcLZaQstYFzpmJeCRdATMapjL-8,18740
@@ -37,7 +37,7 @@ truefoundry/cli/config.py,sha256=f7z0_gmYZiNImB7Bxz0AnOlrxY2X4lFnX4jYW1I7NHQ,139
37
37
  truefoundry/cli/console.py,sha256=9-dMy4YPisCJQziRKTg8Qa0UJnOGl1soiUnJjsnLDvE,242
38
38
  truefoundry/cli/const.py,sha256=dVHPo1uAiDSSMXwXoT2mR5kNQjExT98QNVRz98Hz_Ts,510
39
39
  truefoundry/cli/display_util.py,sha256=9vzN3mbQqU6OhS7qRUiMRana4PTHa4sDTA0Hn7OVjCI,3108
40
- truefoundry/cli/util.py,sha256=sSKFZ5wGkForoRIiKD2gFlMyj9D1iinzdjQtMYJx8oU,5015
40
+ truefoundry/cli/util.py,sha256=kEjC20-n_jwxZV9jq-78CxDk4xAySxAoYIXTxZfJzLM,5423
41
41
  truefoundry/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
42
  truefoundry/common/auth_service_client.py,sha256=N3YxKlx63r6cPZqbgb2lqBOPI69ShB7D7RCIq4FSCjc,7949
43
43
  truefoundry/common/constants.py,sha256=nWd3Je71WmHEORRUTCupZy5fWADqEFftjYP6wiYhCIc,4627
@@ -51,7 +51,7 @@ truefoundry/common/session.py,sha256=d9l3TEBpqVP4mr4mTGY1qVxc815skzMlNNdw14otg34
51
51
  truefoundry/common/storage_provider_utils.py,sha256=yURhMw8k0FLFvaviRHDiifhvc6GnuQwGMC9Qd2uM440,10934
52
52
  truefoundry/common/types.py,sha256=BMJFCsR1lPJAw66IQBSvLyV4I6o_x5oj78gVsUa9si8,188
53
53
  truefoundry/common/utils.py,sha256=j3QP0uOsaGD_VmDDR68JTwoYE1okkAq6OqpVkzVf48Q,6424
54
- truefoundry/common/warnings.py,sha256=rs6BHwk7imQYedo07iwh3TWEOywAR3Lqhj0AY4khByg,504
54
+ truefoundry/common/warnings.py,sha256=xDMhR_-ZGC40Ycaj6nlFb5MYPexn8WbKCHd4FlflTXQ,705
55
55
  truefoundry/deploy/__init__.py,sha256=PVbGPU9S3-dTFn5LvLwaEnfsp2RrGT9iiM7_15kOV84,2837
56
56
  truefoundry/deploy/python_deploy_codegen.py,sha256=k19_m5DGsUyjOUCSKwIVP8vDna2sq01tHABsUfoVpW4,8019
57
57
  truefoundry/deploy/_autogen/models.py,sha256=8j_y0Yp8k8Sjj7iVtZDHeuxq9kDvD0xI8-iFnbf0370,73571
@@ -78,7 +78,7 @@ truefoundry/deploy/cli/commands/deploy_init_command.py,sha256=g-jBfrEmhZ0TDWsyqP
78
78
  truefoundry/deploy/cli/commands/get_command.py,sha256=bR8tAjQQhimzaTQ57L6BPJwcxQ_SGWCF5CqHDpxgG90,837
79
79
  truefoundry/deploy/cli/commands/k8s_exec_credential_command.py,sha256=EknpdufMAEnjSGMG7a-Jj7tkoiS5zmbJRREafb14Alw,2160
80
80
  truefoundry/deploy/cli/commands/kubeconfig_command.py,sha256=WTYCv_itwUb6kwlsGkq3hwn5i-Gjd7cVrbBhoLZDnJI,3146
81
- truefoundry/deploy/cli/commands/login_command.py,sha256=kbEs4leyMYK2kz7L9ql2PXVgLVmCYo-LWtnntVVYLFY,1065
81
+ truefoundry/deploy/cli/commands/login_command.py,sha256=GdFrH2zgFFrSZi35p6MPDkQi4h4ScYX5UqDnyhe1cLg,1063
82
82
  truefoundry/deploy/cli/commands/logout_command.py,sha256=u3kfrEp0ETbrz40KjD4GCC3XEZ5YRAlrca_Df4U_mk0,536
83
83
  truefoundry/deploy/cli/commands/logs_command.py,sha256=osl2z5VaIceB9sYa6GtwsuyAPZKcw-A0oVEt3g1f62Q,4140
84
84
  truefoundry/deploy/cli/commands/patch_application_command.py,sha256=aRTHu2OmxQd7j9iE0RavsFCkCILp0rGh4DJO51Oij5I,2591
@@ -95,7 +95,7 @@ truefoundry/deploy/io/output_callback.py,sha256=_q79-dpFxnU762VPM9Ryy2gnuJnIotZ2
95
95
  truefoundry/deploy/io/rich_output_callback.py,sha256=m99RodkILXCgy_LJujEcojbpW1tL0H5Fjb0lqe6X_PQ,958
96
96
  truefoundry/deploy/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
97
  truefoundry/deploy/lib/const.py,sha256=Wg0GDnfFu-g1fJr4lU80NH2ULw0R0dYjV7LnW-PbOeM,173
98
- truefoundry/deploy/lib/diff_utils.py,sha256=SszFgzBQ7GPwpgJKWjLDT-IQ_AcMB9mW8OP27Uj37HE,2627
98
+ truefoundry/deploy/lib/diff_utils.py,sha256=J1sAf5O4rHNHS_MOkcB0CyaeQFtU_ALI-wd--g8ZDZA,3417
99
99
  truefoundry/deploy/lib/logs_utils.py,sha256=SQxRv3jDDmgHdOUMhlMaAPGYskybnBUMpst7QU_i_sc,1469
100
100
  truefoundry/deploy/lib/messages.py,sha256=8424kj3kqCyDCX5Nr2WJZZ_UEutPoaSs_y2f9-O4yy8,1001
101
101
  truefoundry/deploy/lib/session.py,sha256=fLdgR6ZDp8-hFl5NTON4ngnWLsMzGxvKtfpDOOw_7lo,4963
@@ -113,7 +113,7 @@ truefoundry/deploy/lib/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
113
113
  truefoundry/deploy/lib/model/entity.py,sha256=eBfA4trO0jUuDy0wifiu2rB_HryZrx5Kf-tRMwIQ_9g,8716
114
114
  truefoundry/deploy/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
115
  truefoundry/deploy/v2/lib/__init__.py,sha256=WEiVMZXOVljzEE3tpGJil14liIn_PCDoACJ6b3tZ6sI,188
116
- truefoundry/deploy/v2/lib/deploy.py,sha256=HfSUdAS3gSpFAFtV0Mq9LscfpkaXqA2LHW4VXqk9Y0g,12707
116
+ truefoundry/deploy/v2/lib/deploy.py,sha256=Ltm7cpIW14IbmEsR3EAIeWQUch2Z6HLej7heuFLRAnE,12711
117
117
  truefoundry/deploy/v2/lib/deploy_workflow.py,sha256=G5BzMIbap8pgDX1eY-TITruUxQdkKhYtBmRwLL6lDeY,14342
118
118
  truefoundry/deploy/v2/lib/deployable_patched_models.py,sha256=mUi-OjPf7bc8rzfrPLdFb79LKuDq7F36RxL4V-AXebs,6830
119
119
  truefoundry/deploy/v2/lib/models.py,sha256=ogc1UYs1Z2nBdGSKCrde9sk8d0GxFKMkem99uqO5CmM,1148
@@ -360,11 +360,11 @@ truefoundry/ml/log_types/__init__.py,sha256=g4u4D4Jaj0aBK5GtrLV88-qThKZR9pSZ17vF
360
360
  truefoundry/ml/log_types/plot.py,sha256=LDh4uy6z2P_a2oPM2lc85c0lt8utVvunohzeMawFjZw,7572
361
361
  truefoundry/ml/log_types/pydantic_base.py,sha256=eBlw_AEyAz4iJKDP4zgJOCFWcldwQqpf7FADW1jzIQY,272
362
362
  truefoundry/ml/log_types/utils.py,sha256=xjJ21jdPScvFmw3TbVh5NCzbzJwaqiXJyiiT4xxX1EI,335
363
- truefoundry/ml/log_types/artifacts/artifact.py,sha256=qaBHO-5ffBvghmhRQ5pperp8rm3T8HYSrkecpCrK_4I,19594
364
- truefoundry/ml/log_types/artifacts/constants.py,sha256=qKxQ5mMvJE4j83BvGW3qNTKunxCiBg_EEjTdgbgJtyE,1036
363
+ truefoundry/ml/log_types/artifacts/artifact.py,sha256=N1M1a7Oq9fY_7s1PT7uv64s_Ek62Lj-JsPBrWdRKpdY,20050
364
+ truefoundry/ml/log_types/artifacts/constants.py,sha256=uB2JPEqwTbqevkQv2QcEMROsm_4cVAl6s0QU1MLa8SQ,1088
365
365
  truefoundry/ml/log_types/artifacts/dataset.py,sha256=UpLXoqhfONqp6YG4N8lDrDe-XhTK6ZZ9Lwg8mI0UZn4,13113
366
366
  truefoundry/ml/log_types/artifacts/general_artifact.py,sha256=yr-SQ2fhUR_sE1MB5zoHHYpGC8tizH_-t3lhsxCAULU,2747
367
- truefoundry/ml/log_types/artifacts/model.py,sha256=kEuqnQhuO9Hmz8bqHEzrbdPn_Vt7H-Tansd0rmplyWE,24696
367
+ truefoundry/ml/log_types/artifacts/model.py,sha256=0_2EGwj8VYRJ3g8Ti2k75s-OiC1Tu-7Ay9U1_QYG_iw,25027
368
368
  truefoundry/ml/log_types/artifacts/utils.py,sha256=q_atcGzn3wfxItt3RABxjdris8b3njEFNuC8ihWqUSI,8088
369
369
  truefoundry/ml/log_types/image/__init__.py,sha256=fcOq8yQnNj1rkLcPeIjLXBpdA1WIeiPsXOlAAvMxx7M,76
370
370
  truefoundry/ml/log_types/image/constants.py,sha256=wLtGEOA4T5fZHSlOXPuNDLX3lpbCtwlvGKPFk_1fah0,255
@@ -381,7 +381,7 @@ truefoundry/workflow/remote_filesystem/__init__.py,sha256=LQ95ViEjJ7Ts4JcCGOxMPs
381
381
  truefoundry/workflow/remote_filesystem/logger.py,sha256=em2l7D6sw7xTLDP0kQSLpgfRRCLpN14Qw85TN7ujQcE,1022
382
382
  truefoundry/workflow/remote_filesystem/tfy_signed_url_client.py,sha256=xcT0wQmQlgzcj0nP3tJopyFSVWT1uv3nhiTIuwfXYeg,12342
383
383
  truefoundry/workflow/remote_filesystem/tfy_signed_url_fs.py,sha256=nSGPZu0Gyd_jz0KsEE-7w_BmnTD8CVF1S8cUJoxaCbc,13305
384
- truefoundry-0.10.5.dist-info/METADATA,sha256=t8-jiTcLLtOLh7QQQwl_FXqgG0GJdttfh8b06Org1iE,2505
385
- truefoundry-0.10.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
386
- truefoundry-0.10.5.dist-info/entry_points.txt,sha256=xVjn7RMN-MW2-9f7YU-bBdlZSvvrwzhpX1zmmRmsNPU,98
387
- truefoundry-0.10.5.dist-info/RECORD,,
384
+ truefoundry-0.10.7rc1.dist-info/METADATA,sha256=T0oUo-QR8p-afUbJyLte32yJXkdc5w4-iMytXtBv3iI,2508
385
+ truefoundry-0.10.7rc1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
386
+ truefoundry-0.10.7rc1.dist-info/entry_points.txt,sha256=xVjn7RMN-MW2-9f7YU-bBdlZSvvrwzhpX1zmmRmsNPU,98
387
+ truefoundry-0.10.7rc1.dist-info/RECORD,,