rapidata 2.28.5__py3-none-any.whl → 2.29.1__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 (90) hide show
  1. rapidata/__init__.py +1 -1
  2. rapidata/api_client/__init__.py +45 -8
  3. rapidata/api_client/api/__init__.py +1 -0
  4. rapidata/api_client/api/benchmark_api.py +3033 -0
  5. rapidata/api_client/api/customer_rapid_api.py +332 -1
  6. rapidata/api_client/api/dataset_api.py +16 -0
  7. rapidata/api_client/api/leaderboard_api.py +1392 -270
  8. rapidata/api_client/models/__init__.py +44 -8
  9. rapidata/api_client/models/add_campaign_model.py +3 -3
  10. rapidata/api_client/models/and_user_filter_model.py +106 -0
  11. rapidata/api_client/models/and_user_filter_model_filters_inner.py +282 -0
  12. rapidata/api_client/models/benchmark_query_result.py +94 -0
  13. rapidata/api_client/models/benchmark_query_result_paged_result.py +105 -0
  14. rapidata/api_client/models/boost_leaderboard_model.py +89 -0
  15. rapidata/api_client/models/create_benchmark_model.py +87 -0
  16. rapidata/api_client/models/create_benchmark_participant_model.py +87 -0
  17. rapidata/api_client/models/create_benchmark_participant_result.py +89 -0
  18. rapidata/api_client/models/create_benchmark_result.py +87 -0
  19. rapidata/api_client/models/create_datapoint_result.py +4 -16
  20. rapidata/api_client/models/create_leaderboard_model.py +20 -2
  21. rapidata/api_client/models/create_leaderboard_result.py +15 -3
  22. rapidata/api_client/models/create_order_model.py +3 -3
  23. rapidata/api_client/models/file_asset_input.py +104 -0
  24. rapidata/api_client/models/file_asset_input1.py +104 -0
  25. rapidata/api_client/models/file_asset_input1_file.py +168 -0
  26. rapidata/api_client/models/file_asset_input2.py +104 -0
  27. rapidata/api_client/models/file_asset_input3.py +104 -0
  28. rapidata/api_client/models/file_asset_input_file.py +182 -0
  29. rapidata/api_client/models/form_file_wrapper.py +120 -0
  30. rapidata/api_client/models/get_benchmark_by_id_query.py +96 -0
  31. rapidata/api_client/models/get_benchmark_by_id_query_result.py +94 -0
  32. rapidata/api_client/models/get_benchmark_by_id_query_result_paged_result.py +105 -0
  33. rapidata/api_client/models/get_benchmark_by_id_result.py +94 -0
  34. rapidata/api_client/models/get_leaderboard_by_id_result.py +11 -3
  35. rapidata/api_client/models/get_participant_by_id_result.py +6 -26
  36. rapidata/api_client/models/get_standing_by_id_result.py +113 -0
  37. rapidata/api_client/models/leaderboard_query_result.py +11 -3
  38. rapidata/api_client/models/local_file_wrapper.py +120 -0
  39. rapidata/api_client/models/multi_asset_input.py +110 -0
  40. rapidata/api_client/models/multi_asset_input1.py +110 -0
  41. rapidata/api_client/models/multi_asset_input1_assets_inner.py +170 -0
  42. rapidata/api_client/models/multi_asset_input2.py +110 -0
  43. rapidata/api_client/models/multi_asset_input3.py +110 -0
  44. rapidata/api_client/models/multi_asset_input3_assets_inner.py +170 -0
  45. rapidata/api_client/models/multi_asset_input_assets_inner.py +170 -0
  46. rapidata/api_client/models/not_user_filter_model.py +3 -3
  47. rapidata/api_client/models/or_user_filter_model.py +3 -3
  48. rapidata/api_client/models/participant_by_benchmark.py +102 -0
  49. rapidata/api_client/models/participant_by_benchmark_paged_result.py +105 -0
  50. rapidata/api_client/models/participant_status.py +1 -4
  51. rapidata/api_client/models/potential_validation_rapid.py +103 -0
  52. rapidata/api_client/models/potential_validation_rapid_paged_result.py +105 -0
  53. rapidata/api_client/models/potential_validation_rapid_truth.py +280 -0
  54. rapidata/api_client/models/prompt_asset_metadata_input.py +3 -3
  55. rapidata/api_client/models/prompt_asset_metadata_input_asset.py +170 -0
  56. rapidata/api_client/models/prompt_by_benchmark_result.py +92 -0
  57. rapidata/api_client/models/prompt_by_benchmark_result_paged_result.py +105 -0
  58. rapidata/api_client/models/prompt_metadata_input.py +5 -3
  59. rapidata/api_client/models/proxy_file_wrapper.py +114 -0
  60. rapidata/api_client/models/query_validation_model.py +97 -0
  61. rapidata/api_client/models/standing_by_leaderboard.py +113 -0
  62. rapidata/api_client/models/standing_by_leaderboard_paged_result.py +105 -0
  63. rapidata/api_client/models/standing_status.py +38 -0
  64. rapidata/api_client/models/stream_file_wrapper.py +116 -0
  65. rapidata/api_client/models/submit_prompt_model.py +105 -0
  66. rapidata/api_client/models/submit_prompt_model_prompt_asset.py +174 -0
  67. rapidata/api_client/models/text_asset_input.py +100 -0
  68. rapidata/api_client/models/transcription_metadata_input.py +5 -3
  69. rapidata/api_client/models/zip_entry_file_wrapper.py +120 -0
  70. rapidata/api_client_README.md +67 -16
  71. rapidata/rapidata_client/benchmark/leaderboard/__init__.py +0 -0
  72. rapidata/rapidata_client/benchmark/leaderboard/rapidata_leaderboard.py +115 -0
  73. rapidata/rapidata_client/benchmark/rapidata_benchmark.py +256 -0
  74. rapidata/rapidata_client/benchmark/rapidata_benchmark_manager.py +83 -0
  75. rapidata/rapidata_client/filter/not_filter.py +2 -2
  76. rapidata/rapidata_client/filter/or_filter.py +2 -2
  77. rapidata/rapidata_client/metadata/__init__.py +1 -0
  78. rapidata/rapidata_client/metadata/_media_asset_metadata.py +8 -1
  79. rapidata/rapidata_client/metadata/_prompt_identifier_metadata.py +15 -0
  80. rapidata/rapidata_client/order/_rapidata_dataset.py +6 -6
  81. rapidata/rapidata_client/order/_rapidata_order_builder.py +4 -4
  82. rapidata/rapidata_client/rapidata_client.py +3 -3
  83. rapidata/service/openapi_service.py +5 -0
  84. {rapidata-2.28.5.dist-info → rapidata-2.29.1.dist-info}/METADATA +1 -1
  85. {rapidata-2.28.5.dist-info → rapidata-2.29.1.dist-info}/RECORD +88 -37
  86. rapidata/rapidata_client/leaderboard/rapidata_leaderboard.py +0 -127
  87. rapidata/rapidata_client/leaderboard/rapidata_leaderboard_manager.py +0 -92
  88. /rapidata/rapidata_client/{leaderboard → benchmark}/__init__.py +0 -0
  89. {rapidata-2.28.5.dist-info → rapidata-2.29.1.dist-info}/LICENSE +0 -0
  90. {rapidata-2.28.5.dist-info → rapidata-2.29.1.dist-info}/WHEEL +0 -0
