truefoundry 0.4.4rc9__py3-none-any.whl → 0.4.4rc11__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 (37) hide show
  1. truefoundry/common/tfy_signed_url_client.py +11 -6
  2. truefoundry/common/utils.py +3 -2
  3. truefoundry/ml/autogen/client/__init__.py +24 -3
  4. truefoundry/ml/autogen/client/api/experiments_api.py +0 -137
  5. truefoundry/ml/autogen/client/api/mlfoundry_artifacts_api.py +2 -0
  6. truefoundry/ml/autogen/client/models/__init__.py +24 -3
  7. truefoundry/ml/autogen/client/models/artifact_dto.py +9 -0
  8. truefoundry/ml/autogen/client/models/artifact_version_dto.py +26 -0
  9. truefoundry/ml/autogen/client/models/artifact_version_serialization_format.py +34 -0
  10. truefoundry/ml/autogen/client/models/create_artifact_version_response_dto.py +8 -2
  11. truefoundry/ml/autogen/client/models/create_run_request_dto.py +1 -10
  12. truefoundry/ml/autogen/client/models/dataset_dto.py +9 -0
  13. truefoundry/ml/autogen/client/models/experiment_dto.py +14 -3
  14. truefoundry/ml/autogen/client/models/external_model_source.py +79 -0
  15. truefoundry/ml/autogen/client/models/finalize_artifact_version_request_dto.py +11 -0
  16. truefoundry/ml/autogen/client/models/framework.py +154 -0
  17. truefoundry/ml/autogen/client/models/library_name.py +35 -0
  18. truefoundry/ml/autogen/client/models/model_dto.py +9 -0
  19. truefoundry/ml/autogen/client/models/model_version_dto.py +26 -0
  20. truefoundry/ml/autogen/client/models/model_version_manifest.py +119 -0
  21. truefoundry/ml/autogen/client/models/run_info_dto.py +10 -1
  22. truefoundry/ml/autogen/client/models/source.py +177 -0
  23. truefoundry/ml/autogen/client/models/subject.py +79 -0
  24. truefoundry/ml/autogen/client/models/subject_type.py +34 -0
  25. truefoundry/ml/autogen/client/models/tensorflow_framework.py +74 -0
  26. truefoundry/ml/autogen/client/models/transformers_framework.py +90 -0
  27. truefoundry/ml/autogen/client/models/truefoundry_model_source.py +79 -0
  28. truefoundry/ml/autogen/client/models/update_model_version_request_dto.py +11 -0
  29. truefoundry/ml/autogen/client/models/upload_model_source.py +74 -0
  30. truefoundry/ml/autogen/client_README.md +12 -2
  31. truefoundry/ml/autogen/entities/artifacts.py +236 -4
  32. truefoundry/ml/mlfoundry_api.py +0 -1
  33. {truefoundry-0.4.4rc9.dist-info → truefoundry-0.4.4rc11.dist-info}/METADATA +1 -1
  34. {truefoundry-0.4.4rc9.dist-info → truefoundry-0.4.4rc11.dist-info}/RECORD +36 -25
  35. truefoundry/ml/autogen/client/models/list_seed_experiments_response_dto.py +0 -81
  36. {truefoundry-0.4.4rc9.dist-info → truefoundry-0.4.4rc11.dist-info}/WHEEL +0 -0
  37. {truefoundry-0.4.4rc9.dist-info → truefoundry-0.4.4rc11.dist-info}/entry_points.txt +0 -0
@@ -92,7 +92,7 @@ class SignedURLClient:
92
92
  retries=self.max_retries, backoff_factor=self.retry_backoff_factor
93
93
  )
94
94
 
