truefoundry 0.4.5__py3-none-any.whl → 0.5.0rc1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (40) hide show
  1. truefoundry/ml/__init__.py +36 -0
  2. truefoundry/ml/autogen/client/__init__.py +29 -6
  3. truefoundry/ml/autogen/client/api/__init__.py +3 -3
  4. truefoundry/ml/autogen/client/api/deprecated_api.py +7 -7
  5. truefoundry/ml/autogen/client/api/generate_code_snippet_api.py +526 -0
  6. truefoundry/ml/autogen/client/models/__init__.py +26 -3
  7. truefoundry/ml/autogen/client/models/command.py +152 -0
  8. truefoundry/ml/autogen/client/models/create_workflow_task_config_request_dto.py +72 -0
  9. truefoundry/ml/autogen/client/models/external_model_source.py +3 -2
  10. truefoundry/ml/autogen/client/models/fast_ai_framework.py +75 -0
  11. truefoundry/ml/autogen/client/models/framework.py +250 -14
  12. truefoundry/ml/autogen/client/models/gluon_framework.py +74 -0
  13. truefoundry/ml/autogen/client/models/{upload_model_source.py → h2_o_framework.py} +11 -11
  14. truefoundry/ml/autogen/client/models/keras_framework.py +74 -0
  15. truefoundry/ml/autogen/client/models/light_gbm_framework.py +75 -0
  16. truefoundry/ml/autogen/client/models/model_version_manifest.py +1 -1
  17. truefoundry/ml/autogen/client/models/onnx_framework.py +74 -0
  18. truefoundry/ml/autogen/client/models/paddle_framework.py +75 -0
  19. truefoundry/ml/autogen/client/models/py_torch_framework.py +75 -0
  20. truefoundry/ml/autogen/client/models/sklearn_framework.py +75 -0
  21. truefoundry/ml/autogen/client/models/source.py +9 -32
  22. truefoundry/ml/autogen/client/models/spa_cy_framework.py +74 -0
  23. truefoundry/ml/autogen/client/models/stats_models_framework.py +75 -0
  24. truefoundry/ml/autogen/client/models/{tensorflow_framework.py → tensor_flow_framework.py} +10 -9
  25. truefoundry/ml/autogen/client/models/transformers_framework.py +3 -2
  26. truefoundry/ml/autogen/client/models/trigger_job_run_config_request_dto.py +90 -0
  27. truefoundry/ml/autogen/client/models/trigger_job_run_config_response_dto.py +71 -0
  28. truefoundry/ml/autogen/client/models/truefoundry_model_source.py +5 -3
  29. truefoundry/ml/autogen/client/models/xg_boost_framework.py +75 -0
  30. truefoundry/ml/autogen/client_README.md +22 -5
  31. truefoundry/ml/autogen/entities/artifacts.py +19 -2
  32. truefoundry/ml/log_types/artifacts/model.py +167 -177
  33. truefoundry/ml/mlfoundry_api.py +47 -18
  34. truefoundry/ml/mlfoundry_run.py +27 -12
  35. truefoundry/ml/model_framework.py +169 -0
  36. {truefoundry-0.4.5.dist-info → truefoundry-0.5.0rc1.dist-info}/METADATA +1 -1
  37. {truefoundry-0.4.5.dist-info → truefoundry-0.5.0rc1.dist-info}/RECORD +39 -23
  38. truefoundry/ml/autogen/client/api/python_deployment_config_api.py +0 -201
  39. {truefoundry-0.4.5.dist-info → truefoundry-0.5.0rc1.dist-info}/WHEEL +0 -0
  40. {truefoundry-0.4.5.dist-info → truefoundry-0.5.0rc1.dist-info}/entry_points.txt +0 -0
@@ -20,7 +20,7 @@ from urllib.parse import urljoin, urlsplit
20
20
 
21
21
  from truefoundry import version
22
22
  from truefoundry.common.utils import relogin_error_message
23
- from truefoundry.ml import constants, enums
23
+ from truefoundry.ml import constants
24
24
  from truefoundry.ml.autogen.client import ( # type: ignore[attr-defined]
25
25
  ArtifactType,
26
26
  DeleteRunRequest,
@@ -40,13 +40,17 @@ from truefoundry.ml.autogen.client import ( # type: ignore[attr-defined]
40
40
  UpdateRunRequestDto,
41
41
  )
42
42
  from truefoundry.ml.entities import Metric
43
- from truefoundry.ml.enums import RunStatus
43
+ 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
47
  from truefoundry.ml.log_types.artifacts.artifact import ArtifactPath, ArtifactVersion
48
48
  from truefoundry.ml.log_types.artifacts.general_artifact import _log_artifact_version
49
- from truefoundry.ml.log_types.artifacts.model import ModelVersion, _log_model_version
49
+ from truefoundry.ml.log_types.artifacts.model import (
50
+ BlobStorageModelDirectory,
51
+ ModelVersion,
52
+ _log_model_version,
53
+ )
50
54
  from truefoundry.ml.logger import logger
51
55
  from truefoundry.ml.run_utils import ParamsType, flatten_dict, process_params
52
56
  from truefoundry.ml.session import ACTIVE_RUNS, _get_api_client, get_active_session
@@ -61,6 +65,8 @@ if TYPE_CHECKING:
61
65
  import matplotlib
62
66
  import plotly
63
67
 
68
+ from truefoundry.ml import ModelFrameworkType
69
+
64
70
 
65
71
  def _ensure_not_deleted(method):
66
72
  @functools.wraps(method)
@@ -920,13 +926,13 @@ class MlFoundryRun:
920
926
  self,
921
927
  *,
922
928
  name: str,
923
- model_file_or_folder: str,
924
- framework: Optional[Union[enums.ModelFramework, str]],
929
+ model_file_or_folder: Union[str, BlobStorageModelDirectory],
925
930
  additional_files: Sequence[Tuple[Union[str, Path], Optional[str]]] = (),
926
931
  description: Optional[str] = None,
927
932
  metadata: Optional[Dict[str, Any]] = None,
928
933
  step: int = 0,
929
934
  progress: Optional[bool] = None,
935
+ framework: Optional[Union[str, ModelFramework, "ModelFrameworkType"]] = None,
930
936
  ) -> ModelVersion:
931
937
  # TODO (chiragjn): Document mapping of framework to list of valid model save kwargs
932
938
  # TODO (chiragjn): Add more examples
@@ -939,12 +945,21 @@ class MlFoundryRun:
939
945
  name (str): Name of the model. If a model with this name already exists under the current ML Repo,
940
946
  the logged model will be added as a new version under that `name`. If no models exist with the given
941
947
  `name`, the given model will be logged as version 1.
942
- model_file_or_folder (str): Path to either a single file or a folder containing model files. This folder
943
- is usually created using serialization methods of libraries or frameworks e.g. `joblib.dump`,
944
- `model.save_pretrained(...)`, `torch.save(...)`, `model.save(...)`
945
- framework (Union[enums.ModelFramework, str]): Model Framework. Ex:- pytorch, sklearn, tensorflow etc.
946
- The full list of supported frameworks can be found in `truefoundry.ml.enums.ModelFramework`.
947
- Can also be `None` when `model` is `None`.
948
+ model_file_or_folder (Union[str, BlobStorageModelDirectory]):
949
+ str:
950
+ Path to either a single file or a folder containing model files.
951
+ This folder is typically created using serialization methods from libraries or frameworks,
952
+ e.g., `joblib.dump`, `model.save_pretrained(...)`, `torch.save(...)`, or `model.save(...)`.
953
+ BlobStorageModelDirectory:
954
+ uri (str): URI to the model file or folder in a storage integration associated with the specified ML Repo.
955
+ The model files or folder must reside within the same storage integration as the specified ML Repo.
956
+ Accepted URI formats include `s3://integration-bucket-name/prefix/path/to/model` or `gs://integration-bucket-name/prefix/path/to/model`.
957
+ If the URI points to a model in a different storage integration, an error will be raised indicating "Invalid source URI."
958
+ framework (Optional[Union[ModelFramework, ModelFrameworkType]]): Framework used for model serialization.
959
+ Supported frameworks values (ModelFrameworkType) can be imported from `from truefoundry.ml import *`.
960
+ Supported frameworks can be found in `truefoundry.ml.enums.ModelFramework`.
961
+ Can also be `None` if the framework is not known or not supported.
962
+ **Deprecated**: Prefer `ModelFrameworkType` over `enums.ModelFramework`.
948
963
  additional_files (Sequence[Tuple[Union[str, Path], Optional[str]]], optional): A list of pairs
949
964
  of (source path, destination path) to add additional files and folders
950
965
  to the model version contents. The first member of the pair should be a file or directory path
@@ -1064,12 +1079,12 @@ class MlFoundryRun:
1064
1079
  run=self,
1065
1080
  name=name,
1066
1081
  model_file_or_folder=model_file_or_folder,
1067
- framework=framework,
1068
1082
  additional_files=additional_files,
1069
1083
  description=description,
1070
1084
  metadata=metadata,
1071
1085
  step=step,
1072
1086
  progress=progress,
1087
+ framework=framework,
1073
1088
  )
1074
1089
  logger.info(f"Logged model successfully with fqn {model_version.fqn!r}")
1075
1090
  return model_version