@@ -26,12 +26,16 @@ class CreateLeaderboardModel(BaseModel):
26
26
  """
27
27
  The CreateLeaderboardModel class represents the model for creating a leaderboard.
28
28
  """ # noqa: E501
29
+ benchmark_id: Optional[StrictStr] = Field(default=None, description="If a leaderboard should be added to a preexisting benchmark, the benchmark Id can be provided.", alias="benchmarkId")
30
+ benchmark_name: Optional[StrictStr] = Field(default=None, description="If no BenchmarkId is provided a new benchmark will be created. if no name is supplied the benchmark will be called the same as the leaderboard.", alias="benchmarkName")
29
31
  name: StrictStr = Field(description="The name of the leaderboard.")
30
32
  instruction: StrictStr = Field(description="The instruction datapoints will be matched up against.")
31
33
  show_prompt: StrictBool = Field(description="Indicates if the prompt is shown on the rapids.", alias="showPrompt")
34
+ show_prompt_asset: Optional[StrictBool] = Field(default=None, description="Whether the prompt asset should be shown on the rapids.", alias="showPromptAsset")
32
35
  response_budget: Optional[StrictInt] = Field(default=None, description="Total amount of responses that get collected per run", alias="responseBudget")
33
36
  min_responses: Optional[StrictInt] = Field(default=None, description="The minimum amount of responses that need to be collected per comparison.", alias="minResponses")