95
- @log_time
95
+ @log_time(prefix=LOG_PREFIX)
96
96
  def _make_request(
97
97
  self,
98
98
  endpoint: str,
@@ -111,6 +111,7 @@ class SignedURLClient:
111
111
  except RequestException as e:
112
112
  raise RuntimeError(f"Error during request to {url}: {e}") from e
113
113
 
114
+ @log_time(prefix=LOG_PREFIX)
114
115
  def _make_server_api_call(
115
116
  self,
116
117
  endpoint: SignedURLServerEndpoint,
@@ -124,7 +125,7 @@ class SignedURLClient:
124
125
  endpoint=endpoint_with_params, method="GET", payload=None, headers=headers
125
126
  )
126
127
 
127
- @log_time
128
+ @log_time(prefix=LOG_PREFIX)
128
129
  def _upload_data(self, signed_url: str, data: Any) -> None:
129
130
  """
130
131
  Upload data to the specified storage path using a signed URL.
@@ -144,6 +145,7 @@ class SignedURLClient:
144
145
  except Exception as e:
145
146
  raise RuntimeError(f"Failed to upload data: {e}") from e
146
147
 
148
+ @log_time(prefix=LOG_PREFIX)
147
149
  def upload_from_bytes(self, data: bytes, storage_uri: str) -> str:
148
150
  """Upload bytes to the specified storage path using a signed URL."""
149
151
  signed_object = self._make_server_api_call(
@@ -155,7 +157,7 @@ class SignedURLClient:
155
157
  self._upload_data(pre_signed_object_dto.signed_url, data)
156
158
  return storage_uri
157
159
 
158
- @log_time
160
+ @log_time(prefix=LOG_PREFIX)
159
161
  def upload(self, file_path: str, storage_uri: str) -> str:
160
162
  """Upload a file to the specified storage path using a signed URL."""
161
163
  logger.info(f"{LOG_PREFIX} Uploading {file_path} to {storage_uri}")
@@ -169,7 +171,7 @@ class SignedURLClient:
169
171
  self._upload_data(pre_signed_object_dto.signed_url, file)
170
172
  return storage_uri
171
173
 
172
- @log_time
174
+ @log_time(prefix=LOG_PREFIX)
173
175
  def _download_file(
174
176
  self, signed_url: str, local_path: Optional[str] = None
175
177
  ) -> Optional[bytes]:
@@ -191,7 +193,7 @@ class SignedURLClient:
191
193
  except RequestException as e:
192
194
  raise RuntimeError(f"Failed to download file from {signed_url}: {e}") from e
193
195
 
194
- @log_time
196
+ @log_time(prefix=LOG_PREFIX)
195
197
  def download(self, storage_uri: str, local_path: str) -> Optional[str]:
196
198
  """Download a file from the specified storage path to a local path using a signed URL."""
197
199
  logger.info(f"{LOG_PREFIX} Downloading {storage_uri} to {local_path}")
@@ -204,6 +206,7 @@ class SignedURLClient:
204
206
  self._download_file(presigned_object.signed_url, local_path)
205
207
  return local_path
206
208
 
209
+ @log_time(prefix=LOG_PREFIX)
207
210
  def download_to_bytes(self, storage_uri: str) -> bytes:
208
211
  """Download a file from the specified storage path and return it as bytes."""
209
212
  response = self._make_server_api_call(
@@ -214,6 +217,7 @@ class SignedURLClient:
214
217
  presigned_object = SignedURLAPIResponseDto.parse_obj(response)
215
218
  return self._download_file(presigned_object.signed_url)
216
219
 
220
+ @log_time(prefix=LOG_PREFIX)
217
221
  def exists(self, uri: str) -> bool:
218
222
  """Check if a file exists at the specified path."""
219
223
  response = self._make_server_api_call(
@@ -223,6 +227,7 @@ class SignedURLClient:
223
227
  )
224
228
  return SignedURLExistsAPIResponseDto.parse_obj(response).exists
225
229
 
230
+ @log_time(prefix=LOG_PREFIX)
226
231
  def is_directory(self, uri: str) -> bool:
227
232
  """Check if the specified URI is a directory."""
228
233
  response = self._make_server_api_call(
@@ -236,7 +241,7 @@ class SignedURLClient:
236
241
  logger.info(f"{LOG_PREFIX} Path {uri} is a directory: {is_directory}")
237
242
  return is_directory
238
243
 
239
- @log_time
244
+ @log_time(prefix=LOG_PREFIX)
240
245
  def list_files(
241
246
  self, path: str, detail: bool = False, max_results: int = 1000
242
247
  ) -> Union[List[FileInfo], List[str]]:
@@ -10,6 +10,7 @@ from truefoundry.common.constants import (
10
10
  MLFOUNDRY_SERVER_RELATIVE_PATH,
11
11
  TFY_HOST_ENV_KEY,
12
12
  )
13
+ from truefoundry.logger import logger
13
14
  from truefoundry.pydantic_v1 import BaseSettings
14
15
 
15
16
  T = TypeVar("T")
@@ -104,7 +105,7 @@ def resolve_tfy_host(tfy_host: Optional[str] = None) -> str:
104
105
  return tfy_host
105
106
 
106
107
 
107
- def log_time(func):
108
+ def log_time(func, prefix: str = ""):
108
109
  """Decorator to log the time taken by I/O operations."""
109
110
 
110
111
  @wraps(func)
@@ -112,7 +113,7 @@ def log_time(func):
112
113
  start_time = time.time()
113
114
  result = func(*args, **kwargs)
114
115
  elapsed_time = time.time() - start_time
115
- print(f"{func.__name__} took {elapsed_time:.2f} seconds")
116
+ logger.info(f"{prefix} {func.__name__} took {elapsed_time:.2f} seconds")
116
117
  return result
117
118
 
118
119
  return wrapper
@@ -64,6 +64,9 @@ from truefoundry.ml.autogen.client.models.artifact_version_dto import ArtifactVe
64
64
  from truefoundry.ml.autogen.client.models.artifact_version_response_dto import (
65
65
  ArtifactVersionResponseDto,
66
66
  )
67
+ from truefoundry.ml.autogen.client.models.artifact_version_serialization_format import (
68
+ ArtifactVersionSerializationFormat,
69
+ )
67
70
  from truefoundry.ml.autogen.client.models.artifact_version_status import (
68
71
  ArtifactVersionStatus,
69
72
  )
@@ -162,12 +165,16 @@ from truefoundry.ml.autogen.client.models.experiment_response_dto import (
162
165
  ExperimentResponseDto,
163
166
  )
164
167
  from truefoundry.ml.autogen.client.models.experiment_tag_dto import ExperimentTagDto
168
+ from truefoundry.ml.autogen.client.models.external_model_source import (
169
+ ExternalModelSource,
170
+ )
165
171
  from truefoundry.ml.autogen.client.models.feature_dto import FeatureDto
166
172
  from truefoundry.ml.autogen.client.models.feature_value_type import FeatureValueType
167
173
  from truefoundry.ml.autogen.client.models.file_info_dto import FileInfoDto
168
174
  from truefoundry.ml.autogen.client.models.finalize_artifact_version_request_dto import (
169
175
  FinalizeArtifactVersionRequestDto,
170
176
  )
177
+ from truefoundry.ml.autogen.client.models.framework import Framework
171
178
  from truefoundry.ml.autogen.client.models.get_experiment_response_dto import (
172
179
  GetExperimentResponseDto,
173
180
  )
@@ -211,6 +218,7 @@ from truefoundry.ml.autogen.client.models.image_content_part import ImageContent
211
218
  from truefoundry.ml.autogen.client.models.image_url import ImageUrl
212
219
  from truefoundry.ml.autogen.client.models.internal_metadata import InternalMetadata
213
220
  from truefoundry.ml.autogen.client.models.latest_run_log_dto import LatestRunLogDto
221
+ from truefoundry.ml.autogen.client.models.library_name import LibraryName
214
222
  from truefoundry.ml.autogen.client.models.list_artifact_versions_request_dto import (
215
223
  ListArtifactVersionsRequestDto,
216
224
  )
@@ -274,9 +282,6 @@ from truefoundry.ml.autogen.client.models.list_run_artifacts_response_dto import
274
282
  from truefoundry.ml.autogen.client.models.list_run_logs_response_dto import (
275
283
  ListRunLogsResponseDto,
276
284
  )
277
- from truefoundry.ml.autogen.client.models.list_seed_experiments_response_dto import (
278
- ListSeedExperimentsResponseDto,
279
- )
280
285
  from truefoundry.ml.autogen.client.models.log_batch_request_dto import (
281
286
  LogBatchRequestDto,
282
287
  )
@@ -297,6 +302,9 @@ from truefoundry.ml.autogen.client.models.model_dto import ModelDto
297
302
  from truefoundry.ml.autogen.client.models.model_response_dto import ModelResponseDto
298
303
  from truefoundry.ml.autogen.client.models.model_schema_dto import ModelSchemaDto
299
304
  from truefoundry.ml.autogen.client.models.model_version_dto import ModelVersionDto
305
+ from truefoundry.ml.autogen.client.models.model_version_manifest import (
306
+ ModelVersionManifest,
307
+ )
300
308
  from truefoundry.ml.autogen.client.models.model_version_response_dto import (
301
309
  ModelVersionResponseDto,
302
310
  )
@@ -340,13 +348,25 @@ from truefoundry.ml.autogen.client.models.set_experiment_tag_request_dto import
340
348
  )
341
349
  from truefoundry.ml.autogen.client.models.set_tag_request_dto import SetTagRequestDto
342
350
  from truefoundry.ml.autogen.client.models.signed_url_dto import SignedURLDto
351
+ from truefoundry.ml.autogen.client.models.source import Source
343
352
  from truefoundry.ml.autogen.client.models.stop import Stop
344
353
  from truefoundry.ml.autogen.client.models.store_run_logs_request_dto import (
345
354
  StoreRunLogsRequestDto,
346
355
  )
356
+ from truefoundry.ml.autogen.client.models.subject import Subject
357
+ from truefoundry.ml.autogen.client.models.subject_type import SubjectType
347
358
  from truefoundry.ml.autogen.client.models.system_message import SystemMessage
359
+ from truefoundry.ml.autogen.client.models.tensorflow_framework import (
360
+ TensorflowFramework,
361
+ )
348
362
  from truefoundry.ml.autogen.client.models.text import Text
349
363
  from truefoundry.ml.autogen.client.models.text_content_part import TextContentPart
364
+ from truefoundry.ml.autogen.client.models.transformers_framework import (
365
+ TransformersFramework,
366
+ )
367
+ from truefoundry.ml.autogen.client.models.truefoundry_model_source import (
368
+ TruefoundryModelSource,
369
+ )
350
370
  from truefoundry.ml.autogen.client.models.update_artifact_version_request_dto import (
351
371
  UpdateArtifactVersionRequestDto,
352
372
  )
@@ -365,6 +385,7 @@ from truefoundry.ml.autogen.client.models.update_run_request_dto import (
365
385
  from truefoundry.ml.autogen.client.models.update_run_response_dto import (
366
386
  UpdateRunResponseDto,
367
387
  )
388
+ from truefoundry.ml.autogen.client.models.upload_model_source import UploadModelSource
368
389
  from truefoundry.ml.autogen.client.models.url import Url
369
390
  from truefoundry.ml.autogen.client.models.user_message import UserMessage
370
391
  from truefoundry.ml.autogen.client.models.validation_error import ValidationError
@@ -41,9 +41,6 @@ from truefoundry.ml.autogen.client.models.list_colums_response_dto import (
41
41
  from truefoundry.ml.autogen.client.models.list_experiments_response_dto import (
42
42
  ListExperimentsResponseDto,
43
43
  )
44
- from truefoundry.ml.autogen.client.models.list_seed_experiments_response_dto import (
45
- ListSeedExperimentsResponseDto,
46
- )
47
44
  from truefoundry.ml.autogen.client.models.set_experiment_tag_request_dto import (
48
45
  SetExperimentTagRequestDto,
49
46
  )
@@ -1497,140 +1494,6 @@ class ExperimentsApi:
1497
1494
  _request_auth=_params.get("_request_auth"),
1498
1495
  )
1499
1496
 
1500
- @validate_arguments
1501
- def seed_list_experiment_get(self, **kwargs) -> ListSeedExperimentsResponseDto: # noqa: E501
1502
- """Seed List Experiment # noqa: E501
1503
-
1504
- List Seed Experiments # noqa: E501
1505
- This method makes a synchronous HTTP request by default. To make an
1506
- asynchronous HTTP request, please pass async_req=True
1507
-
1508
- >>> thread = api.seed_list_experiment_get(async_req=True)
1509
- >>> result = thread.get()
1510
-
1511
- :param async_req: Whether to execute the request asynchronously.
1512
- :type async_req: bool, optional
1513
- :param _request_timeout: timeout setting for this request.
1514
- If one number provided, it will be total request
1515
- timeout. It can also be a pair (tuple) of
1516
- (connection, read) timeouts.
1517
- :return: Returns the result object.
1518
- If the method is called asynchronously,
1519
- returns the request thread.
1520
- :rtype: ListSeedExperimentsResponseDto
1521
- """
1522
- kwargs["_return_http_data_only"] = True
1523
- if "_preload_content" in kwargs:
1524
- message = "Error! Please call the seed_list_experiment_get_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
1525
- raise ValueError(message)
1526
- return self.seed_list_experiment_get_with_http_info(**kwargs) # noqa: E501
1527
-
1528
- @validate_arguments
1529
- def seed_list_experiment_get_with_http_info(self, **kwargs) -> ApiResponse: # noqa: E501
1530
- """Seed List Experiment # noqa: E501
1531
-
1532
- List Seed Experiments # noqa: E501
1533
- This method makes a synchronous HTTP request by default. To make an
1534
- asynchronous HTTP request, please pass async_req=True
1535
-
1536
- >>> thread = api.seed_list_experiment_get_with_http_info(async_req=True)
1537
- >>> result = thread.get()
1538
-
1539
- :param async_req: Whether to execute the request asynchronously.
1540
- :type async_req: bool, optional
1541
- :param _preload_content: if False, the ApiResponse.data will
1542
- be set to none and raw_data will store the
1543
- HTTP response body without reading/decoding.
1544
- Default is True.
1545
- :type _preload_content: bool, optional
1546
- :param _return_http_data_only: response data instead of ApiResponse
1547
- object with status code, headers, etc
1548
- :type _return_http_data_only: bool, optional
1549
- :param _request_timeout: timeout setting for this request. If one
1550
- number provided, it will be total request
1551
- timeout. It can also be a pair (tuple) of
1552
- (connection, read) timeouts.
1553
- :param _request_auth: set to override the auth_settings for an a single
1554
- request; this effectively ignores the authentication
1555
- in the spec for a single request.
1556
- :type _request_auth: dict, optional
1557
- :type _content_type: string, optional: force content-type for the request
1558
- :return: Returns the result object.
1559
- If the method is called asynchronously,
1560
- returns the request thread.
1561
- :rtype: tuple(ListSeedExperimentsResponseDto, status_code(int), headers(HTTPHeaderDict))
1562
- """
1563
-
1564
- _params = locals()
1565
-
1566
- _all_params = []
1567
- _all_params.extend(
1568
- [
1569
- "async_req",
1570
- "_return_http_data_only",
1571
- "_preload_content",
1572
- "_request_timeout",
1573
- "_request_auth",
1574
- "_content_type",
1575
- "_headers",
1576
- ]
1577
- )
1578
-
1579
- # validate the arguments
1580
- for _key, _val in _params["kwargs"].items():
1581
- if _key not in _all_params:
1582
- raise ApiTypeError(
1583
- "Got an unexpected keyword argument '%s'"
1584
- " to method seed_list_experiment_get" % _key
1585
- )
1586
- _params[_key] = _val
1587
- del _params["kwargs"]
1588
-
1589
- _collection_formats = {}
1590
-
1591
- # process the path parameters
1592
- _path_params = {}
1593
-
1594
- # process the query parameters
1595
- _query_params = []
1596
- # process the header parameters
1597
- _header_params = dict(_params.get("_headers", {}))
1598
- # process the form parameters
1599
- _form_params = []
1600
- _files = {}
1601
- # process the body parameter
1602
- _body_params = None
1603
- # set the HTTP header `Accept`
1604
- _header_params["Accept"] = self.api_client.select_header_accept(
1605
- ["application/json"]
1606
- ) # noqa: E501
1607
-
1608
- # authentication setting
1609
- _auth_settings = ["HTTPBearer", "APIKeyCookie"] # noqa: E501
1610
-
1611
- _response_types_map = {
1612
- "200": "ListSeedExperimentsResponseDto",
1613
- }
1614
-
1615
- return self.api_client.call_api(
1616
- "/api/2.0/mlflow/experiments/seed/list",
1617
- "GET",
1618
- _path_params,
1619
- _query_params,
1620
- _header_params,
1621
- body=_body_params,
1622
- post_params=_form_params,
1623
- files=_files,
1624
- response_types_map=_response_types_map,
1625
- auth_settings=_auth_settings,
1626
- async_req=_params.get("async_req"),
1627
- _return_http_data_only=_params.get("_return_http_data_only"), # noqa: E501
1628
- _preload_content=_params.get("_preload_content", True),
1629
- _request_timeout=_params.get("_request_timeout"),
1630
- collection_formats=_collection_formats,
1631
- _request_auth=_params.get("_request_auth"),
1632
- )
1633
-
1634
1497
  @validate_arguments
1635
1498
  def set_experiment_tag_post(
1636
1499
  self, set_experiment_tag_request_dto: SetExperimentTagRequestDto, **kwargs
@@ -1016,6 +1016,7 @@ class MlfoundryArtifactsApi:
1016
1016
  ) -> CreateArtifactVersionResponseDto: # noqa: E501
1017
1017
  """Create Artifact Version # noqa: E501
1018
1018
 
1019
+ Create artifact version API # noqa: E501
1019
1020
  This method makes a synchronous HTTP request by default. To make an
1020
1021
  asynchronous HTTP request, please pass async_req=True
1021
1022
 
@@ -1060,6 +1061,7 @@ class MlfoundryArtifactsApi:
1060
1061
  ) -> ApiResponse: # noqa: E501