@@ -0,0 +1,169 @@
1
+ import warnings
2
+ from typing import Literal, Optional, Union, get_args
3
+
4
+ from truefoundry.ml import ModelFramework
5
+ from truefoundry.ml.autogen.entities import artifacts as autogen_artifacts
6
+ from truefoundry.pydantic_v1 import BaseModel, Field
7
+
8
+
9
+ class FastAIFramework(autogen_artifacts.FastAIFramework):
10
+ """FastAI model Framework"""
11
+
12
+ type: Literal["fastai"] = "fastai"
13
+
14
+
15
+ class GluonFramework(autogen_artifacts.GluonFramework):
16
+ """Gluon model Framework"""
17
+
18
+ type: Literal["gluon"] = "gluon"
19
+
20
+
21
+ class H2OFramework(autogen_artifacts.H2OFramework):
22
+ """H2O model Framework"""
23
+
24
+ type: Literal["h2o"] = "h2o"
25
+
26
+
27
+ class KerasFramework(autogen_artifacts.KerasFramework):
28
+ """Keras model Framework"""
29
+
30
+ type: Literal["keras"] = "keras"
31
+
32
+
33
+ class LightGBMFramework(autogen_artifacts.LightGBMFramework):
34
+ """LightGBM model Framework"""
35
+
36
+ type: Literal["lightgbm"] = "lightgbm"
37
+
38
+
39
+ class ONNXFramework(autogen_artifacts.ONNXFramework):
40
+ """ONNX model Framework"""
41
+
42
+ type: Literal["onnx"] = "onnx"
43
+
44
+
45
+ class PaddleFramework(autogen_artifacts.PaddleFramework):
46
+ """Paddle model Framework"""
47
+
48
+ type: Literal["paddle"] = "paddle"
49
+
50
+
51
+ class PyTorchFramework(autogen_artifacts.PyTorchFramework):
52
+ """PyTorch model Framework"""
53
+
54
+ type: Literal["pytorch"] = "pytorch"
55
+
56
+
57
+ class SklearnFramework(autogen_artifacts.SklearnFramework):
58
+ """Sklearn model Framework"""
59
+
60
+ type: Literal["sklearn"] = "sklearn"
61
+
62
+
63
+ class SpaCyFramework(autogen_artifacts.SpaCyFramework):
64
+ """SpaCy model Framework"""
65
+
66
+ type: Literal["spacy"] = "spacy"
67
+
68
+
69
+ class StatsModelsFramework(autogen_artifacts.StatsModelsFramework):
70
+ """StatsModels model Framework"""
71
+
72
+ type: Literal["statsmodels"] = "statsmodels"
73
+
74
+
75
+ class TensorFlowFramework(autogen_artifacts.TensorFlowFramework):
76
+ """TensorFlow model Framework"""
77
+
78
+ type: Literal["tensorflow"] = "tensorflow"
79
+
80
+
81
+ class TransformersFramework(autogen_artifacts.TransformersFramework):
82
+ """Transformers model Framework"""
83
+
84
+ type: Literal["transformers"] = "transformers"
85
+
86
+
87
+ class XGBoostFramework(autogen_artifacts.XGBoostFramework):
88
+ """XGBoost model Framework"""
89
+
90
+ type: Literal["xgboost"] = "xgboost"
91
+
92
+
93
+ # Union of all the model frameworks
94
+
95
+
96
+ ModelFrameworkType = Union[
97
+ FastAIFramework,
98
+ GluonFramework,
99
+ H2OFramework,
100
+ KerasFramework,
101
+ LightGBMFramework,
102
+ ONNXFramework,
103
+ PaddleFramework,
104
+ PyTorchFramework,
105
+ SklearnFramework,
106
+ SpaCyFramework,
107
+ StatsModelsFramework,
108
+ TensorFlowFramework,
109
+ TransformersFramework,
110
+ XGBoostFramework,
111
+ ]
112
+
113
+
114
+ class _ModelFramework(BaseModel):
115
+ __root__: ModelFrameworkType = Field(discriminator="type")
116
+
117
+ @classmethod
118
+ def to_model_framework_type(
119
+ cls,
120
+ framework: Optional[Union[str, ModelFramework, "ModelFrameworkType"]] = None,
121
+ ) -> Optional["ModelFrameworkType"]:
122
+ """
123
+ Converts a ModelFramework or string representation to a ModelFrameworkType object.
124
+
125
+ Args:
126
+ framework (Optional[Union[str, ModelFramework, ModelFrameworkType]]): ModelFrameworkType or equivalent input.
127
+ Supported frameworks can be found in `truefoundry.ml.enums.ModelFramework`.
128
+ May be `None` if the framework is unknown or unsupported.
129
+ **Deprecated**: Prefer passing a `ModelFrameworkType` instance.
130
+
131
+ Returns:
132
+ ModelFrameworkType corresponding to the input, or None if the input is None.
133
+ """
134
+ if framework is None:
135
+ return None
136
+
137
+ # Issue a deprecation warning for str and ModelFramework types
138
+ if isinstance(framework, (str, ModelFramework)):
139
+ warnings.warn(
140
+ "Passing a string or ModelFramework Enum is deprecated. Please use a ModelFrameworkType object.",
141
+ DeprecationWarning,
142
+ stacklevel=2,
143
+ )
144
+
145
+ # Convert string to ModelFramework
146
+ if isinstance(framework, str):
147
+ framework = ModelFramework(framework)
148
+
149
+ # Convert ModelFramework to ModelFrameworkType
150
+ if isinstance(framework, ModelFramework):
151
+ if framework == ModelFramework.UNKNOWN:
152
+ return None
153
+ return cls.parse_obj({"type": framework.value}).__root__
154
+
155
+ # Directly return if already a ModelFrameworkType
156
+ if isinstance(framework, get_args(ModelFrameworkType)):
157
+ return framework
158
+
159
+ raise ValueError(
160
+ "framework must be a string, ModelFramework enum, or ModelFrameworkType object"
161
+ )
162
+
163
+ @classmethod
164
+ def from_dict(cls, obj: dict) -> ModelFrameworkType:
165
+ """Create an instance of ModelFramework from a dict"""
166
+ if obj is None:
167
+ return None
168
+
169
+ return cls.parse_obj(obj).__root__
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: truefoundry
3
- Version: 0.4.5
3
+ Version: 0.5.0rc1
4
4
  Summary: Truefoundry CLI
5
5
  Author: Abhishek Choudhary
6
6
  Author-email: abhishek@truefoundry.com
@@ -123,26 +123,26 @@ 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=2A1l7pgqbVRt3cRW_0Lxg92hyJEkMxkCUh1EFprrmc0,942
126
+ truefoundry/ml/__init__.py,sha256=ZMT9C7q9YnwfnfruI0xipizSo1OO__f8Ao-oE65DZyg,1836
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=B6Z0oUmE-S9YqUCDRpKDuTyNWX2Fmx4es7nWx7Bhy10,17600
131
- truefoundry/ml/autogen/client/api/__init__.py,sha256=3sMSljMIS3UHYeF0BcNvrPPx6VbBSRt_1IfDn-13Kyc,752
130
+ truefoundry/ml/autogen/client/__init__.py,sha256=0-I7KuPudFU1I1Y4qPbkvAK54E7wzjwIdjnVB57fWGA,18958
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
- truefoundry/ml/autogen/client/api/deprecated_api.py,sha256=JCQ39Y3VHdgJ1zM4XVabdTl6QpOHtQFjh04XUb6mN9A,24218
133
+ truefoundry/ml/autogen/client/api/deprecated_api.py,sha256=0qooHNzm5mgweKUEDjnESHPeUqrlzuNEsDJwW9Cm9Vs,24232
134
134
  truefoundry/ml/autogen/client/api/experiments_api.py,sha256=mRKS8qGzcFJUpTWjfQoFYm2KI8jTHxBzA0l_foSCLM0,74880
135
+ truefoundry/ml/autogen/client/api/generate_code_snippet_api.py,sha256=C8iABP-pYIyIoTlL8PFi3ZBG_6B_dkQf09eErNeoj7A,22316
135
136
  truefoundry/ml/autogen/client/api/health_api.py,sha256=IAPhRAo9CLUT5ipVR1fCf-qDx57UR0wg5ekhtUl8lug,11554
