rapidata 2.23.2__py3-none-any.whl → 2.24.0__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 rapidata might be problematic. Click here for more details.

Files changed (34) hide show
  1. rapidata/api_client/__init__.py +10 -1
  2. rapidata/api_client/api/validation_set_api.py +3 -3
  3. rapidata/api_client/models/__init__.py +10 -1
  4. rapidata/api_client/models/asset_metadata.py +104 -0
  5. rapidata/api_client/models/asset_metadata_asset.py +170 -0
  6. rapidata/api_client/models/asset_metadata_model.py +102 -0
  7. rapidata/api_client/models/asset_metadata_model_asset.py +170 -0
  8. rapidata/api_client/models/compare_workflow_config_metadata_value.py +33 -17
  9. rapidata/api_client/models/create_datapoint_from_files_model_metadata_inner.py +25 -11
  10. rapidata/api_client/models/datapoint.py +3 -3
  11. rapidata/api_client/models/datapoint_model.py +3 -3
  12. rapidata/api_client/models/file_asset.py +17 -12
  13. rapidata/api_client/models/file_asset_model.py +3 -1
  14. rapidata/api_client/models/file_asset_model_metadata_value.py +35 -19
  15. rapidata/api_client/models/get_compare_workflow_results_result.py +3 -3
  16. rapidata/api_client/models/get_datapoint_by_id_result.py +3 -3
  17. rapidata/api_client/models/get_rapid_responses_result.py +3 -3
  18. rapidata/api_client/models/get_workflow_results_result.py +3 -3
  19. rapidata/api_client/models/multi_asset.py +17 -12
  20. rapidata/api_client/models/multi_asset_model.py +4 -4
  21. rapidata/api_client/models/null_asset.py +16 -9
  22. rapidata/api_client/models/null_asset_model.py +3 -1
  23. rapidata/api_client/models/prompt_asset_metadata_input.py +102 -0
  24. rapidata/api_client/models/text_asset.py +17 -10
  25. rapidata/api_client/models/text_asset_model.py +3 -1
  26. rapidata/api_client/models/url_asset_input.py +100 -0
  27. rapidata/api_client_README.md +11 -2
  28. rapidata/rapidata_client/metadata/__init__.py +1 -0
  29. rapidata/rapidata_client/metadata/_media_asset_metadata.py +15 -0
  30. rapidata/rapidata_client/order/rapidata_order_manager.py +37 -17
  31. {rapidata-2.23.2.dist-info → rapidata-2.24.0.dist-info}/METADATA +1 -1
  32. {rapidata-2.23.2.dist-info → rapidata-2.24.0.dist-info}/RECORD +34 -27
  33. {rapidata-2.23.2.dist-info → rapidata-2.24.0.dist-info}/LICENSE +0 -0
  34. {rapidata-2.23.2.dist-info → rapidata-2.24.0.dist-info}/WHEEL +0 -0
@@ -62,6 +62,10 @@ from rapidata.api_client.models.age_group import AgeGroup
62
62
  from rapidata.api_client.models.age_user_filter_model import AgeUserFilterModel
63
63
  from rapidata.api_client.models.aggregator_type import AggregatorType
64
64
  from rapidata.api_client.models.are_rapids_active_result import AreRapidsActiveResult
65
+ from rapidata.api_client.models.asset_metadata import AssetMetadata
66
+ from rapidata.api_client.models.asset_metadata_asset import AssetMetadataAsset
67
+ from rapidata.api_client.models.asset_metadata_model import AssetMetadataModel
68
+ from rapidata.api_client.models.asset_metadata_model_asset import AssetMetadataModelAsset
65
69
  from rapidata.api_client.models.attach_category_rapid_blueprint import AttachCategoryRapidBlueprint
66
70
  from rapidata.api_client.models.attach_category_result import AttachCategoryResult
67
71
  from rapidata.api_client.models.attach_category_truth import AttachCategoryTruth
@@ -136,7 +140,6 @@ from rapidata.api_client.models.create_unsupported_order_model import CreateUnsu
136
140
  from rapidata.api_client.models.create_validation_set_model import CreateValidationSetModel
137
141
  from rapidata.api_client.models.custom_user_filter_model import CustomUserFilterModel
138
142
  from rapidata.api_client.models.datapoint import Datapoint