1061
1062
  """Create Artifact Version # noqa: E501
1062
1063
 
1064
+ Create artifact version API # noqa: E501
1063
1065
  This method makes a synchronous HTTP request by default. To make an
1064
1066
  asynchronous HTTP request, please pass async_req=True
1065
1067
 
@@ -35,6 +35,9 @@ from truefoundry.ml.autogen.client.models.artifact_version_dto import ArtifactVe
35
35
  from truefoundry.ml.autogen.client.models.artifact_version_response_dto import (
36
36
  ArtifactVersionResponseDto,
37
37
  )
38
+ from truefoundry.ml.autogen.client.models.artifact_version_serialization_format import (
39
+ ArtifactVersionSerializationFormat,
40
+ )
38
41
  from truefoundry.ml.autogen.client.models.artifact_version_status import (
39
42
  ArtifactVersionStatus,
40
43
  )
@@ -133,12 +136,16 @@ from truefoundry.ml.autogen.client.models.experiment_response_dto import (
133
136
  ExperimentResponseDto,
134
137
  )
135
138
  from truefoundry.ml.autogen.client.models.experiment_tag_dto import ExperimentTagDto
139
+ from truefoundry.ml.autogen.client.models.external_model_source import (
140
+ ExternalModelSource,
141
+ )
136
142
  from truefoundry.ml.autogen.client.models.feature_dto import FeatureDto
137
143
  from truefoundry.ml.autogen.client.models.feature_value_type import FeatureValueType
138
144
  from truefoundry.ml.autogen.client.models.file_info_dto import FileInfoDto
139
145
  from truefoundry.ml.autogen.client.models.finalize_artifact_version_request_dto import (
140
146
  FinalizeArtifactVersionRequestDto,
141
147
  )
148
+ from truefoundry.ml.autogen.client.models.framework import Framework
142
149
  from truefoundry.ml.autogen.client.models.get_experiment_response_dto import (
143
150
  GetExperimentResponseDto,
144
151
  )
@@ -182,6 +189,7 @@ from truefoundry.ml.autogen.client.models.image_content_part import ImageContent
182
189
  from truefoundry.ml.autogen.client.models.image_url import ImageUrl
183
190
  from truefoundry.ml.autogen.client.models.internal_metadata import InternalMetadata
184
191
  from truefoundry.ml.autogen.client.models.latest_run_log_dto import LatestRunLogDto
192
+ from truefoundry.ml.autogen.client.models.library_name import LibraryName
185
193
  from truefoundry.ml.autogen.client.models.list_artifact_versions_request_dto import (
186
194
  ListArtifactVersionsRequestDto,
187
195
  )
@@ -245,9 +253,6 @@ from truefoundry.ml.autogen.client.models.list_run_artifacts_response_dto import
245
253
  from truefoundry.ml.autogen.client.models.list_run_logs_response_dto import (
246
254
  ListRunLogsResponseDto,
247
255
  )
248
- from truefoundry.ml.autogen.client.models.list_seed_experiments_response_dto import (
249
- ListSeedExperimentsResponseDto,
250
- )
251
256
  from truefoundry.ml.autogen.client.models.log_batch_request_dto import (
252
257
  LogBatchRequestDto,
253
258
  )
@@ -268,6 +273,9 @@ from truefoundry.ml.autogen.client.models.model_dto import ModelDto
268
273
  from truefoundry.ml.autogen.client.models.model_response_dto import ModelResponseDto
269
274
  from truefoundry.ml.autogen.client.models.model_schema_dto import ModelSchemaDto
270
275
  from truefoundry.ml.autogen.client.models.model_version_dto import ModelVersionDto
276
+ from truefoundry.ml.autogen.client.models.model_version_manifest import (
277
+ ModelVersionManifest,
278
+ )
271
279
  from truefoundry.ml.autogen.client.models.model_version_response_dto import (
272
280
  ModelVersionResponseDto,
273
281
  )
@@ -311,13 +319,25 @@ from truefoundry.ml.autogen.client.models.set_experiment_tag_request_dto import
311
319
  )
312
320
  from truefoundry.ml.autogen.client.models.set_tag_request_dto import SetTagRequestDto
313
321
  from truefoundry.ml.autogen.client.models.signed_url_dto import SignedURLDto
322
+ from truefoundry.ml.autogen.client.models.source import Source
314
323
  from truefoundry.ml.autogen.client.models.stop import Stop
315
324
  from truefoundry.ml.autogen.client.models.store_run_logs_request_dto import (
316
325
  StoreRunLogsRequestDto,
317
326
  )
327
+ from truefoundry.ml.autogen.client.models.subject import Subject
328
+ from truefoundry.ml.autogen.client.models.subject_type import SubjectType
318
329
  from truefoundry.ml.autogen.client.models.system_message import SystemMessage
330
+ from truefoundry.ml.autogen.client.models.tensorflow_framework import (
331
+ TensorflowFramework,
332
+ )
319
333
  from truefoundry.ml.autogen.client.models.text import Text
320
334
  from truefoundry.ml.autogen.client.models.text_content_part import TextContentPart
335
+ from truefoundry.ml.autogen.client.models.transformers_framework import (
336
+ TransformersFramework,
337
+ )
338
+ from truefoundry.ml.autogen.client.models.truefoundry_model_source import (
339
+ TruefoundryModelSource,
340
+ )
321
341
  from truefoundry.ml.autogen.client.models.update_artifact_version_request_dto import (
322
342
  UpdateArtifactVersionRequestDto,
323
343
  )
@@ -336,6 +356,7 @@ from truefoundry.ml.autogen.client.models.update_run_request_dto import (
336
356
  from truefoundry.ml.autogen.client.models.update_run_response_dto import (
337
357
  UpdateRunResponseDto,
338
358
  )
359
+ from truefoundry.ml.autogen.client.models.upload_model_source import UploadModelSource
339
360
  from truefoundry.ml.autogen.client.models.url import Url
340
361
  from truefoundry.ml.autogen.client.models.user_message import UserMessage
341
362
  from truefoundry.ml.autogen.client.models.validation_error import ValidationError
@@ -21,6 +21,7 @@ from typing import Optional
21
21
 
22
22
  from truefoundry.ml.autogen.client.models.artifact_type import ArtifactType
23
23
  from truefoundry.ml.autogen.client.models.artifact_version_dto import ArtifactVersionDto
24
+ from truefoundry.ml.autogen.client.models.subject import Subject
24
25
  from truefoundry.pydantic_v1 import BaseModel, Field, StrictInt, StrictStr, conlist
25
26
 
26
27
 
@@ -36,6 +37,7 @@ class ArtifactDto(BaseModel):
36
37
  fqn: StrictStr = Field(...)
37
38
  description: Optional[StrictStr] = None
38
39
  created_by: Optional[StrictStr] = None
40
+ created_by_subject: Subject = Field(...)
39
41
  created_at: Optional[datetime] = None
40
42
  updated_at: Optional[datetime] = None
41
43
  artifact_storage_root: Optional[StrictStr] = None
@@ -49,6 +51,7 @@ class ArtifactDto(BaseModel):
49
51
  "fqn",
50
52
  "description",
51
53
  "created_by",
54
+ "created_by_subject",
52
55
  "created_at",
53
56
  "updated_at",
54
57
  "artifact_storage_root",
@@ -78,6 +81,9 @@ class ArtifactDto(BaseModel):
78
81
  def to_dict(self):
79
82
  """Returns the dictionary representation of the model using alias"""
80
83
  _dict = self.dict(by_alias=True, exclude={}, exclude_none=True)
84
+ # override the default output from truefoundry.pydantic_v1 by calling `to_dict()` of created_by_subject
85
+ if self.created_by_subject:
86
+ _dict["created_by_subject"] = self.created_by_subject.to_dict()
81
87
  # override the default output from truefoundry.pydantic_v1 by calling `to_dict()` of latest_version
82
88
  if self.latest_version:
83
89
  _dict["latest_version"] = self.latest_version.to_dict()
@@ -101,6 +107,9 @@ class ArtifactDto(BaseModel):
101
107
  "fqn": obj.get("fqn"),
102
108
  "description": obj.get("description"),
103
109
  "created_by": obj.get("created_by"),
110
+ "created_by_subject": Subject.from_dict(obj.get("created_by_subject"))
111
+ if obj.get("created_by_subject") is not None
112
+ else None,
104
113
  "created_at": obj.get("created_at"),
105
114
  "updated_at": obj.get("updated_at"),
106
115
  "artifact_storage_root": obj.get("artifact_storage_root"),
@@ -19,10 +19,17 @@ import re # noqa: F401
19
19
  from datetime import datetime
20
20
  from typing import Any, Dict, Optional
21
21
 
22
+ from truefoundry.ml.autogen.client.models.artifact_version_serialization_format import (
23
+ ArtifactVersionSerializationFormat,
24
+ )
22
25
  from truefoundry.ml.autogen.client.models.artifact_version_status import (
23
26
  ArtifactVersionStatus,
24
27
  )
25
28
  from truefoundry.ml.autogen.client.models.internal_metadata import InternalMetadata
29
+ from truefoundry.ml.autogen.client.models.model_version_manifest import (
30
+ ModelVersionManifest,
31
+ )
32
+ from truefoundry.ml.autogen.client.models.subject import Subject
26
33
  from truefoundry.pydantic_v1 import BaseModel, Field, StrictInt, StrictStr
27
34
 
28
35
 
@@ -42,6 +49,7 @@ class ArtifactVersionDto(BaseModel):
42
49
  status: Optional[ArtifactVersionStatus] = None
43
50
  step: Optional[StrictInt] = 0
44
51
  created_by: Optional[StrictStr] = None
52
+ created_by_subject: Subject = Field(...)
45
53
  created_at: Optional[datetime] = None
46
54
  updated_at: Optional[datetime] = None
47
55
  artifact_fqn: Optional[StrictStr] = None
@@ -51,6 +59,8 @@ class ArtifactVersionDto(BaseModel):
51
59
  artifact_name: Optional[StrictStr] = None
52
60
  internal_metadata: Optional[InternalMetadata] = None
53
61
  artifact_size: Optional[StrictInt] = None
62
+ manifest: Optional[ModelVersionManifest] = None
63
+ serialization_format: ArtifactVersionSerializationFormat = Field(...)
54
64
  __properties = [
55
65
  "id",
56
66
  "artifact_id",
@@ -63,6 +73,7 @@ class ArtifactVersionDto(BaseModel):
63
73
  "status",
64
74
  "step",
65
75
  "created_by",
76
+ "created_by_subject",
66
77
  "created_at",
67
78
  "updated_at",
68
79
  "artifact_fqn",
@@ -72,6 +83,8 @@ class ArtifactVersionDto(BaseModel):
72
83
  "artifact_name",
73
84
  "internal_metadata",
74
85
  "artifact_size",
86
+ "manifest",
87
+ "serialization_format",
75
88
  ]
76
89
 
77
90
  class Config:
@@ -96,9 +109,15 @@ class ArtifactVersionDto(BaseModel):
96
109
  def to_dict(self):
97
110
  """Returns the dictionary representation of the model using alias"""
98
111
  _dict = self.dict(by_alias=True, exclude={}, exclude_none=True)
112
+ # override the default output from truefoundry.pydantic_v1 by calling `to_dict()` of created_by_subject
113
+ if self.created_by_subject:
114
+ _dict["created_by_subject"] = self.created_by_subject.to_dict()
99
115
  # override the default output from truefoundry.pydantic_v1 by calling `to_dict()` of internal_metadata
100
116
  if self.internal_metadata:
101
117
  _dict["internal_metadata"] = self.internal_metadata.to_dict()
118
+ # override the default output from truefoundry.pydantic_v1 by calling `to_dict()` of manifest
119
+ if self.manifest:
120
+ _dict["manifest"] = self.manifest.to_dict()
102
121
  return _dict
103
122
 
104
123
  @classmethod
@@ -123,6 +142,9 @@ class ArtifactVersionDto(BaseModel):
123
142
  "status": obj.get("status"),
124
143
  "step": obj.get("step") if obj.get("step") is not None else 0,
125
144
  "created_by": obj.get("created_by"),
145
+ "created_by_subject": Subject.from_dict(obj.get("created_by_subject"))
146
+ if obj.get("created_by_subject") is not None
147
+ else None,
126
148
  "created_at": obj.get("created_at"),
127
149
  "updated_at": obj.get("updated_at"),
128
150
  "artifact_fqn": obj.get("artifact_fqn"),
@@ -136,6 +158,10 @@ class ArtifactVersionDto(BaseModel):
136
158
  if obj.get("internal_metadata") is not None
137
159
  else None,
138
160
  "artifact_size": obj.get("artifact_size"),
161
+ "manifest": ModelVersionManifest.from_dict(obj.get("manifest"))
162
+ if obj.get("manifest") is not None
163
+ else None,
164
+ "serialization_format": obj.get("serialization_format"),
139
165
  }
140
166
  )
141
167
  return _obj
@@ -0,0 +1,34 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ FastAPI
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: 0.1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+ import json
15
+ import re # noqa: F401
16
+
17
+ from aenum import Enum
18
+
19
+
20
+ class ArtifactVersionSerializationFormat(str, Enum):
21
+ """
22
+ An enumeration.
23
+ """
24
+
25
+ """
26
+ allowed enum values
27
+ """
28
+ V1 = "V1"
29
+ V2 = "V2"
30
+
31
+ @classmethod
32
+ def from_json(cls, json_str: str) -> ArtifactVersionSerializationFormat:
33
+ """Create an instance of ArtifactVersionSerializationFormat from a JSON string"""
34
+ return ArtifactVersionSerializationFormat(json.loads(json_str))
@@ -26,7 +26,8 @@ class CreateArtifactVersionResponseDto(BaseModel):
26
26
  """