136
137
  truefoundry/ml/autogen/client/api/metrics_api.py,sha256=q3L38eD-2hu4_9YvcSdnWDYXD2V8il-X9reinOAABek,14908
137
138
  truefoundry/ml/autogen/client/api/mlfoundry_artifacts_api.py,sha256=smLST3wBZnMw0VrTDR5y1IuJvzV6n89nLWqUMB5mavY,313547
138
- truefoundry/ml/autogen/client/api/python_deployment_config_api.py,sha256=8P53aegaaZp1LEV9_GDNSCofgxRXP3Atyprc2bUvvpI,8348
139
139
  truefoundry/ml/autogen/client/api/run_artifacts_api.py,sha256=x-vVnY2LEFChZxiiFauswRWwFz6Qqh30PKXjzuTvxmc,8799
140
140
  truefoundry/ml/autogen/client/api/runs_api.py,sha256=-aghrZ2VYuZOw_vBtOzWDsnK7Ji29oZQxK2CLRgyo2w,119232
141
141
  truefoundry/ml/autogen/client/api_client.py,sha256=8qg-WpadDuKgbRt5yABJ4wVS4IRxd5e7rbwe8zBW2wA,28851
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=PNukskNa-cv5uP25VmJXrZAZygCoyPis4LkMVLRA7M4,16216
145
+ truefoundry/ml/autogen/client/models/__init__.py,sha256=ZNjoIgoxY6uxmChlRP7q5ea1g2EZvNARDvHKIYujGXU,17580
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
@@ -165,6 +165,7 @@ truefoundry/ml/autogen/client/models/body_get_search_runs_get.py,sha256=aGu5Ah2Q
165
165
  truefoundry/ml/autogen/client/models/chat_prompt.py,sha256=PFpvfDGWLSUWYTHEFAOtScJeTYjUUziQD_Meii2D0gw,5974
166
166
  truefoundry/ml/autogen/client/models/chat_prompt_messages_inner.py,sha256=nk4hWTl1i3IfFbXVE6cSC-z-QxW4m_YAF05wXdUYYCc,5751
167
167
  truefoundry/ml/autogen/client/models/columns_dto.py,sha256=bjSjp-DA2YdjohahziETrfMkKNWFAjDL7XQgSUhvNJA,2070
168
+ truefoundry/ml/autogen/client/models/command.py,sha256=q6yFdBsXZkMFCK8DfNx1JmW8WIHY6scvfQL9NUmQWik,4790
168
169
  truefoundry/ml/autogen/client/models/content.py,sha256=vns4BcEnkkZissELyrvak7ZYPyn-lrRcdAGmdYsIBoU,4945
169
170
  truefoundry/ml/autogen/client/models/content1.py,sha256=Sh22V-dSQr8zz2N2BgqeTtauE_9dijwydAjpW6uH1z0,4951
170
171
  truefoundry/ml/autogen/client/models/content2.py,sha256=T55JENSS5E9HRkefccw24L7PB-rNp3VP1ppXfV7BNHk,5920
@@ -184,6 +185,7 @@ truefoundry/ml/autogen/client/models/create_python_deployment_config_request_dto
184
185
  truefoundry/ml/autogen/client/models/create_python_deployment_config_response_dto.py,sha256=5fnCJ7ybEcRA03s8ZLGdt1w8_Xz5nt6-PPmvA6Yxt60,2051
185
186
  truefoundry/ml/autogen/client/models/create_run_request_dto.py,sha256=OqhHezsPGygl5m3BlEHmKGlCNf2t5FUFQJLwdmHfggg,2841
186
187
  truefoundry/ml/autogen/client/models/create_run_response_dto.py,sha256=cFzIkhbiB_IEmQSx1asNAzPMN-MzCBtqWj2PJ3oTLTM,2169
188
+ truefoundry/ml/autogen/client/models/create_workflow_task_config_request_dto.py,sha256=u-jNJgSeUUCbvyXq9Tg0TUKYh1dTRsrLktXWIkvOoWA,2193
187
189
  truefoundry/ml/autogen/client/models/dataset_dto.py,sha256=V3dIdK93YQ8mtolY8Onz2N17HQYm3bLUMn98dVg7tGo,4100
188
190
  truefoundry/ml/autogen/client/models/dataset_response_dto.py,sha256=5h3eHpiG4Zzqn5Hm0WpZgyXGjxujKem42_8YnGq5KLo,2205
189
191
  truefoundry/ml/autogen/client/models/delete_artifact_versions_request_dto.py,sha256=JF2dQuEe_W1c2ox9zZDER_pZSTbKwSnns8hIfG5o7oA,1905
@@ -196,12 +198,13 @@ truefoundry/ml/autogen/client/models/experiment_dto.py,sha256=bl4-Hp1EHl8CEKgWq6
196
198
  truefoundry/ml/autogen/client/models/experiment_id_request_dto.py,sha256=ZMH827n_UTpDI30UnkuOam-4ANBKCDgocIzI8StxFR8,1891
197
199
  truefoundry/ml/autogen/client/models/experiment_response_dto.py,sha256=wuflV6_f8PQq061-wU2GzNY4BZi8SG8ARCIbSQN1oT4,2268
198
200
  truefoundry/ml/autogen/client/models/experiment_tag_dto.py,sha256=nEpCkeZ9ficIDkjmmLfkJeNNokd-Rhgr-cepPWG6L3M,1902
199
- truefoundry/ml/autogen/client/models/external_model_source.py,sha256=Vzn1sbjMtQYuMEVjd9hxH0TupGG7vwzqadwE4l9vzs8,2286
201
+ truefoundry/ml/autogen/client/models/external_model_source.py,sha256=WE3JoHmaCDIeoHpcSOtkDsNocBoaTMzqiIuAiq6qIro,2336
202
+ truefoundry/ml/autogen/client/models/fast_ai_framework.py,sha256=pl--nyTJF687SNmX0v1ICISmUCVc6ekF8VH_Rl1kHEQ,2170
200
203
  truefoundry/ml/autogen/client/models/feature_dto.py,sha256=XM7fF71P_bYP3UlO1ILjnD3DJNpf2tGwAWbrkQyvyA4,1924