34
- __properties: ClassVar[List[str]] = ["name", "instruction", "showPrompt", "responseBudget", "minResponses"]
37
+ is_inversed: Optional[StrictBool] = Field(default=None, description="If the results should be inversed, meaning people should select the worse model.", alias="isInversed")
38
+ __properties: ClassVar[List[str]] = ["benchmarkId", "benchmarkName", "name", "instruction", "showPrompt", "showPromptAsset", "responseBudget", "minResponses", "isInversed"]
35
39
 
36
40
  model_config = ConfigDict(
37
41
  populate_by_name=True,
@@ -72,6 +76,16 @@ class CreateLeaderboardModel(BaseModel):
72
76
  exclude=excluded_fields,
73
77
  exclude_none=True,
74
78
  )
79
+ # set to None if benchmark_id (nullable) is None
80
+ # and model_fields_set contains the field
81
+ if self.benchmark_id is None and "benchmark_id" in self.model_fields_set:
82
+ _dict['benchmarkId'] = None
83
+
84
+ # set to None if benchmark_name (nullable) is None
85
+ # and model_fields_set contains the field
86
+ if self.benchmark_name is None and "benchmark_name" in self.model_fields_set:
87
+ _dict['benchmarkName'] = None
88
+
75
89
  return _dict
76
90
 
77
91
  @classmethod
@@ -84,11 +98,15 @@ class CreateLeaderboardModel(BaseModel):
84
98
  return cls.model_validate(obj)
85
99
 
86
100
  _obj = cls.model_validate({
101
+ "benchmarkId": obj.get("benchmarkId"),
102
+ "benchmarkName": obj.get("benchmarkName"),
87
103
  "name": obj.get("name"),
88
104
  "instruction": obj.get("instruction"),
89
105
  "showPrompt": obj.get("showPrompt"),
106
+ "showPromptAsset": obj.get("showPromptAsset"),
90
107
  "responseBudget": obj.get("responseBudget"),
91
- "minResponses": obj.get("minResponses")
108
+ "minResponses": obj.get("minResponses"),
109
+ "isInversed": obj.get("isInversed")
92
110
  })
93
111
  return _obj
94
112
 
@@ -17,7 +17,7 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from pydantic import BaseModel, ConfigDict, StrictStr
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
21
21
  from typing import Any, ClassVar, Dict, List
22
22
  from typing import Optional, Set
23
23
  from typing_extensions import Self
@@ -27,7 +27,13 @@ class CreateLeaderboardResult(BaseModel):
27
27
  CreateLeaderboardResult