139
- from rapidata.api_client.models.datapoint_asset import DatapointAsset
140
143
  from rapidata.api_client.models.datapoint_metadata_model import DatapointMetadataModel
141
144
  from rapidata.api_client.models.datapoint_model import DatapointModel
142
145
  from rapidata.api_client.models.datapoint_state import DatapointState
@@ -156,6 +159,7 @@ from rapidata.api_client.models.feature_flag import FeatureFlag
156
159
  from rapidata.api_client.models.feature_flag_model import FeatureFlagModel
157
160
  from rapidata.api_client.models.feedback_model import FeedbackModel
158
161
  from rapidata.api_client.models.file_artifact_model import FileArtifactModel
162
+ from rapidata.api_client.models.file_asset import FileAsset
159
163
  from rapidata.api_client.models.file_asset_model import FileAssetModel
160
164
  from rapidata.api_client.models.file_asset_model_metadata_value import FileAssetModelMetadataValue
161
165
  from rapidata.api_client.models.filter import Filter
@@ -218,6 +222,7 @@ from rapidata.api_client.models.location_metadata_exists_filter_config import Lo
218
222
  from rapidata.api_client.models.location_metadata_model import LocationMetadataModel
219
223
  from rapidata.api_client.models.logic_operator import LogicOperator
220
224
  from rapidata.api_client.models.metadata_visibilities import MetadataVisibilities
225
+ from rapidata.api_client.models.multi_asset import MultiAsset
221
226
  from rapidata.api_client.models.multi_asset_model import MultiAssetModel
222
227
  from rapidata.api_client.models.naive_referee_config import NaiveRefereeConfig
223
228
  from rapidata.api_client.models.naive_referee_model import NaiveRefereeModel
@@ -231,6 +236,7 @@ from rapidata.api_client.models.new_user_filter_model import NewUserFilterModel
231
236
  from rapidata.api_client.models.newsletter_model import NewsletterModel
232
237
  from rapidata.api_client.models.not_available_yet_result import NotAvailableYetResult
233
238
  from rapidata.api_client.models.not_user_filter_model import NotUserFilterModel
239
+ from rapidata.api_client.models.null_asset import NullAsset
234
240
  from rapidata.api_client.models.null_asset_model import NullAssetModel
235
241
  from rapidata.api_client.models.online_pair_maker_config import OnlinePairMakerConfig
236
242
  from rapidata.api_client.models.online_pair_maker_config_model import OnlinePairMakerConfigModel
@@ -251,6 +257,7 @@ from rapidata.api_client.models.preliminary_download_model import PreliminaryDow
251
257
  from rapidata.api_client.models.preliminary_download_result import PreliminaryDownloadResult
252
258
  from rapidata.api_client.models.private_text_metadata_input import PrivateTextMetadataInput
253
259
  from rapidata.api_client.models.probabilistic_attach_category_referee_config import ProbabilisticAttachCategoryRefereeConfig
260
+ from rapidata.api_client.models.prompt_asset_metadata_input import PromptAssetMetadataInput
254
261
  from rapidata.api_client.models.prompt_metadata import PromptMetadata
255
262
  from rapidata.api_client.models.prompt_metadata_input import PromptMetadataInput
256
263
  from rapidata.api_client.models.prompt_metadata_model import PromptMetadataModel
@@ -296,6 +303,7 @@ from rapidata.api_client.models.static_selection import StaticSelection
296
303
  from rapidata.api_client.models.sticky_state import StickyState
297
304
  from rapidata.api_client.models.submit_coco_model import SubmitCocoModel
298
305
  from rapidata.api_client.models.submit_coco_result import SubmitCocoResult
306
+ from rapidata.api_client.models.text_asset import TextAsset
299
307
  from rapidata.api_client.models.text_asset_model import TextAssetModel
300
308
  from rapidata.api_client.models.text_metadata import TextMetadata
301
309
  from rapidata.api_client.models.text_metadata_model import TextMetadataModel
@@ -321,6 +329,7 @@ from rapidata.api_client.models.upload_coco_result import UploadCocoResult
321
329
  from rapidata.api_client.models.upload_files_from_s3_bucket_model import UploadFilesFromS3BucketModel
322
330
  from rapidata.api_client.models.upload_from_s3_result import UploadFromS3Result