201
204
  truefoundry/ml/autogen/client/models/feature_value_type.py,sha256=3ZKxxEfrrWk8ePlV7n11wa-FdDH0SRLyHRqSvIU7F-M,732
202
205
  truefoundry/ml/autogen/client/models/file_info_dto.py,sha256=7oc8venicsFVk8zT9wHNhHnZGtFkFlqimFnS7ozGL9k,2156
203
206
  truefoundry/ml/autogen/client/models/finalize_artifact_version_request_dto.py,sha256=tArvzRPp80PpfJ4CoMwwaKqPAfzonq-8C-yKBEjs9co,3877
204
- truefoundry/ml/autogen/client/models/framework.py,sha256=Z_91ZrPWB22mHnKWBgbXHhY5NzHdmfTATBd2iQPNIaU,5131
207
+ truefoundry/ml/autogen/client/models/framework.py,sha256=W_KrqH1qKRvlrssCCWFIlmPaeAw0eiM6VqS3pbdlMXU,14720
205
208
  truefoundry/ml/autogen/client/models/get_experiment_response_dto.py,sha256=FhJpoUeRbZV1s1KR3Y07Kv6U4enLbbgdpGbguT9us0A,2923
206
209
  truefoundry/ml/autogen/client/models/get_latest_run_log_response_dto.py,sha256=g5NG252VzjGHiA-w5nhxmZxGrowJO9XCHDQTjf8y2KE,2266
207
210
  truefoundry/ml/autogen/client/models/get_metric_history_response.py,sha256=rTchO8o4sjGsNaZj8TW-VGtGGxsOBjUGzgaAWNtBZ-k,2428
@@ -214,12 +217,16 @@ truefoundry/ml/autogen/client/models/get_signed_urls_for_dataset_read_request_dt
214
217
  truefoundry/ml/autogen/client/models/get_signed_urls_for_dataset_read_response_dto.py,sha256=1EQ33wOq7VpAlt7o-5XCBZ2mpn5GXKrOUfULbp4gA2g,2627
215
218
  truefoundry/ml/autogen/client/models/get_signed_urls_for_dataset_write_response_dto.py,sha256=tRud_0Qrr4DtXD1SMSnouVlxrV6WaL5FG2mG626CFZ0,2635
216
219
  truefoundry/ml/autogen/client/models/get_tenant_id_response_dto.py,sha256=zEG9rogifl100cOqshYDNJE-faxGF3ayRb1RNWCtaXo,2142
220
+ truefoundry/ml/autogen/client/models/gluon_framework.py,sha256=YIc4x1A7kW4F9Bgltr6mU0UgL2sxJMSd8qyZPPtq900,2149
221
+ truefoundry/ml/autogen/client/models/h2_o_framework.py,sha256=DrJgVIP62OgyE0YdV22gD1K4u6JHVfRITunI5moj5mk,2125
217
222
  truefoundry/ml/autogen/client/models/http_validation_error.py,sha256=bU-uUlz_qeFba3iHdBT7cHjLu6WZ-JmImYqgZ-kCvxM,2466
218
223
  truefoundry/ml/autogen/client/models/image_content_part.py,sha256=_DXwAxeuagwRWMkDxaz--i_OitlyNkPd3puewVV_fwM,2716
219
224
  truefoundry/ml/autogen/client/models/image_url.py,sha256=TN8iEdBUmtKdTFlApUodaC4o6X_Ggd3OSOKVPv7laJE,2170
220
225
  truefoundry/ml/autogen/client/models/internal_metadata.py,sha256=6OizrIzA3QxlEnwNFXCZGOMJuUDSYHctl_30q27uBDI,6232
226
+ truefoundry/ml/autogen/client/models/keras_framework.py,sha256=7TyZHDE3A__fF3lCX-scmCCfLgHpFwBhr0YSLNCoDBA,2149
221
227
  truefoundry/ml/autogen/client/models/latest_run_log_dto.py,sha256=wE8T8bANTb9u14Jv7DNyKWekZiUAvrzvTcE_H1cRhn4,2326
222
228
  truefoundry/ml/autogen/client/models/library_name.py,sha256=JKmQMgEj6RcmSv68THAcs1gmh3P3CNrgJ_Rh5VWu9Fs,823
229
+ truefoundry/ml/autogen/client/models/light_gbm_framework.py,sha256=PVW9r0FnYxvk5LRRw5ioOflMJZ1ZR19K1uVmdEHqe38,2194
223
230
  truefoundry/ml/autogen/client/models/list_artifact_versions_request_dto.py,sha256=nODOEA-tT8XEJKgUXXjvlzT5ecEwz1b9zu-l3RgQl1o,3622
224
231
  truefoundry/ml/autogen/client/models/list_artifact_versions_response_dto.py,sha256=G560h_rGn6-X-cxpuddGU8Fp2eBKXvC3RWcJZdZQJBE,2940
225
232
  truefoundry/ml/autogen/client/models/list_artifacts_request_dto.py,sha256=o3Jz3VsAa3aJB3YZ6NI6t8TLLoMGeg64jYYZibeo3Oc,2982
@@ -253,16 +260,19 @@ truefoundry/ml/autogen/client/models/model_dto.py,sha256=TUO74MDqe8XCVJBB2O7Tiqi
253
260
  truefoundry/ml/autogen/client/models/model_response_dto.py,sha256=osrTxfygkuhxWj6SkRBALrSnFVPH4LSK6qTufTeZuJg,2163
254
261
  truefoundry/ml/autogen/client/models/model_schema_dto.py,sha256=ElEPK7fwuf3eiohNBBHJyl-nhNqzGnDLzZVzuQl-xC0,2620