28
28
  """ # noqa: E501
29
29
  id: StrictStr
30
- __properties: ClassVar[List[str]] = ["id"]
30
+ benchmark_id: StrictStr = Field(alias="benchmarkId")
31
+ show_prompt: StrictBool = Field(alias="showPrompt")
32
+ show_prompt_asset: StrictBool = Field(alias="showPromptAsset")
33
+ response_budget: StrictInt = Field(alias="responseBudget")
34
+ min_responses: StrictInt = Field(alias="minResponses")
35
+ is_inversed: StrictBool = Field(alias="isInversed")
36
+ __properties: ClassVar[List[str]] = ["id", "benchmarkId", "showPrompt", "showPromptAsset", "responseBudget", "minResponses", "isInversed"]
31
37
 
32
38
  model_config = ConfigDict(
33
39
  populate_by_name=True,
@@ -80,7 +86,13 @@ class CreateLeaderboardResult(BaseModel):
80
86
  return cls.model_validate(obj)
81
87
 
82
88
  _obj = cls.model_validate({
83
- "id": obj.get("id")
89
+ "id": obj.get("id"),
90
+ "benchmarkId": obj.get("benchmarkId"),
91
+ "showPrompt": obj.get("showPrompt"),
92
+ "showPromptAsset": obj.get("showPromptAsset"),
93
+ "responseBudget": obj.get("responseBudget"),
94
+ "minResponses": obj.get("minResponses"),
95
+ "isInversed": obj.get("isInversed")
84
96
  })
85
97
  return _obj
86
98
 
@@ -20,8 +20,8 @@ import json
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator
21
21
  from typing import Any, ClassVar, Dict, List, Optional
22
22
  from rapidata.api_client.models.ab_test_selection_a_inner import AbTestSelectionAInner
23
+ from rapidata.api_client.models.and_user_filter_model_filters_inner import AndUserFilterModelFiltersInner
23
24
  from rapidata.api_client.models.create_order_model_referee import CreateOrderModelReferee
24
- from rapidata.api_client.models.create_order_model_user_filters_inner import CreateOrderModelUserFiltersInner
25
25
  from rapidata.api_client.models.create_order_model_workflow import CreateOrderModelWorkflow
26
26
  from rapidata.api_client.models.feature_flag_model import FeatureFlagModel
27
27
  from typing import Optional, Set
@@ -41,7 +41,7 @@ class CreateOrderModel(BaseModel):
41
41
  sticky_state: Optional[StrictStr] = Field(default=None, description="Indicates if the underlying campaign should be sticky.", alias="stickyState")
42
42
  user_score_dimensions: Optional[List[StrictStr]] = Field(default=None, description="The user score dimensions are used to determine the score of the responses from the user.", alias="userScoreDimensions")
43
43
  demographic_keys: Optional[List[StrictStr]] = Field(default=None, description="The demographic keys are used to determine which demographics to store on the resposnes from the user.", alias="demographicKeys")
44
- user_filters: Optional[List[CreateOrderModelUserFiltersInner]] = Field(default=None, description="The user filters are used to restrict the order to only collect votes from a specific demographic.", alias="userFilters")
44
+ user_filters: Optional[List[AndUserFilterModelFiltersInner]] = Field(default=None, description="The user filters are used to restrict the order to only collect votes from a specific demographic.", alias="userFilters")
45
45
  validation_set_id: Optional[StrictStr] = Field(default=None, description="The validation set id can be changed to point to a specific validation set. if not provided a sane default will be used.", alias="validationSetId")
46
46
  selections: Optional[List[AbTestSelectionAInner]] = Field(default=None, description="The selections are used to determine which tasks are shown to a user.")
47
47
  retrieval_mode: Optional[StrictStr] = Field(default=None, description="The retrieval mode defines how rapids are retrieved from the active labeling pool.", alias="retrievalMode")
@@ -228,7 +228,7 @@ class CreateOrderModel(BaseModel):
228
228
  "stickyState": obj.get("stickyState"),
229
229
  "userScoreDimensions": obj.get("userScoreDimensions"),
230
230
  "demographicKeys": obj.get("demographicKeys"),
231
- "userFilters": [CreateOrderModelUserFiltersInner.from_dict(_item) for _item in obj["userFilters"]] if obj.get("userFilters") is not None else None,
231
+ "userFilters": [AndUserFilterModelFiltersInner.from_dict(_item) for _item in obj["userFilters"]] if obj.get("userFilters") is not None else None,
232
232
  "validationSetId": obj.get("validationSetId"),
233
233
  "selections": [AbTestSelectionAInner.from_dict(_item) for _item in obj["selections"]] if obj.get("selections") is not None else None,
234
234
  "retrievalMode": obj.get("retrievalMode"),
@@ -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, Optional
22
+ from rapidata.api_client.models.file_asset_input_file import FileAssetInputFile
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class FileAssetInput(BaseModel):
27
+ """
28
+ FileAssetInput
29
+ """ # noqa: E501
30
+ t: StrictStr = Field(description="Discriminator value for FileAssetInput", alias="_t")
31
+ file: FileAssetInputFile
32
+ identifier: Optional[StrictStr] = None
33
+ __properties: ClassVar[List[str]] = ["_t", "file", "identifier"]
34
+
35
+ @field_validator('t')
36
+ def t_validate_enum(cls, value):
37
+ """Validates the enum"""
38
+ if value not in set(['FileAssetInput']):
39
+ raise ValueError("must be one of enum values ('FileAssetInput')")
40
+ return value
41
+
42
+ model_config = ConfigDict(
43
+ populate_by_name=True,
44
+ validate_assignment=True,
45
+ protected_namespaces=(),
46
+ )
47
+
48
+
49
+ def to_str(self) -> str:
50
+ """Returns the string representation of the model using alias"""
51
+ return pprint.pformat(self.model_dump(by_alias=True))
52
+
53
+ def to_json(self) -> str:
54
+ """Returns the JSON representation of the model using alias"""
55
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
56
+ return json.dumps(self.to_dict())
57
+
58
+ @classmethod
59
+ def from_json(cls, json_str: str) -> Optional[Self]:
60
+ """Create an instance of FileAssetInput from a JSON string"""
61
+ return cls.from_dict(json.loads(json_str))
62
+
63
+ def to_dict(self) -> Dict[str, Any]:
64
+ """Return the dictionary representation of the model using alias.
65
+
66
+ This has the following differences from calling pydantic's
67
+ `self.model_dump(by_alias=True)`:
68
+
69
+ * `None` is only added to the output dict for nullable fields that
70
+ were set at model initialization. Other fields with value `None`
71
+ are ignored.
72
+ * OpenAPI `readOnly` fields are excluded.
73
+ """
74
+ excluded_fields: Set[str] = set([
75
+ "identifier",
76
+ ])
77
+
78
+ _dict = self.model_dump(
79
+ by_alias=True,
80
+ exclude=excluded_fields,
81
+ exclude_none=True,
82
+ )
83
+ # override the default output from pydantic by calling `to_dict()` of file
84
+ if self.file:
85
+ _dict['file'] = self.file.to_dict()
86
+ return _dict
87
+
88
+ @classmethod
89
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
90
+ """Create an instance of FileAssetInput from a dict"""
91
+ if obj is None:
92
+ return None
93
+
94
+ if not isinstance(obj, dict):
95
+ return cls.model_validate(obj)
96
+
97
+ _obj = cls.model_validate({
98
+ "_t": obj.get("_t") if obj.get("_t") is not None else 'FileAssetInput',
99
+ "file": FileAssetInputFile.from_dict(obj["file"]) if obj.get("file") is not None else None,
100
+ "identifier": obj.get("identifier")
101
+ })
102
+ return _obj
103
+
104
+
@@ -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, Optional
22
+ from rapidata.api_client.models.file_asset_input1_file import FileAssetInput1File
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class FileAssetInput1(BaseModel):
27
+ """
28
+ FileAssetInput1
29
+ """ # noqa: E501
30
+ t: StrictStr = Field(description="Discriminator value for FileAssetInput", alias="_t")
31
+ file: FileAssetInput1File
32
+ identifier: Optional[StrictStr] = None
33
+ __properties: ClassVar[List[str]] = ["_t", "file", "identifier"]
34
+
35
+ @field_validator('t')
36
+ def t_validate_enum(cls, value):
37
+ """Validates the enum"""
38
+ if value not in set(['FileAssetInput']):
39
+ raise ValueError("must be one of enum values ('FileAssetInput')")
40
+ return value
41
+
42
+ model_config = ConfigDict(
43
+ populate_by_name=True,
44
+ validate_assignment=True,
45
+ protected_namespaces=(),
46
+ )
47
+
48
+
49
+ def to_str(self) -> str:
50
+ """Returns the string representation of the model using alias"""
51
+ return pprint.pformat(self.model_dump(by_alias=True))
52
+
53
+ def to_json(self) -> str:
54
+ """Returns the JSON representation of the model using alias"""
55
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
56
+ return json.dumps(self.to_dict())
57
+
58
+ @classmethod
59
+ def from_json(cls, json_str: str) -> Optional[Self]:
60
+ """Create an instance of FileAssetInput1 from a JSON string"""
61
+ return cls.from_dict(json.loads(json_str))
62
+
63
+ def to_dict(self) -> Dict[str, Any]:
64
+ """Return the dictionary representation of the model using alias.
65
+
66
+ This has the following differences from calling pydantic's
67
+ `self.model_dump(by_alias=True)`:
68
+
69
+ * `None` is only added to the output dict for nullable fields that
70
+ were set at model initialization. Other fields with value `None`
71
+ are ignored.
72
+ * OpenAPI `readOnly` fields are excluded.
73
+ """
74
+ excluded_fields: Set[str] = set([
75
+ "identifier",
76
+ ])
77
+
78
+ _dict = self.model_dump(
79
+ by_alias=True,
80
+ exclude=excluded_fields,
81
+ exclude_none=True,
82
+ )
83
+ # override the default output from pydantic by calling `to_dict()` of file
84
+ if self.file:
85
+ _dict['file'] = self.file.to_dict()
86
+ return _dict
87
+
88
+ @classmethod
89
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
90
+ """Create an instance of FileAssetInput1 from a dict"""
91
+ if obj is None:
92
+ return None
93
+
94
+ if not isinstance(obj, dict):
95
+ return cls.model_validate(obj)
96
+
97
+ _obj = cls.model_validate({
98
+ "_t": obj.get("_t") if obj.get("_t") is not None else 'FileAssetInput',
99
+ "file": FileAssetInput1File.from_dict(obj["file"]) if obj.get("file") is not None else None,
100
+ "identifier": obj.get("identifier")
101
+ })
102
+ return _obj
103
+
104
+
@@ -0,0 +1,168 @@
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 rapidata.api_client.models.form_file_wrapper import FormFileWrapper
21
+ from rapidata.api_client.models.proxy_file_wrapper import ProxyFileWrapper
22
+ from rapidata.api_client.models.stream_file_wrapper import StreamFileWrapper
23
+ from rapidata.api_client.models.zip_entry_file_wrapper import ZipEntryFileWrapper
24
+ from pydantic import StrictStr, Field
25
+ from typing import Union, List, Set, Optional, Dict
26
+ from typing_extensions import Literal, Self
27
+
28
+ FILEASSETINPUT1FILE_ONE_OF_SCHEMAS = ["FormFileWrapper", "ProxyFileWrapper", "StreamFileWrapper", "ZipEntryFileWrapper"]
29
+
30
+ class FileAssetInput1File(BaseModel):
31
+ """
32
+ FileAssetInput1File
33
+ """
34
+ # data type: FormFileWrapper
35
+ oneof_schema_1_validator: Optional[FormFileWrapper] = None
36
+ # data type: ProxyFileWrapper
37
+ oneof_schema_2_validator: Optional[ProxyFileWrapper] = None
38
+ # data type: StreamFileWrapper
39
+ oneof_schema_3_validator: Optional[StreamFileWrapper] = None
40
+ # data type: ZipEntryFileWrapper
41
+ oneof_schema_4_validator: Optional[ZipEntryFileWrapper] = None
42
+ actual_instance: Optional[Union[FormFileWrapper, ProxyFileWrapper, StreamFileWrapper, ZipEntryFileWrapper]] = None
43
+ one_of_schemas: Set[str] = { "FormFileWrapper", "ProxyFileWrapper", "StreamFileWrapper", "ZipEntryFileWrapper" }
44
+
45
+ model_config = ConfigDict(
46
+ validate_assignment=True,
47
+ protected_namespaces=(),
48
+ )
49
+
50
+
51
+ discriminator_value_class_map: Dict[str, str] = {
52
+ }
53
+
54
+ def __init__(self, *args, **kwargs) -> None:
55
+ if args:
56
+ if len(args) > 1:
57
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
58
+ if kwargs:
59
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
60
+ super().__init__(actual_instance=args[0])
61
+ else:
62
+ super().__init__(**kwargs)
63
+
64
+ @field_validator('actual_instance')
65
+ def actual_instance_must_validate_oneof(cls, v):
66
+ instance = FileAssetInput1File.model_construct()
67
+ error_messages = []
68
+ match = 0
69
+ # validate data type: FormFileWrapper
70
+ if not isinstance(v, FormFileWrapper):
71
+ error_messages.append(f"Error! Input type `{type(v)}` is not `FormFileWrapper`")
72
+ else:
73
+ match += 1
74
+ # validate data type: ProxyFileWrapper
75
+ if not isinstance(v, ProxyFileWrapper):
76
+ error_messages.append(f"Error! Input type `{type(v)}` is not `ProxyFileWrapper`")
77
+ else:
78
+ match += 1
79
+ # validate data type: StreamFileWrapper
80
+ if not isinstance(v, StreamFileWrapper):
81
+ error_messages.append(f"Error! Input type `{type(v)}` is not `StreamFileWrapper`")
82
+ else:
83
+ match += 1
84
+ # validate data type: ZipEntryFileWrapper
85
+ if not isinstance(v, ZipEntryFileWrapper):
86
+ error_messages.append(f"Error! Input type `{type(v)}` is not `ZipEntryFileWrapper`")
87
+ else:
88
+ match += 1
89
+ if match > 1:
90
+ # more than 1 match
91
+ raise ValueError("Multiple matches found when setting `actual_instance` in FileAssetInput1File with oneOf schemas: FormFileWrapper, ProxyFileWrapper, StreamFileWrapper, ZipEntryFileWrapper. Details: " + ", ".join(error_messages))
92
+ elif match == 0:
93
+ # no match
94
+ raise ValueError("No match found when setting `actual_instance` in FileAssetInput1File with oneOf schemas: FormFileWrapper, ProxyFileWrapper, StreamFileWrapper, ZipEntryFileWrapper. Details: " + ", ".join(error_messages))
95
+ else:
96
+ return v
97
+
98
+ @classmethod
99
+ def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self:
100
+ return cls.from_json(json.dumps(obj))
101
+
102
+ @classmethod
103
+ def from_json(cls, json_str: str) -> Self:
104
+ """Returns the object represented by the json string"""
105
+ instance = cls.model_construct()
106
+ error_messages = []
107
+ match = 0
108
+
109
+ # deserialize data into FormFileWrapper
110
+ try:
111
+ instance.actual_instance = FormFileWrapper.from_json(json_str)
112
+ match += 1
113
+ except (ValidationError, ValueError) as e:
114
+ error_messages.append(str(e))
115
+ # deserialize data into ProxyFileWrapper
116
+ try:
117
+ instance.actual_instance = ProxyFileWrapper.from_json(json_str)
118
+ match += 1
119
+ except (ValidationError, ValueError) as e:
120
+ error_messages.append(str(e))
121
+ # deserialize data into StreamFileWrapper
122
+ try:
123
+ instance.actual_instance = StreamFileWrapper.from_json(json_str)
124
+ match += 1
125
+ except (ValidationError, ValueError) as e:
126
+ error_messages.append(str(e))
127
+ # deserialize data into ZipEntryFileWrapper
128
+ try:
129
+ instance.actual_instance = ZipEntryFileWrapper.from_json(json_str)
130
+ match += 1
131
+ except (ValidationError, ValueError) as e:
132
+ error_messages.append(str(e))
133
+
134
+ if match > 1:
135
+ # more than 1 match
136
+ raise ValueError("Multiple matches found when deserializing the JSON string into FileAssetInput1File with oneOf schemas: FormFileWrapper, ProxyFileWrapper, StreamFileWrapper, ZipEntryFileWrapper. Details: " + ", ".join(error_messages))
137
+ elif match == 0:
138
+ # no match
139
+ raise ValueError("No match found when deserializing the JSON string into FileAssetInput1File with oneOf schemas: FormFileWrapper, ProxyFileWrapper, StreamFileWrapper, ZipEntryFileWrapper. Details: " + ", ".join(error_messages))
140
+ else:
141
+ return instance
142
+
143
+ def to_json(self) -> str:
144
+ """Returns the JSON representation of the actual instance"""
145
+ if self.actual_instance is None:
146
+ return "null"
147
+
148
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
149
+ return self.actual_instance.to_json()
150
+ else:
151
+ return json.dumps(self.actual_instance)
152
+
153
+ def to_dict(self) -> Optional[Union[Dict[str, Any], FormFileWrapper, ProxyFileWrapper, StreamFileWrapper, ZipEntryFileWrapper]]:
154
+ """Returns the dict representation of the actual instance"""
155
+ if self.actual_instance is None:
156
+ return None
157
+
158
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
159
+ return self.actual_instance.to_dict()
160
+ else:
161
+ # primitive type
162
+ return self.actual_instance
163
+
164
+ def to_str(self) -> str:
165
+ """Returns the string representation of the actual instance"""
166
+ return pprint.pformat(self.model_dump())
167
+
168
+
@@ -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, Optional
22
+ from rapidata.api_client.models.file_asset_input1_file import FileAssetInput1File
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class FileAssetInput2(BaseModel):
27
+ """
28
+ FileAssetInput2
29
+ """ # noqa: E501
30
+ t: StrictStr = Field(description="Discriminator value for FileAssetInput", alias="_t")
31
+ file: FileAssetInput1File
32
+ identifier: Optional[StrictStr] = None
33
+ __properties: ClassVar[List[str]] = ["_t", "file", "identifier"]
34
+
35
+ @field_validator('t')
36
+ def t_validate_enum(cls, value):
37
+ """Validates the enum"""
38
+ if value not in set(['FileAssetInput']):
39
+ raise ValueError("must be one of enum values ('FileAssetInput')")
40
+ return value
41
+
42
+ model_config = ConfigDict(
43
+ populate_by_name=True,
44
+ validate_assignment=True,
45
+ protected_namespaces=(),
46
+ )
47
+
48
+
49
+ def to_str(self) -> str:
50
+ """Returns the string representation of the model using alias"""
51
+ return pprint.pformat(self.model_dump(by_alias=True))
52
+
53
+ def to_json(self) -> str:
54
+ """Returns the JSON representation of the model using alias"""
55
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
56
+ return json.dumps(self.to_dict())
57
+
58
+ @classmethod
59
+ def from_json(cls, json_str: str) -> Optional[Self]:
60
+ """Create an instance of FileAssetInput2 from a JSON string"""
61
+ return cls.from_dict(json.loads(json_str))
62
+
63
+ def to_dict(self) -> Dict[str, Any]:
64
+ """Return the dictionary representation of the model using alias.
65
+
66
+ This has the following differences from calling pydantic's
67
+ `self.model_dump(by_alias=True)`:
68
+
69
+ * `None` is only added to the output dict for nullable fields that
70
+ were set at model initialization. Other fields with value `None`
71
+ are ignored.
72
+ * OpenAPI `readOnly` fields are excluded.
73
+ """
74
+ excluded_fields: Set[str] = set([
75
+ "identifier",
76
+ ])
77
+
78
+ _dict = self.model_dump(
79
+ by_alias=True,
80
+ exclude=excluded_fields,
81
+ exclude_none=True,
82
+ )
83
+ # override the default output from pydantic by calling `to_dict()` of file
84
+ if self.file:
85
+ _dict['file'] = self.file.to_dict()
86
+ return _dict
87
+
88
+ @classmethod
89
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
90
+ """Create an instance of FileAssetInput2 from a dict"""
91
+ if obj is None:
92
+ return None
93
+
94
+ if not isinstance(obj, dict):
95
+ return cls.model_validate(obj)
96
+
97
+ _obj = cls.model_validate({
98
+ "_t": obj.get("_t") if obj.get("_t") is not None else 'FileAssetInput',
99
+ "file": FileAssetInput1File.from_dict(obj["file"]) if obj.get("file") is not None else None,
100
+ "identifier": obj.get("identifier")
101
+ })
102
+ return _obj
103
+
104
+