323
331
  from rapidata.api_client.models.upload_text_sources_to_dataset_model import UploadTextSourcesToDatasetModel
332
+ from rapidata.api_client.models.url_asset_input import UrlAssetInput
324
333
  from rapidata.api_client.models.user_score_user_filter_model import UserScoreUserFilterModel
325
334
  from rapidata.api_client.models.validation_chance import ValidationChance
326
335
  from rapidata.api_client.models.validation_import_post_request_blueprint import ValidationImportPostRequestBlueprint
@@ -3051,7 +3051,7 @@ class ValidationSetApi:
3051
3051
  _headers: Optional[Dict[StrictStr, Any]] = None,
3052
3052
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3053
3053
  ) -> bytearray:
3054
- """Exports all rapids of a validationset to a file.
3054
+ """Exports all rapids of a validation-set to a file.
3055
3055
 
3056
3056
 
3057
3057
  :param validation_set_id: (required)
@@ -3117,7 +3117,7 @@ class ValidationSetApi:
3117
3117
  _headers: Optional[Dict[StrictStr, Any]] = None,
3118
3118
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3119
3119
  ) -> ApiResponse[bytearray]:
3120
- """Exports all rapids of a validationset to a file.
3120
+ """Exports all rapids of a validation-set to a file.
3121
3121
 
3122
3122
 
3123
3123
  :param validation_set_id: (required)
@@ -3183,7 +3183,7 @@ class ValidationSetApi:
3183
3183
  _headers: Optional[Dict[StrictStr, Any]] = None,
3184
3184
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3185
3185
  ) -> RESTResponseType:
3186
- """Exports all rapids of a validationset to a file.
3186
+ """Exports all rapids of a validation-set to a file.
3187
3187
 
3188
3188
 
3189
3189
  :param validation_set_id: (required)
@@ -28,6 +28,10 @@ from rapidata.api_client.models.age_group import AgeGroup
28
28
  from rapidata.api_client.models.age_user_filter_model import AgeUserFilterModel
29
29
  from rapidata.api_client.models.aggregator_type import AggregatorType
30
30
  from rapidata.api_client.models.are_rapids_active_result import AreRapidsActiveResult
31
+ from rapidata.api_client.models.asset_metadata import AssetMetadata
32
+ from rapidata.api_client.models.asset_metadata_asset import AssetMetadataAsset
33
+ from rapidata.api_client.models.asset_metadata_model import AssetMetadataModel
34
+ from rapidata.api_client.models.asset_metadata_model_asset import AssetMetadataModelAsset
31
35
  from rapidata.api_client.models.attach_category_rapid_blueprint import AttachCategoryRapidBlueprint
32
36
  from rapidata.api_client.models.attach_category_result import AttachCategoryResult
33
37
  from rapidata.api_client.models.attach_category_truth import AttachCategoryTruth
@@ -102,7 +106,6 @@ from rapidata.api_client.models.create_unsupported_order_model import CreateUnsu
102
106
  from rapidata.api_client.models.create_validation_set_model import CreateValidationSetModel
103
107
  from rapidata.api_client.models.custom_user_filter_model import CustomUserFilterModel
104
108
  from rapidata.api_client.models.datapoint import Datapoint
105
- from rapidata.api_client.models.datapoint_asset import DatapointAsset
106
109
  from rapidata.api_client.models.datapoint_metadata_model import DatapointMetadataModel
107
110
  from rapidata.api_client.models.datapoint_model import DatapointModel
108
111
  from rapidata.api_client.models.datapoint_state import DatapointState
@@ -122,6 +125,7 @@ from rapidata.api_client.models.feature_flag import FeatureFlag
122
125
  from rapidata.api_client.models.feature_flag_model import FeatureFlagModel
123
126
  from rapidata.api_client.models.feedback_model import FeedbackModel
124
127
  from rapidata.api_client.models.file_artifact_model import FileArtifactModel
128
+ from rapidata.api_client.models.file_asset import FileAsset
125
129
  from rapidata.api_client.models.file_asset_model import FileAssetModel
126
130
  from rapidata.api_client.models.file_asset_model_metadata_value import FileAssetModelMetadataValue
127
131
  from rapidata.api_client.models.filter import Filter