255
262
  truefoundry/ml/autogen/client/models/model_version_dto.py,sha256=6kI1Z2czYAieJZBaVvcV8Y2eeNEUDyjPuTLHTdyWnOE,7282
256
- truefoundry/ml/autogen/client/models/model_version_manifest.py,sha256=yJN2C_ETddLAeSR4wDuzV3--F2MyiN-XzIJlNayG6Ok,3945
263
+ truefoundry/ml/autogen/client/models/model_version_manifest.py,sha256=Jd8oJj9-awzg-jP_hhLEMH3PSXir2p5Kc5o0YEB9ZRA,3957
257
264
  truefoundry/ml/autogen/client/models/model_version_response_dto.py,sha256=D6XOCyggxqTkbePuypqYSHYh1PYeDv7R_J32q61sDM0,2320
258
265
  truefoundry/ml/autogen/client/models/multi_part_upload_dto.py,sha256=Ckq405vud8RQmMyKCJQJBlW5iXO7Y2mlgo8eVkiMvxg,3738
259
266
  truefoundry/ml/autogen/client/models/multi_part_upload_response_dto.py,sha256=VjH0kvl7rMjgDHjYGHnsh7KsZ5-qn-k3ksdGLJ49nIM,2431
260
267
  truefoundry/ml/autogen/client/models/multi_part_upload_storage_provider.py,sha256=BA-a-LUi8Q8wTmrExiidRWmCQUAmAqn5qOTwgQM1K6U,796
261
268
  truefoundry/ml/autogen/client/models/notify_artifact_version_failure_dto.py,sha256=M5PaBiH0KYigTpmg6Rm6n2nM6I9x6pLjI-oNqY4006o,1897
269
+ truefoundry/ml/autogen/client/models/onnx_framework.py,sha256=-z-S50V11nploHrPCoY0Mq4KQCrM8tY5R_rEc1p5v0g,2137
262
270
  truefoundry/ml/autogen/client/models/openapi_spec.py,sha256=jWD8fO4Rjx7NXg-kvJ1KEDT7ysHZcYbQ-EnEk3MxMqs,4961
271
+ truefoundry/ml/autogen/client/models/paddle_framework.py,sha256=cTTyFLaXHjSo8Kc-zU_fDBF4nAcXu74CV0AlV4JwYkc,2176
263
272
  truefoundry/ml/autogen/client/models/param_dto.py,sha256=A8ysdVT16LZDB78Cd18ot2wf6emWNGKPv70IQ6wcEak,1787
264
273
  truefoundry/ml/autogen/client/models/parameters.py,sha256=u3DF-XvyZ9w1GgEJ2WCQyYX6RXbkBw7B2yWKTFjVfP4,2736
265
274
  truefoundry/ml/autogen/client/models/prediction_type.py,sha256=ayeIx_mdlOYXV82yoHoTQEYS9mIzRcTuYB9V0wIe_GE,722
275
+ truefoundry/ml/autogen/client/models/py_torch_framework.py,sha256=2sctpFx43y2C_fOh246M7KKHGlujz41KPJJWnOL4hJ0,2182
266
276
  truefoundry/ml/autogen/client/models/resolve_agent_app_response_dto.py,sha256=sggWYqC5R_BtH99xne3G_lgZYuyJjT2wozwDtvfB_Vs,2360
267
277
  truefoundry/ml/autogen/client/models/restore_run_request_dto.py,sha256=7iBbil4YfaOHJwP0ifPHp-D1Kt-ZiSRjAaVuU7_idhw,1825
268
278
  truefoundry/ml/autogen/client/models/run_data_dto.py,sha256=iPFm5f4x2ymRqea6EDZlcjWYN_-f3t9JZckwskXSTKY,3533
@@ -277,31 +287,36 @@ truefoundry/ml/autogen/client/models/search_runs_response_dto.py,sha256=u0l11v7p
277
287
  truefoundry/ml/autogen/client/models/set_experiment_tag_request_dto.py,sha256=nrmi_NxLD1fI2gwlpdqFSMnBS11gRkjS4_GQFHgBcXs,2118
278
288
  truefoundry/ml/autogen/client/models/set_tag_request_dto.py,sha256=IRgAdMcWBxmjNV6nZJej4pcNfLmZwrelEZ3otwt7eeE,2144
279
289
  truefoundry/ml/autogen/client/models/signed_url_dto.py,sha256=9oHoXBj07xTdc04rqOqJO3eOjQWXCyWPhfHg-6qX60w,1897
280
- truefoundry/ml/autogen/client/models/source.py,sha256=OqcgjSiQwji_jpfcL29HKlAebURPChuQPqmQzd7CSPk,5961
290
+ truefoundry/ml/autogen/client/models/sklearn_framework.py,sha256=8-GvfwN5fHVDiOXPvVa9rBeG0VEavwwTsfEp3Nl0uO8,2187
291
+ truefoundry/ml/autogen/client/models/source.py,sha256=8vQ6Fcky8kYAQiATuphxuhxKGRhH4WmcTiUa9N8iZQM,5095
292
+ truefoundry/ml/autogen/client/models/spa_cy_framework.py,sha256=JM1DLF8JL4c7-JZN-dQX_7NF8jIS6RP-mEk1uoWQpaU,2149
293
+ truefoundry/ml/autogen/client/models/stats_models_framework.py,sha256=INndD-nZFAfRbKZXss4erx4xtotb_hlRFlEvitKrIzQ,2230
281
294
  truefoundry/ml/autogen/client/models/stop.py,sha256=UlAjRWI6Gjc92D2UME6qRAIfd6GoDI3VBWYkJqgixmU,4760
282
295
  truefoundry/ml/autogen/client/models/store_run_logs_request_dto.py,sha256=Cfm95a9T4fDiARBJ9vd3n9Pv7QI69TSVKWi0AG_cmvs,2591
283
296
  truefoundry/ml/autogen/client/models/subject.py,sha256=gG1pRl6lPEI1_td2sb752vJeKMKgLWDaoFwepnS4zIQ,2415