27
27
 
28
28
  id: StrictStr = Field(...)
29
- __properties = ["id"]
29
+ artifact_storage_root: StrictStr = Field(...)
30
+ __properties = ["id", "artifact_storage_root"]
30
31
 
31
32
  class Config:
32
33
  """Pydantic configuration"""
@@ -61,5 +62,10 @@ class CreateArtifactVersionResponseDto(BaseModel):
61
62
  if not isinstance(obj, dict):
62
63
  return CreateArtifactVersionResponseDto.parse_obj(obj)
63
64
 
64
- _obj = CreateArtifactVersionResponseDto.parse_obj({"id": obj.get("id")})
65
+ _obj = CreateArtifactVersionResponseDto.parse_obj(
66
+ {
67
+ "id": obj.get("id"),
68
+ "artifact_storage_root": obj.get("artifact_storage_root"),
69
+ }
70
+ )
65
71
  return _obj
@@ -29,18 +29,10 @@ class CreateRunRequestDto(BaseModel):
29
29
 
30
30
  experiment_id: StrictStr = Field(...)
31
31
  name: StrictStr = Field(...)
32
- user_id: Optional[StrictStr] = None
33
32
  start_time: Optional[StrictInt] = None
34
33
  tags: Optional[conlist(RunTagDto)] = None
35
34
  description: Optional[StrictStr] = None
36
- __properties = [
37
- "experiment_id",
38
- "name",
39
- "user_id",
40
- "start_time",
41
- "tags",
42
- "description",
43
- ]
35
+ __properties = ["experiment_id", "name", "start_time", "tags", "description"]
44
36
 
45
37
  class Config:
46
38
  """Pydantic configuration"""
@@ -86,7 +78,6 @@ class CreateRunRequestDto(BaseModel):
86
78
  {
87
79
  "experiment_id": obj.get("experiment_id"),
88
80
  "name": obj.get("name"),
89
- "user_id": obj.get("user_id"),
90
81
  "start_time": obj.get("start_time"),
91
82
  "tags": [RunTagDto.from_dict(_item) for _item in obj.get("tags")]
92
83
  if obj.get("tags") is not None