@@ -184,6 +188,7 @@ from rapidata.api_client.models.location_metadata_exists_filter_config import Lo
184
188
  from rapidata.api_client.models.location_metadata_model import LocationMetadataModel
185
189
  from rapidata.api_client.models.logic_operator import LogicOperator
186
190
  from rapidata.api_client.models.metadata_visibilities import MetadataVisibilities
191
+ from rapidata.api_client.models.multi_asset import MultiAsset
187
192
  from rapidata.api_client.models.multi_asset_model import MultiAssetModel
188
193
  from rapidata.api_client.models.naive_referee_config import NaiveRefereeConfig
189
194
  from rapidata.api_client.models.naive_referee_model import NaiveRefereeModel
@@ -197,6 +202,7 @@ from rapidata.api_client.models.new_user_filter_model import NewUserFilterModel
197
202
  from rapidata.api_client.models.newsletter_model import NewsletterModel
198
203
  from rapidata.api_client.models.not_available_yet_result import NotAvailableYetResult
199
204
  from rapidata.api_client.models.not_user_filter_model import NotUserFilterModel
205
+ from rapidata.api_client.models.null_asset import NullAsset
200
206
  from rapidata.api_client.models.null_asset_model import NullAssetModel
201
207
  from rapidata.api_client.models.online_pair_maker_config import OnlinePairMakerConfig
202
208
  from rapidata.api_client.models.online_pair_maker_config_model import OnlinePairMakerConfigModel
@@ -217,6 +223,7 @@ from rapidata.api_client.models.preliminary_download_model import PreliminaryDow
217
223
  from rapidata.api_client.models.preliminary_download_result import PreliminaryDownloadResult
218
224
  from rapidata.api_client.models.private_text_metadata_input import PrivateTextMetadataInput
219
225
  from rapidata.api_client.models.probabilistic_attach_category_referee_config import ProbabilisticAttachCategoryRefereeConfig
226
+ from rapidata.api_client.models.prompt_asset_metadata_input import PromptAssetMetadataInput
220
227
  from rapidata.api_client.models.prompt_metadata import PromptMetadata
221
228
  from rapidata.api_client.models.prompt_metadata_input import PromptMetadataInput
222
229
  from rapidata.api_client.models.prompt_metadata_model import PromptMetadataModel
@@ -262,6 +269,7 @@ from rapidata.api_client.models.static_selection import StaticSelection
262
269
  from rapidata.api_client.models.sticky_state import StickyState
263
270
  from rapidata.api_client.models.submit_coco_model import SubmitCocoModel
264
271
  from rapidata.api_client.models.submit_coco_result import SubmitCocoResult
272
+ from rapidata.api_client.models.text_asset import TextAsset
265
273
  from rapidata.api_client.models.text_asset_model import TextAssetModel
266
274
  from rapidata.api_client.models.text_metadata import TextMetadata
267
275
  from rapidata.api_client.models.text_metadata_model import TextMetadataModel
@@ -287,6 +295,7 @@ from rapidata.api_client.models.upload_coco_result import UploadCocoResult
287
295
  from rapidata.api_client.models.upload_files_from_s3_bucket_model import UploadFilesFromS3BucketModel
288
296
  from rapidata.api_client.models.upload_from_s3_result import UploadFromS3Result
289
297
  from rapidata.api_client.models.upload_text_sources_to_dataset_model import UploadTextSourcesToDatasetModel
298
+ from rapidata.api_client.models.url_asset_input import UrlAssetInput
290
299
  from rapidata.api_client.models.user_score_user_filter_model import UserScoreUserFilterModel
291
300
  from rapidata.api_client.models.validation_chance import ValidationChance
292
301
  from rapidata.api_client.models.validation_import_post_request_blueprint import ValidationImportPostRequestBlueprint