284
297
  truefoundry/ml/autogen/client/models/subject_type.py,sha256=TOhgDmWSy67NjBCTSbwtF2-cBBB2-FoLJVFDVpJRrsQ,710
285
298
  truefoundry/ml/autogen/client/models/system_message.py,sha256=yxRCJPl36FGv2zrsuHbLown88wmnrIpWlKEVRf9WgFQ,2801
286
- truefoundry/ml/autogen/client/models/tensorflow_framework.py,sha256=8F0CHJj_J0V57GePBuMjSSLmCRuwIot10ghywlBFIeQ,2251
299
+ truefoundry/ml/autogen/client/models/tensor_flow_framework.py,sha256=lvABZqmVED7Hg7aDZ7bovN6usG_TZCWI4B8Ew6NAymw,2218
287
300
  truefoundry/ml/autogen/client/models/text.py,sha256=HAIK-w_TxB1kXGvVNK1d2cweoQi-GJ9d-0QSZl21u68,4862
288
301
  truefoundry/ml/autogen/client/models/text_content_part.py,sha256=fRQu22tiV3rDKmTgVZSLHX-cMcha3q53W8qWNCk5wmU,2492
289
- truefoundry/ml/autogen/client/models/transformers_framework.py,sha256=5n4h3IvcCRr4Dca9Sv1EGUp07rEgv3c41U47NmGTsu0,2916
290
- truefoundry/ml/autogen/client/models/truefoundry_model_source.py,sha256=kKxDCkLKTLho2SkVO0df6DoD8czwKbaacbjNRqBMhgY,2396
302
+ truefoundry/ml/autogen/client/models/transformers_framework.py,sha256=ialS6K3F64iLSe19qVXeuXNctEq6IzMFi7cBhP00bdg,2903
303
+ truefoundry/ml/autogen/client/models/trigger_job_run_config_request_dto.py,sha256=1HtO6zfW6Ulq8Gm_UL0YqVrse0795vZkMxgCQ0GKD9w,2864
304
+ truefoundry/ml/autogen/client/models/trigger_job_run_config_response_dto.py,sha256=P35xzE8MyS_HtxCcXC9fZORPX2wbf93LbCZCRggkQxw,2144
305
+ truefoundry/ml/autogen/client/models/truefoundry_model_source.py,sha256=Jc3sP2n05kQz92nHaU5RCcwP9bfeIBFUuxfvwdojub8,2418
291
306
  truefoundry/ml/autogen/client/models/update_artifact_version_request_dto.py,sha256=AhXj2afmrKskBi5uMT0-mSywZyz3g17lFE3uMRQ5pEM,2246
292
307
  truefoundry/ml/autogen/client/models/update_dataset_request_dto.py,sha256=MF-rjJGUP6sDZVH3xP4Q8AEC9CV2PXEO9cXrR6yK57A,2182
293
308
  truefoundry/ml/autogen/client/models/update_experiment_request_dto.py,sha256=QE_kZzTDdiXKtQ2U-zbI_gb5vxS5Yv9YupYvD22RkFs,2198
294
309
  truefoundry/ml/autogen/client/models/update_model_version_request_dto.py,sha256=0xWqHHflnpO8FyT79psPiPBIGW6Aiovs-b6H7sjMSDQ,3589
295
310
  truefoundry/ml/autogen/client/models/update_run_request_dto.py,sha256=fn4VB4Zlllr6Bt_l3aYkkHxAkU9w7vtcqu4iw8BvQWY,2318
296
311
  truefoundry/ml/autogen/client/models/update_run_response_dto.py,sha256=wolIFiihGZCBBkuj7mJEYCmGAOqDLFo_bNLcH4LeXSo,2231
297
- truefoundry/ml/autogen/client/models/upload_model_source.py,sha256=zn2AigQc8uhJiGXdE57X-K4pLPrIK9TuD8g7zNt09-U,2103
298
312
  truefoundry/ml/autogen/client/models/url.py,sha256=zMyOmdVkp1ANnQnc9GrHt42xlVwES7FTjrpOp_OtHqo,4953
299
313
  truefoundry/ml/autogen/client/models/user_message.py,sha256=6QOmKT_SDfAVZA8V3Bzofm7_c-Qznn4KsE12NmHG4FM,2783
300
314
  truefoundry/ml/autogen/client/models/validation_error.py,sha256=mFjwoc8g2-Usu1HXZhOQKQ4TGvLy4lwCzk8dHrJ69aA,2597
301
315
  truefoundry/ml/autogen/client/models/validation_error_loc_inner.py,sha256=nThJ5Gmy8W2Wok-ZOI4sK7uRe1BAkLS0qzq-XZbq8zs,4915
316
+ truefoundry/ml/autogen/client/models/xg_boost_framework.py,sha256=kXijWcmEd5mc6Rks0mYQLqgYp1v7bxp31HQAmaJLZ3s,2182
302
317
  truefoundry/ml/autogen/client/rest.py,sha256=9goba8qHjQuVx5O_yRaTKu7PvBnb7r7swfy3dwuTEgk,14281
303
- truefoundry/ml/autogen/client_README.md,sha256=ehPzJCsvWR_ghMgIcP-UXMG4AgqcJI6cbpuz1rcsqME,33871
304
- truefoundry/ml/autogen/entities/artifacts.py,sha256=yXLrEsX28aCxpgRA8x8YM5M55LLlLiWoJqEWRAZu6_Y,16147
318
+ truefoundry/ml/autogen/client_README.md,sha256=h8EUUiMl1vHri3Jrt0PjkFD-CoXAf5WXSgG4iRqlouc,35564
319
+ truefoundry/ml/autogen/entities/artifacts.py,sha256=qc4XW3X8BR-zE32tNbCBMJ5kc_aPehDOBhyugvAYY-8,16646
305
320
  truefoundry/ml/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