@@ -0,0 +1,104 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Rapidata.Dataset
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: v1
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
21
+ from typing import Any, ClassVar, Dict, List
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+
25
+ class AssetMetadata(BaseModel):
26
+ """
27
+ AssetMetadata
28
+ """ # noqa: E501
29
+ t: StrictStr = Field(description="Discriminator value for AssetMetadata", alias="_t")
30
+ asset: AssetMetadataAsset
31
+ visibilities: StrictStr
32
+ __properties: ClassVar[List[str]] = ["_t", "asset", "visibilities"]
33
+
34
+ @field_validator('t')
35
+ def t_validate_enum(cls, value):
36
+ """Validates the enum"""
37
+ if value not in set(['AssetMetadata']):
38
+ raise ValueError("must be one of enum values ('AssetMetadata')")
39
+ return value
40
+
41
+ model_config = ConfigDict(
42
+ populate_by_name=True,
43
+ validate_assignment=True,
44
+ protected_namespaces=(),
45
+ )
46
+
47
+
48
+ def to_str(self) -> str:
49
+ """Returns the string representation of the model using alias"""
50
+ return pprint.pformat(self.model_dump(by_alias=True))
51
+
52
+ def to_json(self) -> str:
53
+ """Returns the JSON representation of the model using alias"""
54
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
55
+ return json.dumps(self.to_dict())
56
+
57
+ @classmethod
58
+ def from_json(cls, json_str: str) -> Optional[Self]:
59
+ """Create an instance of AssetMetadata from a JSON string"""
60
+ return cls.from_dict(json.loads(json_str))
61
+
62
+ def to_dict(self) -> Dict[str, Any]:
63
+ """Return the dictionary representation of the model using alias.
64
+
65
+ This has the following differences from calling pydantic's
66
+ `self.model_dump(by_alias=True)`:
67
+
68
+ * `None` is only added to the output dict for nullable fields that
69
+ were set at model initialization. Other fields with value `None`
70
+ are ignored.
71
+ """
72
+ excluded_fields: Set[str] = set([
73
+ ])
74
+
75
+ _dict = self.model_dump(
76
+ by_alias=True,
77
+ exclude=excluded_fields,
78
+ exclude_none=True,
79
+ )
80
+ # override the default output from pydantic by calling `to_dict()` of asset
81
+ if self.asset:
82
+ _dict['asset'] = self.asset.to_dict()
83
+ return _dict
84
+
85
+ @classmethod
86
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
87
+ """Create an instance of AssetMetadata from a dict"""
88
+ if obj is None:
89
+ return None
90
+
91
+ if not isinstance(obj, dict):
92
+ return cls.model_validate(obj)
93
+
94
+ _obj = cls.model_validate({
95
+ "_t": obj.get("_t") if obj.get("_t") is not None else 'AssetMetadata',
96
+ "asset": AssetMetadataAsset.from_dict(obj["asset"]) if obj.get("asset") is not None else None,
97
+ "visibilities": obj.get("visibilities")
98
+ })
99
+ return _obj
100
+
101
+ from rapidata.api_client.models.asset_metadata_asset import AssetMetadataAsset
102
+ # TODO: Rewrite to not use raise_errors
103
+ AssetMetadata.model_rebuild(raise_errors=False)
104
+
@@ -0,0 +1,170 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Rapidata.Dataset
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: v1
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import json
17
+ import pprint
18
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
19
+ from typing import Any, List, Optional
20
+ from pydantic import StrictStr, Field
21
+ from typing import Union, List, Set, Optional, Dict
22
+ from typing_extensions import Literal, Self
23
+
24
+ ASSETMETADATAASSET_ONE_OF_SCHEMAS = ["FileAsset", "MultiAsset", "NullAsset", "TextAsset"]
25
+
26
+ class AssetMetadataAsset(BaseModel):
27
+ """
28
+ AssetMetadataAsset
29
+ """
30
+ # data type: FileAsset
31
+ oneof_schema_1_validator: Optional[FileAsset] = None
32
+ # data type: MultiAsset
33
+ oneof_schema_2_validator: Optional[MultiAsset] = None
34
+ # data type: NullAsset
35
+ oneof_schema_3_validator: Optional[NullAsset] = None
36
+ # data type: TextAsset
37
+ oneof_schema_4_validator: Optional[TextAsset] = None
38
+ actual_instance: Optional[Union[FileAsset, MultiAsset, NullAsset, TextAsset]] = None
39
+ one_of_schemas: Set[str] = { "FileAsset", "MultiAsset", "NullAsset", "TextAsset" }
40
+
41
+ model_config = ConfigDict(
42
+ validate_assignment=True,
43
+ protected_namespaces=(),
44
+ )
45
+
46
+
47
+ discriminator_value_class_map: Dict[str, str] = {
48
+ }
49
+
50
+ def __init__(self, *args, **kwargs) -> None:
51
+ if args:
52
+ if len(args) > 1:
53
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
54
+ if kwargs:
55
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
56
+ super().__init__(actual_instance=args[0])
57
+ else:
58
+ super().__init__(**kwargs)
59
+
60
+ @field_validator('actual_instance')
61
+ def actual_instance_must_validate_oneof(cls, v):
62
+ instance = AssetMetadataAsset.model_construct()
63
+ error_messages = []
64
+ match = 0
65
+ # validate data type: FileAsset
66
+ if not isinstance(v, FileAsset):
67
+ error_messages.append(f"Error! Input type `{type(v)}` is not `FileAsset`")
68
+ else:
69
+ match += 1
70
+ # validate data type: MultiAsset
71
+ if not isinstance(v, MultiAsset):
72
+ error_messages.append(f"Error! Input type `{type(v)}` is not `MultiAsset`")
73
+ else:
74
+ match += 1
75
+ # validate data type: NullAsset
76
+ if not isinstance(v, NullAsset):
77
+ error_messages.append(f"Error! Input type `{type(v)}` is not `NullAsset`")
78
+ else:
79
+ match += 1
80
+ # validate data type: TextAsset
81
+ if not isinstance(v, TextAsset):
82
+ error_messages.append(f"Error! Input type `{type(v)}` is not `TextAsset`")
83
+ else:
84
+ match += 1
85
+ if match > 1:
86
+ # more than 1 match
87
+ raise ValueError("Multiple matches found when setting `actual_instance` in AssetMetadataAsset with oneOf schemas: FileAsset, MultiAsset, NullAsset, TextAsset. Details: " + ", ".join(error_messages))
88
+ elif match == 0:
89
+ # no match
90
+ raise ValueError("No match found when setting `actual_instance` in AssetMetadataAsset with oneOf schemas: FileAsset, MultiAsset, NullAsset, TextAsset. Details: " + ", ".join(error_messages))
91
+ else:
92
+ return v
93
+
94
+ @classmethod
95
+ def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self:
96
+ return cls.from_json(json.dumps(obj))
97
+
98
+ @classmethod
99
+ def from_json(cls, json_str: str) -> Self:
100
+ """Returns the object represented by the json string"""
101
+ instance = cls.model_construct()
102
+ error_messages = []
103
+ match = 0
104
+
105
+ # deserialize data into FileAsset
106
+ try:
107
+ instance.actual_instance = FileAsset.from_json(json_str)
108
+ match += 1
109
+ except (ValidationError, ValueError) as e:
110
+ error_messages.append(str(e))
111
+ # deserialize data into MultiAsset
112
+ try:
113
+ instance.actual_instance = MultiAsset.from_json(json_str)
114
+ match += 1
115
+ except (ValidationError, ValueError) as e:
116
+ error_messages.append(str(e))
117
+ # deserialize data into NullAsset
118
+ try:
119
+ instance.actual_instance = NullAsset.from_json(json_str)
120
+ match += 1
121
+ except (ValidationError, ValueError) as e:
122
+ error_messages.append(str(e))
123
+ # deserialize data into TextAsset
124
+ try:
125
+ instance.actual_instance = TextAsset.from_json(json_str)
126
+ match += 1
127
+ except (ValidationError, ValueError) as e:
128
+ error_messages.append(str(e))
129
+
130
+ if match > 1:
131
+ # more than 1 match
132
+ raise ValueError("Multiple matches found when deserializing the JSON string into AssetMetadataAsset with oneOf schemas: FileAsset, MultiAsset, NullAsset, TextAsset. Details: " + ", ".join(error_messages))
133
+ elif match == 0:
134
+ # no match
135
+ raise ValueError("No match found when deserializing the JSON string into AssetMetadataAsset with oneOf schemas: FileAsset, MultiAsset, NullAsset, TextAsset. Details: " + ", ".join(error_messages))
136
+ else:
137
+ return instance
138
+
139
+ def to_json(self) -> str:
140
+ """Returns the JSON representation of the actual instance"""
141
+ if self.actual_instance is None:
142
+ return "null"
143
+
144
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
145
+ return self.actual_instance.to_json()
146
+ else:
147
+ return json.dumps(self.actual_instance)
148
+
149
+ def to_dict(self) -> Optional[Union[Dict[str, Any], FileAsset, MultiAsset, NullAsset, TextAsset]]:
150
+ """Returns the dict representation of the actual instance"""
151
+ if self.actual_instance is None:
152
+ return None
153
+
154
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
155
+ return self.actual_instance.to_dict()
156
+ else:
157
+ # primitive type
158
+ return self.actual_instance
159
+
160
+ def to_str(self) -> str:
161
+ """Returns the string representation of the actual instance"""
162
+ return pprint.pformat(self.model_dump())
163
+
164
+ from rapidata.api_client.models.file_asset import FileAsset
165
+ from rapidata.api_client.models.multi_asset import MultiAsset
166
+ from rapidata.api_client.models.null_asset import NullAsset
167
+ from rapidata.api_client.models.text_asset import TextAsset
168
+ # TODO: Rewrite to not use raise_errors
169
+ AssetMetadataAsset.model_rebuild(raise_errors=False)
170
+
@@ -0,0 +1,102 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Rapidata.Dataset
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: v1
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
21
+ from typing import Any, ClassVar, Dict, List
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+
25
+ class AssetMetadataModel(BaseModel):
26
+ """
27
+ AssetMetadataModel
28
+ """ # noqa: E501
29
+ t: StrictStr = Field(description="Discriminator value for AssetModel", alias="_t")
30
+ asset: AssetMetadataModelAsset
31
+ __properties: ClassVar[List[str]] = ["_t", "asset"]
32
+
33
+ @field_validator('t')
34
+ def t_validate_enum(cls, value):
35
+ """Validates the enum"""
36
+ if value not in set(['AssetModel']):
37
+ raise ValueError("must be one of enum values ('AssetModel')")
38
+ return value
39
+
40
+ model_config = ConfigDict(
41
+ populate_by_name=True,
42
+ validate_assignment=True,
43
+ protected_namespaces=(),
44
+ )
45
+
46
+
47
+ def to_str(self) -> str:
48
+ """Returns the string representation of the model using alias"""
49
+ return pprint.pformat(self.model_dump(by_alias=True))
50
+
51
+ def to_json(self) -> str:
52
+ """Returns the JSON representation of the model using alias"""
53
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
54
+ return json.dumps(self.to_dict())
55
+
56
+ @classmethod
57
+ def from_json(cls, json_str: str) -> Optional[Self]:
58
+ """Create an instance of AssetMetadataModel from a JSON string"""
59
+ return cls.from_dict(json.loads(json_str))
60
+
61
+ def to_dict(self) -> Dict[str, Any]:
62
+ """Return the dictionary representation of the model using alias.
63
+
64
+ This has the following differences from calling pydantic's
65
+ `self.model_dump(by_alias=True)`:
66
+
67
+ * `None` is only added to the output dict for nullable fields that
68
+ were set at model initialization. Other fields with value `None`
69
+ are ignored.
70
+ """
71
+ excluded_fields: Set[str] = set([
72
+ ])
73
+
74
+ _dict = self.model_dump(
75
+ by_alias=True,
76
+ exclude=excluded_fields,
77
+ exclude_none=True,
78
+ )
79
+ # override the default output from pydantic by calling `to_dict()` of asset
80
+ if self.asset:
81
+ _dict['asset'] = self.asset.to_dict()
82
+ return _dict
83
+
84
+ @classmethod
85
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
86
+ """Create an instance of AssetMetadataModel from a dict"""
87
+ if obj is None:
88
+ return None
89
+
90
+ if not isinstance(obj, dict):
91
+ return cls.model_validate(obj)
92
+
93
+ _obj = cls.model_validate({
94
+ "_t": obj.get("_t") if obj.get("_t") is not None else 'AssetModel',
95
+ "asset": AssetMetadataModelAsset.from_dict(obj["asset"]) if obj.get("asset") is not None else None
96
+ })
97
+ return _obj
98
+
99
+ from rapidata.api_client.models.asset_metadata_model_asset import AssetMetadataModelAsset
100
+ # TODO: Rewrite to not use raise_errors
101
+ AssetMetadataModel.model_rebuild(raise_errors=False)
102
+