306
321
  truefoundry/ml/cli/cli.py,sha256=ckBcjUpqfhgrPE1okqT_G2iouOLt-0KjpLhHp2YdVFU,256
307
322
  truefoundry/ml/cli/commands/__init__.py,sha256=diDUiRUX4l6TtNLI4iF-ZblczkELM7FRViJ-8gGNJQY,82
@@ -321,7 +336,7 @@ truefoundry/ml/log_types/artifacts/artifact.py,sha256=n2EwAupOigDcUXQQFIIESRqp7z
321
336
  truefoundry/ml/log_types/artifacts/constants.py,sha256=qKxQ5mMvJE4j83BvGW3qNTKunxCiBg_EEjTdgbgJtyE,1036
322
337
  truefoundry/ml/log_types/artifacts/dataset.py,sha256=a4dxd2EN8p7Ci-cLGGiDOboN3t0395_XhWE1dmTw1Q4,13112
323
338
  truefoundry/ml/log_types/artifacts/general_artifact.py,sha256=_EOlNGMg2PFjlevlD6LEOsaQBBwRWs60PkzJases6tE,3927
324
- truefoundry/ml/log_types/artifacts/model.py,sha256=Q4Phy8-5E8hDxHC-Zg-V1uj_-V3p1z6Wh6JC-zot0Vs,21912
339
+ truefoundry/ml/log_types/artifacts/model.py,sha256=fcMc63BKqcbjUygpA6w0SFuoWZDvyxJvlPHyh7bNKv4,21161
325
340
  truefoundry/ml/log_types/artifacts/model_extras.py,sha256=TIE73bLKfwIVzNiVcjmaZ841A70BHBwu4XAM6ZAQRFI,1045
326
341
  truefoundry/ml/log_types/artifacts/utils.py,sha256=3FVOYlfcvZiW8vTbMe7Ft1cjNPR2GW7J69M3dyAY-qc,6299
327
342
  truefoundry/ml/log_types/image/__init__.py,sha256=fcOq8yQnNj1rkLcPeIjLXBpdA1WIeiPsXOlAAvMxx7M,76
@@ -333,8 +348,9 @@ truefoundry/ml/log_types/plot.py,sha256=HuYvvRA5r8V0xAIuuqMME2IHb9d3SfGHUiuEkOP3
333
348
  truefoundry/ml/log_types/pydantic_base.py,sha256=eBlw_AEyAz4iJKDP4zgJOCFWcldwQqpf7FADW1jzIQY,272
334
349
  truefoundry/ml/log_types/utils.py,sha256=xjJ21jdPScvFmw3TbVh5NCzbzJwaqiXJyiiT4xxX1EI,335
335
350
  truefoundry/ml/logger.py,sha256=VT-BF3BnBYTWVq87O58F0c8uXMu94gYzsiFlGY3_7Ao,458
336
- truefoundry/ml/mlfoundry_api.py,sha256=lVsD7WBqAZMNSEauKeiF1jCg_Fnt6IFEPRr4mwn1IMU,60820
337
- truefoundry/ml/mlfoundry_run.py,sha256=rNJl130iJkpjW3MNoe5-d_J9VJJQBqWHEJCfYeiZCbE,45123
351
+ truefoundry/ml/mlfoundry_api.py,sha256=eLzbXPSaUWBuIZQKld0r30StOHD-dXiS9zQL_Wq4Zk4,62037
352
+ truefoundry/ml/mlfoundry_run.py,sha256=FDTEBflyKRA7nP8qCm834NyYjpyy9540J_WnagB25oI,46195
353
+ truefoundry/ml/model_framework.py,sha256=YCdRD31rQbPQK-ehNLf1YHuOcPgserFjdPgrrB2Twqg,4737
338
354
  truefoundry/ml/run_utils.py,sha256=0W208wSLUrbdfk2pjNcZlkUi9bNxG2JORqoe-5rVqHI,2423
339
355
  truefoundry/ml/session.py,sha256=F83GTC5WwGBjnJ69Ct8MqMnlutYc56JCc6YhEY1Wl-A,5394
340
356
  truefoundry/ml/validation_utils.py,sha256=XBSUd9OoyriWJpT3M5LKz17iWY3yVMr3hM5vdaVjtf0,12082
@@ -355,7 +371,7 @@ truefoundry/workflow/remote_filesystem/tfy_signed_url_client.py,sha256=ln3zx72jM
355
371
  truefoundry/workflow/remote_filesystem/tfy_signed_url_fs.py,sha256=Hf6Dk6Fu6P7DqsK5ULgraf9DStjgigf-kjaRAMBW-RU,8680
356
372
  truefoundry/workflow/task.py,sha256=ToitYiKcNzFCtOVQwz1W8sRjbR97eVS7vQBdbgUQtKg,1779
357
373
  truefoundry/workflow/workflow.py,sha256=WaTqUjhwfAXDWu4E5ehuwAxrCbDJkoAf1oWmR2E9Qy0,4575
358
- truefoundry-0.4.5.dist-info/METADATA,sha256=4uBMT6WkAHiYAMwlDg0cvYEzYqwbxLMBrsgCHKQXZVo,3098
359
- truefoundry-0.4.5.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
360
- truefoundry-0.4.5.dist-info/entry_points.txt,sha256=TXvUxQkI6zmqJuycPsyxEIMr3oqfDjgrWj0m_9X12x4,95
361
- truefoundry-0.4.5.dist-info/RECORD,,
374
+ truefoundry-0.5.0rc1.dist-info/METADATA,sha256=6CRqjcwshn9tc9sCWlfOEWa8w5UB8dt25Gz0kyzNkAw,3101
375
+ truefoundry-0.5.0rc1.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
376
+ truefoundry-0.5.0rc1.dist-info/entry_points.txt,sha256=TXvUxQkI6zmqJuycPsyxEIMr3oqfDjgrWj0m_9X12x4,95
377
+ truefoundry-0.5.0rc1.dist-info/RECORD,,