rapidata 2.13.1__py3-none-any.whl → 2.14.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 (63) hide show
  1. rapidata/api_client/__init__.py +18 -4
  2. rapidata/api_client/api/__init__.py +1 -0
  3. rapidata/api_client/api/dataset_api.py +265 -0
  4. rapidata/api_client/api/rapid_api.py +262 -0
  5. rapidata/api_client/api/workflow_api.py +298 -1
  6. rapidata/api_client/models/__init__.py +17 -4
  7. rapidata/api_client/models/add_campaign_model.py +3 -3
  8. rapidata/api_client/models/add_validation_rapid_model.py +3 -3
  9. rapidata/api_client/models/add_validation_text_rapid_model.py +3 -3
  10. rapidata/api_client/models/classification_metadata.py +2 -4
  11. rapidata/api_client/models/compare_workflow_config.py +17 -2
  12. rapidata/api_client/models/compare_workflow_config_metadata_value.py +238 -0
  13. rapidata/api_client/models/compare_workflow_config_model.py +17 -2
  14. rapidata/api_client/models/compare_workflow_model.py +17 -2
  15. rapidata/api_client/models/count_metadata.py +1 -3
  16. rapidata/api_client/models/create_datapoint_from_urls_model.py +26 -4
  17. rapidata/api_client/models/create_datapoint_from_urls_model_metadata_inner.py +168 -0
  18. rapidata/api_client/models/create_datapoint_result.py +5 -3
  19. rapidata/api_client/models/datapoint.py +7 -30
  20. rapidata/api_client/models/datapoint_asset.py +40 -40
  21. rapidata/api_client/models/datapoint_metadata_model.py +3 -3
  22. rapidata/api_client/models/datapoint_model.py +3 -3
  23. rapidata/api_client/models/early_stopping_referee_model.py +1 -1
  24. rapidata/api_client/models/get_compare_workflow_results_result.py +3 -3
  25. rapidata/api_client/models/get_datapoint_by_id_result.py +3 -3
  26. rapidata/api_client/models/get_failed_datapoints_result.py +95 -0
  27. rapidata/api_client/models/get_rapid_responses_result.py +112 -0
  28. rapidata/api_client/models/get_responses_result.py +95 -0
  29. rapidata/api_client/models/get_simple_workflow_results_result.py +10 -4
  30. rapidata/api_client/models/image_dimension_metadata.py +1 -3
  31. rapidata/api_client/models/location_metadata.py +2 -4
  32. rapidata/api_client/models/metadata_visibilities.py +1 -0
  33. rapidata/api_client/models/multi_asset_model.py +3 -3
  34. rapidata/api_client/models/original_filename_metadata.py +2 -4
  35. rapidata/api_client/models/prompt_metadata.py +1 -3
  36. rapidata/api_client/models/scrub_result.py +4 -4
  37. rapidata/api_client/models/source_url_metadata.py +98 -0
  38. rapidata/api_client/models/text_metadata.py +3 -5
  39. rapidata/api_client/models/transcription_metadata.py +1 -3
  40. rapidata/api_client/models/upload_text_sources_to_dataset_model.py +17 -2
  41. rapidata/api_client_README.md +21 -4
  42. rapidata/rapidata_client/assets/_media_asset.py +5 -1
  43. rapidata/rapidata_client/assets/_multi_asset.py +6 -1
  44. rapidata/rapidata_client/filter/country_filter.py +1 -1
  45. rapidata/rapidata_client/filter/rapidata_filters.py +10 -2
  46. rapidata/rapidata_client/order/_rapidata_dataset.py +311 -108
  47. rapidata/rapidata_client/order/_rapidata_order_builder.py +5 -5
  48. rapidata/rapidata_client/order/rapidata_order.py +2 -2
  49. rapidata/rapidata_client/order/rapidata_order_manager.py +55 -6
  50. rapidata/rapidata_client/order/rapidata_results.py +2 -1
  51. rapidata/rapidata_client/rapidata_client.py +4 -0
  52. rapidata/rapidata_client/selection/rapidata_selections.py +10 -9
  53. rapidata/rapidata_client/settings/no_shuffle.py +2 -2
  54. rapidata/rapidata_client/settings/rapidata_settings.py +8 -0
  55. rapidata/rapidata_client/validation/rapids/rapids.py +4 -5
  56. rapidata/rapidata_client/workflow/__init__.py +1 -0
  57. rapidata/rapidata_client/workflow/_ranking_workflow.py +51 -0
  58. rapidata/service/credential_manager.py +7 -0
  59. rapidata/service/openapi_service.py +6 -6
  60. {rapidata-2.13.1.dist-info → rapidata-2.14.1.dist-info}/METADATA +1 -1
  61. {rapidata-2.13.1.dist-info → rapidata-2.14.1.dist-info}/RECORD +63 -56
  62. {rapidata-2.13.1.dist-info → rapidata-2.14.1.dist-info}/LICENSE +0 -0
  63. {rapidata-2.13.1.dist-info → rapidata-2.14.1.dist-info}/WHEEL +0 -0
@@ -18,7 +18,6 @@ from rapidata.api_client.models.ab_test_selection import AbTestSelection
18
18
  from rapidata.api_client.models.ab_test_selection_a_inner import AbTestSelectionAInner
19
19
  from rapidata.api_client.models.add_campaign_artifact_result import AddCampaignArtifactResult
20
20
  from rapidata.api_client.models.add_campaign_model import AddCampaignModel
21
- from rapidata.api_client.models.add_campaign_model_user_filters_inner import AddCampaignModelUserFiltersInner
22
21
  from rapidata.api_client.models.add_validation_rapid_model import AddValidationRapidModel
23
22
  from rapidata.api_client.models.add_validation_rapid_model_payload import AddValidationRapidModelPayload
24
23
  from rapidata.api_client.models.add_validation_rapid_model_truth import AddValidationRapidModelTruth
@@ -42,6 +41,7 @@ from rapidata.api_client.models.campaign_query_result_paged_result import Campai
42
41
  from rapidata.api_client.models.campaign_status import CampaignStatus
43
42
  from rapidata.api_client.models.campaign_user_filter_model import CampaignUserFilterModel
44
43
  from rapidata.api_client.models.capped_selection import CappedSelection
44
+ from rapidata.api_client.models.classification_metadata import ClassificationMetadata
45
45
  from rapidata.api_client.models.classification_metadata_filter_config import ClassificationMetadataFilterConfig
46
46
  from rapidata.api_client.models.classification_metadata_model import ClassificationMetadataModel
47
47
  from rapidata.api_client.models.classify_payload import ClassifyPayload
@@ -55,6 +55,7 @@ from rapidata.api_client.models.compare_rapid_blueprint import CompareRapidBluep
55
55
  from rapidata.api_client.models.compare_result import CompareResult
56
56
  from rapidata.api_client.models.compare_truth import CompareTruth
57
57
  from rapidata.api_client.models.compare_workflow_config import CompareWorkflowConfig
58
+ from rapidata.api_client.models.compare_workflow_config_metadata_value import CompareWorkflowConfigMetadataValue
58
59
  from rapidata.api_client.models.compare_workflow_config_model import CompareWorkflowConfigModel
59
60
  from rapidata.api_client.models.compare_workflow_config_model_pair_maker_config import CompareWorkflowConfigModelPairMakerConfig
60
61
  from rapidata.api_client.models.compare_workflow_config_pair_maker_config import CompareWorkflowConfigPairMakerConfig
@@ -66,6 +67,7 @@ from rapidata.api_client.models.compare_workflow_model_pair_maker_config import
66
67
  from rapidata.api_client.models.conditional_validation_selection import ConditionalValidationSelection
67
68
  from rapidata.api_client.models.coordinate import Coordinate
68
69
  from rapidata.api_client.models.count_classification_metadata_filter_config import CountClassificationMetadataFilterConfig
70
+ from rapidata.api_client.models.count_metadata import CountMetadata
69
71
  from rapidata.api_client.models.count_metadata_model import CountMetadataModel
70
72
  from rapidata.api_client.models.country_user_filter_model import CountryUserFilterModel
71
73
  from rapidata.api_client.models.create_bridge_token_result import CreateBridgeTokenResult
@@ -75,6 +77,7 @@ from rapidata.api_client.models.create_complex_order_model import CreateComplexO
75
77
  from rapidata.api_client.models.create_complex_order_model_pipeline import CreateComplexOrderModelPipeline
76
78
  from rapidata.api_client.models.create_complex_order_result import CreateComplexOrderResult
77
79
  from rapidata.api_client.models.create_datapoint_from_urls_model import CreateDatapointFromUrlsModel
80
+ from rapidata.api_client.models.create_datapoint_from_urls_model_metadata_inner import CreateDatapointFromUrlsModelMetadataInner
78
81
  from rapidata.api_client.models.create_datapoint_result import CreateDatapointResult
79
82
  from rapidata.api_client.models.create_dataset_artifact_model import CreateDatasetArtifactModel
80
83
  from rapidata.api_client.models.create_dataset_artifact_model_dataset import CreateDatasetArtifactModelDataset
@@ -90,10 +93,10 @@ from rapidata.api_client.models.create_simple_pipeline_model_artifacts_inner imp
90
93
  from rapidata.api_client.models.create_simple_pipeline_model_pipeline_steps_inner import CreateSimplePipelineModelPipelineStepsInner
91
94
  from rapidata.api_client.models.create_unsupported_order_model import CreateUnsupportedOrderModel
92
95
  from rapidata.api_client.models.custom_user_filter_model import CustomUserFilterModel
96
+ from rapidata.api_client.models.datapoint import Datapoint
97
+ from rapidata.api_client.models.datapoint_asset import DatapointAsset
93
98
  from rapidata.api_client.models.datapoint_metadata_model import DatapointMetadataModel
94
- from rapidata.api_client.models.datapoint_metadata_model_metadata_inner import DatapointMetadataModelMetadataInner
95
99
  from rapidata.api_client.models.datapoint_model import DatapointModel
96
- from rapidata.api_client.models.datapoint_model_asset import DatapointModelAsset
97
100
  from rapidata.api_client.models.datapoint_state import DatapointState
98
101
  from rapidata.api_client.models.dataset_artifact_model import DatasetArtifactModel
99
102
  from rapidata.api_client.models.dataset_evaluation_step_model import DatasetEvaluationStepModel
@@ -128,10 +131,13 @@ from rapidata.api_client.models.get_datapoint_by_id_result import GetDatapointBy
128
131
  from rapidata.api_client.models.get_datapoints_by_dataset_id_result import GetDatapointsByDatasetIdResult
129
132
  from rapidata.api_client.models.get_dataset_by_id_result import GetDatasetByIdResult
130
133
  from rapidata.api_client.models.get_dataset_progress_result import GetDatasetProgressResult
134
+ from rapidata.api_client.models.get_failed_datapoints_result import GetFailedDatapointsResult
131
135
  from rapidata.api_client.models.get_order_by_id_result import GetOrderByIdResult
132
136
  from rapidata.api_client.models.get_pipeline_by_id_result import GetPipelineByIdResult
133
137
  from rapidata.api_client.models.get_pipeline_by_id_result_artifacts_value import GetPipelineByIdResultArtifactsValue
134
138
  from rapidata.api_client.models.get_public_orders_result import GetPublicOrdersResult
139
+ from rapidata.api_client.models.get_rapid_responses_result import GetRapidResponsesResult
140
+ from rapidata.api_client.models.get_responses_result import GetResponsesResult
135
141
  from rapidata.api_client.models.get_simple_workflow_results_model import GetSimpleWorkflowResultsModel
136
142
  from rapidata.api_client.models.get_simple_workflow_results_result import GetSimpleWorkflowResultsResult
137
143
  from rapidata.api_client.models.get_simple_workflow_results_result_paged_result import GetSimpleWorkflowResultsResultPagedResult
@@ -141,6 +147,7 @@ from rapidata.api_client.models.get_workflow_by_id_result_workflow import GetWor
141
147
  from rapidata.api_client.models.get_workflow_progress_result import GetWorkflowProgressResult
142
148
  from rapidata.api_client.models.i_workflow_model_paged_result import IWorkflowModelPagedResult
143
149
  from rapidata.api_client.models.identity_read_bridge_token_get202_response import IdentityReadBridgeTokenGet202Response
150
+ from rapidata.api_client.models.image_dimension_metadata import ImageDimensionMetadata
144
151
  from rapidata.api_client.models.image_dimension_metadata_model import ImageDimensionMetadataModel
145
152
  from rapidata.api_client.models.import_from_file_result import ImportFromFileResult
146
153
  from rapidata.api_client.models.import_validation_set_from_file_result import ImportValidationSetFromFileResult
@@ -158,9 +165,11 @@ from rapidata.api_client.models.locate_coordinate import LocateCoordinate
158
165
  from rapidata.api_client.models.locate_payload import LocatePayload
159
166
  from rapidata.api_client.models.locate_rapid_blueprint import LocateRapidBlueprint
160
167
  from rapidata.api_client.models.locate_result import LocateResult
168
+ from rapidata.api_client.models.location_metadata import LocationMetadata
161
169
  from rapidata.api_client.models.location_metadata_exists_filter_config import LocationMetadataExistsFilterConfig
162
170
  from rapidata.api_client.models.location_metadata_model import LocationMetadataModel
163
171
  from rapidata.api_client.models.logic_operator import LogicOperator
172
+ from rapidata.api_client.models.metadata_visibilities import MetadataVisibilities
164
173
  from rapidata.api_client.models.multi_asset_model import MultiAssetModel
165
174
  from rapidata.api_client.models.naive_referee_config import NaiveRefereeConfig
166
175
  from rapidata.api_client.models.naive_referee_model import NaiveRefereeModel
@@ -171,7 +180,6 @@ from rapidata.api_client.models.named_entity_result import NamedEntityResult
171
180
  from rapidata.api_client.models.named_entity_truth import NamedEntityTruth
172
181
  from rapidata.api_client.models.never_ending_referee_config import NeverEndingRefereeConfig
173
182
  from rapidata.api_client.models.new_user_filter_model import NewUserFilterModel
174
- from rapidata.api_client.models.new_user_filter_model1 import NewUserFilterModel1
175
183
  from rapidata.api_client.models.newsletter_model import NewsletterModel
176
184
  from rapidata.api_client.models.not_available_yet_result import NotAvailableYetResult
177
185
  from rapidata.api_client.models.null_asset_model import NullAssetModel
@@ -181,6 +189,7 @@ from rapidata.api_client.models.online_pair_maker_information import OnlinePairM
181
189
  from rapidata.api_client.models.order_model import OrderModel
182
190
  from rapidata.api_client.models.order_model_paged_result import OrderModelPagedResult
183
191
  from rapidata.api_client.models.order_state import OrderState
192
+ from rapidata.api_client.models.original_filename_metadata import OriginalFilenameMetadata
184
193
  from rapidata.api_client.models.original_filename_metadata_model import OriginalFilenameMetadataModel
185
194
  from rapidata.api_client.models.page_info import PageInfo
186
195
  from rapidata.api_client.models.pipeline_id_workflow_put_request import PipelineIdWorkflowPutRequest
@@ -193,6 +202,7 @@ from rapidata.api_client.models.preliminary_download_result import PreliminaryDo
193
202
  from rapidata.api_client.models.private_text_metadata_input import PrivateTextMetadataInput
194
203
  from rapidata.api_client.models.probabilistic_attach_category_referee_config import ProbabilisticAttachCategoryRefereeConfig
195
204
  from rapidata.api_client.models.problem_details import ProblemDetails
205
+ from rapidata.api_client.models.prompt_metadata import PromptMetadata
196
206
  from rapidata.api_client.models.prompt_metadata_input import PromptMetadataInput
197
207
  from rapidata.api_client.models.prompt_metadata_model import PromptMetadataModel
198
208
  from rapidata.api_client.models.public_order_model import PublicOrderModel
@@ -232,12 +242,15 @@ from rapidata.api_client.models.simple_workflow_model_blueprint import SimpleWor
232
242
  from rapidata.api_client.models.skip_result import SkipResult
233
243
  from rapidata.api_client.models.sort_criterion import SortCriterion
234
244
  from rapidata.api_client.models.sort_direction import SortDirection
245
+ from rapidata.api_client.models.source_url_metadata import SourceUrlMetadata
235
246
  from rapidata.api_client.models.source_url_metadata_model import SourceUrlMetadataModel
236
247
  from rapidata.api_client.models.static_selection import StaticSelection
237
248
  from rapidata.api_client.models.submit_coco_model import SubmitCocoModel
238
249
  from rapidata.api_client.models.submit_coco_result import SubmitCocoResult
239
250
  from rapidata.api_client.models.text_asset_model import TextAssetModel
251
+ from rapidata.api_client.models.text_metadata import TextMetadata
240
252
  from rapidata.api_client.models.text_metadata_model import TextMetadataModel
253
+ from rapidata.api_client.models.transcription_metadata import TranscriptionMetadata
241
254
  from rapidata.api_client.models.transcription_metadata_input import TranscriptionMetadataInput
242
255
  from rapidata.api_client.models.transcription_metadata_model import TranscriptionMetadataModel
243
256
  from rapidata.api_client.models.transcription_payload import TranscriptionPayload
@@ -20,7 +20,7 @@ import json
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictBool, 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.add_campaign_model_user_filters_inner import AddCampaignModelUserFiltersInner
23
+ from rapidata.api_client.models.create_order_model_user_filters_inner import CreateOrderModelUserFiltersInner
24
24
  from rapidata.api_client.models.feature_flag import FeatureFlag
25
25
  from typing import Optional, Set
26
26
  from typing_extensions import Self
@@ -32,7 +32,7 @@ class AddCampaignModel(BaseModel):
32
32
  t: StrictStr = Field(description="Discriminator value for AddCampaignModel", alias="_t")
33
33
  artifact_id: Optional[StrictStr] = Field(default=None, description="The id of the campaign artifact. If not provided a random value will be used.", alias="artifactId")
34
34
  campaign_name: StrictStr = Field(description="The name of the campaign.", alias="campaignName")
35
- user_filters: List[AddCampaignModelUserFiltersInner] = Field(description="The user filters to apply to the campaign.", alias="userFilters")
35
+ user_filters: List[CreateOrderModelUserFiltersInner] = Field(description="The user filters to apply to the campaign.", alias="userFilters")
36
36
  validation_set_id: Optional[StrictStr] = Field(default=None, description="A validation set that should be used.", alias="validationSetId")
37
37
  selections: Optional[List[AbTestSelectionAInner]] = Field(default=None, description="The selections that the campaign should have.")
38
38
  feature_flags: List[FeatureFlag] = Field(description="The feature flags that should be applied to the campaign.", alias="featureFlags")
@@ -137,7 +137,7 @@ class AddCampaignModel(BaseModel):
137
137
  "_t": obj.get("_t") if obj.get("_t") is not None else 'AddCampaignModel',
138
138
  "artifactId": obj.get("artifactId"),
139
139
  "campaignName": obj.get("campaignName"),
140
- "userFilters": [AddCampaignModelUserFiltersInner.from_dict(_item) for _item in obj["userFilters"]] if obj.get("userFilters") is not None else None,
140
+ "userFilters": [CreateOrderModelUserFiltersInner.from_dict(_item) for _item in obj["userFilters"]] if obj.get("userFilters") is not None else None,
141
141
  "validationSetId": obj.get("validationSetId"),
142
142
  "selections": [AbTestSelectionAInner.from_dict(_item) for _item in obj["selections"]] if obj.get("selections") is not None else None,
143
143
  "featureFlags": [FeatureFlag.from_dict(_item) for _item in obj["featureFlags"]] if obj.get("featureFlags") is not None else None,
@@ -21,7 +21,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, Stric
21
21
  from typing import Any, ClassVar, Dict, List, Optional, Union
22
22
  from rapidata.api_client.models.add_validation_rapid_model_payload import AddValidationRapidModelPayload
23
23
  from rapidata.api_client.models.add_validation_rapid_model_truth import AddValidationRapidModelTruth
24
- from rapidata.api_client.models.datapoint_metadata_model_metadata_inner import DatapointMetadataModelMetadataInner
24
+ from rapidata.api_client.models.create_datapoint_from_urls_model_metadata_inner import CreateDatapointFromUrlsModelMetadataInner
25
25
  from typing import Optional, Set
26
26
  from typing_extensions import Self
27
27
 
@@ -31,7 +31,7 @@ class AddValidationRapidModel(BaseModel):
31
31
  """ # noqa: E501
32
32
  validation_set_id: StrictStr = Field(description="The ID of the validation set to add the rapid to.", alias="validationSetId")
33
33
  payload: AddValidationRapidModelPayload
34
- metadata: List[DatapointMetadataModelMetadataInner] = Field(description="Some metadata to attach to the rapid.")
34
+ metadata: List[CreateDatapointFromUrlsModelMetadataInner] = Field(description="Some metadata to attach to the rapid.")
35
35
  truth: AddValidationRapidModelTruth
36
36
  random_correct_probability: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The probability for an answer to be correct when randomly guessing.", alias="randomCorrectProbability")
37
37
  explanation: Optional[StrictStr] = Field(default=None, description="An explanation for the users if they answer the rapid incorrectly.")
@@ -113,7 +113,7 @@ class AddValidationRapidModel(BaseModel):
113
113
  _obj = cls.model_validate({
114
114
  "validationSetId": obj.get("validationSetId"),
115
115
  "payload": AddValidationRapidModelPayload.from_dict(obj["payload"]) if obj.get("payload") is not None else None,
116
- "metadata": [DatapointMetadataModelMetadataInner.from_dict(_item) for _item in obj["metadata"]] if obj.get("metadata") is not None else None,
116
+ "metadata": [CreateDatapointFromUrlsModelMetadataInner.from_dict(_item) for _item in obj["metadata"]] if obj.get("metadata") is not None else None,
117
117
  "truth": AddValidationRapidModelTruth.from_dict(obj["truth"]) if obj.get("truth") is not None else None,
118
118
  "randomCorrectProbability": obj.get("randomCorrectProbability"),
119
119
  "explanation": obj.get("explanation")
@@ -21,7 +21,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, Stric
21
21
  from typing import Any, ClassVar, Dict, List, Optional, Union
22
22
  from rapidata.api_client.models.add_validation_rapid_model_payload import AddValidationRapidModelPayload
23
23
  from rapidata.api_client.models.add_validation_rapid_model_truth import AddValidationRapidModelTruth
24
- from rapidata.api_client.models.datapoint_metadata_model_metadata_inner import DatapointMetadataModelMetadataInner
24
+ from rapidata.api_client.models.create_datapoint_from_urls_model_metadata_inner import CreateDatapointFromUrlsModelMetadataInner
25
25
  from typing import Optional, Set
26
26
  from typing_extensions import Self
27
27
 
@@ -31,7 +31,7 @@ class AddValidationTextRapidModel(BaseModel):
31
31
  """ # noqa: E501
32
32
  validation_set_id: StrictStr = Field(description="The ID of the validation set to add the rapid to.", alias="validationSetId")
33
33
  payload: AddValidationRapidModelPayload
34
- metadata: List[DatapointMetadataModelMetadataInner] = Field(description="Some metadata to attach to the rapid.")
34
+ metadata: List[CreateDatapointFromUrlsModelMetadataInner] = Field(description="Some metadata to attach to the rapid.")
35
35
  truth: AddValidationRapidModelTruth
36
36
  texts: List[StrictStr] = Field(description="The texts to use for the rapid.")
37
37
  random_correct_probability: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The probability for an answer to be correct when randomly guessing.", alias="randomCorrectProbability")
@@ -114,7 +114,7 @@ class AddValidationTextRapidModel(BaseModel):
114
114
  _obj = cls.model_validate({
115
115
  "validationSetId": obj.get("validationSetId"),
116
116
  "payload": AddValidationRapidModelPayload.from_dict(obj["payload"]) if obj.get("payload") is not None else None,
117
- "metadata": [DatapointMetadataModelMetadataInner.from_dict(_item) for _item in obj["metadata"]] if obj.get("metadata") is not None else None,
117
+ "metadata": [CreateDatapointFromUrlsModelMetadataInner.from_dict(_item) for _item in obj["metadata"]] if obj.get("metadata") is not None else None,
118
118
  "truth": AddValidationRapidModelTruth.from_dict(obj["truth"]) if obj.get("truth") is not None else None,
119
119
  "texts": obj.get("texts"),
120
120
  "randomCorrectProbability": obj.get("randomCorrectProbability"),
@@ -29,8 +29,7 @@ class ClassificationMetadata(BaseModel):
29
29
  t: StrictStr = Field(description="Discriminator value for ClassificationMetadata", alias="_t")
30
30
  classification: StrictStr
31
31
  visibilities: Optional[StrictStr] = None
32
- identifier: Optional[StrictStr] = None
33
- __properties: ClassVar[List[str]] = ["_t", "classification", "visibilities", "identifier"]
32
+ __properties: ClassVar[List[str]] = ["_t", "classification", "visibilities"]
34
33
 
35
34
  @field_validator('t')
36
35
  def t_validate_enum(cls, value):
@@ -92,8 +91,7 @@ class ClassificationMetadata(BaseModel):
92
91
  _obj = cls.model_validate({
93
92
  "_t": obj.get("_t") if obj.get("_t") is not None else 'ClassificationMetadata',
94
93
  "classification": obj.get("classification"),
95
- "visibilities": obj.get("visibilities"),
96
- "identifier": obj.get("identifier")
94
+ "visibilities": obj.get("visibilities")
97
95
  })
98
96
  return _obj
99
97
 
@@ -19,6 +19,7 @@ import json
19
19
 
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
21
21
  from typing import Any, ClassVar, Dict, List, Optional
22
+ from rapidata.api_client.models.compare_workflow_config_metadata_value import CompareWorkflowConfigMetadataValue
22
23
  from rapidata.api_client.models.compare_workflow_config_pair_maker_config import CompareWorkflowConfigPairMakerConfig
23
24
  from rapidata.api_client.models.compare_workflow_model1_referee import CompareWorkflowModel1Referee
24
25
  from rapidata.api_client.models.elo_config import EloConfig
@@ -35,7 +36,8 @@ class CompareWorkflowConfig(BaseModel):
35
36
  pair_maker_config: Optional[CompareWorkflowConfigPairMakerConfig] = Field(default=None, alias="pairMakerConfig")
36
37
  referee: CompareWorkflowModel1Referee
37
38
  target_country_codes: List[StrictStr] = Field(alias="targetCountryCodes")
38
- __properties: ClassVar[List[str]] = ["_t", "criteria", "eloConfig", "pairMakerConfig", "referee", "targetCountryCodes"]
39
+ metadata: Dict[str, CompareWorkflowConfigMetadataValue]
40
+ __properties: ClassVar[List[str]] = ["_t", "criteria", "eloConfig", "pairMakerConfig", "referee", "targetCountryCodes", "metadata"]
39
41
 
40
42
  @field_validator('t')
41
43
  def t_validate_enum(cls, value):
@@ -92,6 +94,13 @@ class CompareWorkflowConfig(BaseModel):
92
94
  # override the default output from pydantic by calling `to_dict()` of referee
93
95
  if self.referee:
94
96
  _dict['referee'] = self.referee.to_dict()
97
+ # override the default output from pydantic by calling `to_dict()` of each value in metadata (dict)
98
+ _field_dict = {}
99
+ if self.metadata:
100
+ for _key_metadata in self.metadata:
101
+ if self.metadata[_key_metadata]:
102
+ _field_dict[_key_metadata] = self.metadata[_key_metadata].to_dict()
103
+ _dict['metadata'] = _field_dict
95
104
  return _dict
96
105
 
97
106
  @classmethod
@@ -109,7 +118,13 @@ class CompareWorkflowConfig(BaseModel):
109
118
  "eloConfig": EloConfig.from_dict(obj["eloConfig"]) if obj.get("eloConfig") is not None else None,
110
119
  "pairMakerConfig": CompareWorkflowConfigPairMakerConfig.from_dict(obj["pairMakerConfig"]) if obj.get("pairMakerConfig") is not None else None,
111
120
  "referee": CompareWorkflowModel1Referee.from_dict(obj["referee"]) if obj.get("referee") is not None else None,
112
- "targetCountryCodes": obj.get("targetCountryCodes")
121
+ "targetCountryCodes": obj.get("targetCountryCodes"),
122
+ "metadata": dict(
123
+ (_k, CompareWorkflowConfigMetadataValue.from_dict(_v))
124
+ for _k, _v in obj["metadata"].items()
125
+ )
126
+ if obj.get("metadata") is not None
127
+ else None
113
128
  })
114
129
  return _obj
115
130
 
@@ -0,0 +1,238 @@
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.classification_metadata import ClassificationMetadata
21
+ from rapidata.api_client.models.count_metadata import CountMetadata
22
+ from rapidata.api_client.models.image_dimension_metadata import ImageDimensionMetadata
23
+ from rapidata.api_client.models.location_metadata import LocationMetadata
24
+ from rapidata.api_client.models.original_filename_metadata import OriginalFilenameMetadata
25
+ from rapidata.api_client.models.prompt_metadata import PromptMetadata
26
+ from rapidata.api_client.models.source_url_metadata import SourceUrlMetadata
27
+ from rapidata.api_client.models.text_metadata import TextMetadata
28
+ from rapidata.api_client.models.transcription_metadata import TranscriptionMetadata
29
+ from pydantic import StrictStr, Field
30
+ from typing import Union, List, Set, Optional, Dict
31
+ from typing_extensions import Literal, Self
32
+
33
+ COMPAREWORKFLOWCONFIGMETADATAVALUE_ONE_OF_SCHEMAS = ["ClassificationMetadata", "CountMetadata", "ImageDimensionMetadata", "LocationMetadata", "OriginalFilenameMetadata", "PromptMetadata", "SourceUrlMetadata", "TextMetadata", "TranscriptionMetadata"]
34
+
35
+ class CompareWorkflowConfigMetadataValue(BaseModel):
36
+ """
37
+ CompareWorkflowConfigMetadataValue
38
+ """
39
+ # data type: ClassificationMetadata
40
+ oneof_schema_1_validator: Optional[ClassificationMetadata] = None
41
+ # data type: CountMetadata
42
+ oneof_schema_2_validator: Optional[CountMetadata] = None
43
+ # data type: ImageDimensionMetadata
44
+ oneof_schema_3_validator: Optional[ImageDimensionMetadata] = None
45
+ # data type: LocationMetadata
46
+ oneof_schema_4_validator: Optional[LocationMetadata] = None
47
+ # data type: OriginalFilenameMetadata
48
+ oneof_schema_5_validator: Optional[OriginalFilenameMetadata] = None
49
+ # data type: PromptMetadata
50
+ oneof_schema_6_validator: Optional[PromptMetadata] = None
51
+ # data type: SourceUrlMetadata
52
+ oneof_schema_7_validator: Optional[SourceUrlMetadata] = None
53
+ # data type: TextMetadata
54
+ oneof_schema_8_validator: Optional[TextMetadata] = None
55
+ # data type: TranscriptionMetadata
56
+ oneof_schema_9_validator: Optional[TranscriptionMetadata] = None
57
+ actual_instance: Optional[Union[ClassificationMetadata, CountMetadata, ImageDimensionMetadata, LocationMetadata, OriginalFilenameMetadata, PromptMetadata, SourceUrlMetadata, TextMetadata, TranscriptionMetadata]] = None
58
+ one_of_schemas: Set[str] = { "ClassificationMetadata", "CountMetadata", "ImageDimensionMetadata", "LocationMetadata", "OriginalFilenameMetadata", "PromptMetadata", "SourceUrlMetadata", "TextMetadata", "TranscriptionMetadata" }
59
+
60
+ model_config = ConfigDict(
61
+ validate_assignment=True,
62
+ protected_namespaces=(),
63
+ )
64
+
65
+
66
+ discriminator_value_class_map: Dict[str, str] = {
67
+ }
68
+
69
+ def __init__(self, *args, **kwargs) -> None:
70
+ if args:
71
+ if len(args) > 1:
72
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
73
+ if kwargs:
74
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
75
+ super().__init__(actual_instance=args[0])
76
+ else:
77
+ super().__init__(**kwargs)
78
+
79
+ @field_validator('actual_instance')
80
+ def actual_instance_must_validate_oneof(cls, v):
81
+ instance = CompareWorkflowConfigMetadataValue.model_construct()
82
+ error_messages = []
83
+ match = 0
84
+ # validate data type: ClassificationMetadata
85
+ if not isinstance(v, ClassificationMetadata):
86
+ error_messages.append(f"Error! Input type `{type(v)}` is not `ClassificationMetadata`")
87
+ else:
88
+ match += 1
89
+ # validate data type: CountMetadata
90
+ if not isinstance(v, CountMetadata):
91
+ error_messages.append(f"Error! Input type `{type(v)}` is not `CountMetadata`")
92
+ else:
93
+ match += 1
94
+ # validate data type: ImageDimensionMetadata
95
+ if not isinstance(v, ImageDimensionMetadata):
96
+ error_messages.append(f"Error! Input type `{type(v)}` is not `ImageDimensionMetadata`")
97
+ else:
98
+ match += 1
99
+ # validate data type: LocationMetadata
100
+ if not isinstance(v, LocationMetadata):
101
+ error_messages.append(f"Error! Input type `{type(v)}` is not `LocationMetadata`")
102
+ else:
103
+ match += 1
104
+ # validate data type: OriginalFilenameMetadata
105
+ if not isinstance(v, OriginalFilenameMetadata):
106
+ error_messages.append(f"Error! Input type `{type(v)}` is not `OriginalFilenameMetadata`")
107
+ else:
108
+ match += 1
109
+ # validate data type: PromptMetadata
110
+ if not isinstance(v, PromptMetadata):
111
+ error_messages.append(f"Error! Input type `{type(v)}` is not `PromptMetadata`")
112
+ else:
113
+ match += 1
114
+ # validate data type: SourceUrlMetadata
115
+ if not isinstance(v, SourceUrlMetadata):
116
+ error_messages.append(f"Error! Input type `{type(v)}` is not `SourceUrlMetadata`")
117
+ else:
118
+ match += 1
119
+ # validate data type: TextMetadata
120
+ if not isinstance(v, TextMetadata):
121
+ error_messages.append(f"Error! Input type `{type(v)}` is not `TextMetadata`")
122
+ else:
123
+ match += 1
124
+ # validate data type: TranscriptionMetadata
125
+ if not isinstance(v, TranscriptionMetadata):
126
+ error_messages.append(f"Error! Input type `{type(v)}` is not `TranscriptionMetadata`")
127
+ else:
128
+ match += 1
129
+ if match > 1:
130
+ # more than 1 match
131
+ raise ValueError("Multiple matches found when setting `actual_instance` in CompareWorkflowConfigMetadataValue with oneOf schemas: ClassificationMetadata, CountMetadata, ImageDimensionMetadata, LocationMetadata, OriginalFilenameMetadata, PromptMetadata, SourceUrlMetadata, TextMetadata, TranscriptionMetadata. Details: " + ", ".join(error_messages))
132
+ elif match == 0:
133
+ # no match
134
+ raise ValueError("No match found when setting `actual_instance` in CompareWorkflowConfigMetadataValue with oneOf schemas: ClassificationMetadata, CountMetadata, ImageDimensionMetadata, LocationMetadata, OriginalFilenameMetadata, PromptMetadata, SourceUrlMetadata, TextMetadata, TranscriptionMetadata. Details: " + ", ".join(error_messages))
135
+ else:
136
+ return v
137
+
138
+ @classmethod
139
+ def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self:
140
+ return cls.from_json(json.dumps(obj))
141
+
142
+ @classmethod
143
+ def from_json(cls, json_str: str) -> Self:
144
+ """Returns the object represented by the json string"""
145
+ instance = cls.model_construct()
146
+ error_messages = []
147
+ match = 0
148
+
149
+ # deserialize data into ClassificationMetadata
150
+ try:
151
+ instance.actual_instance = ClassificationMetadata.from_json(json_str)
152
+ match += 1
153
+ except (ValidationError, ValueError) as e:
154
+ error_messages.append(str(e))
155
+ # deserialize data into CountMetadata
156
+ try:
157
+ instance.actual_instance = CountMetadata.from_json(json_str)
158
+ match += 1
159
+ except (ValidationError, ValueError) as e:
160
+ error_messages.append(str(e))
161
+ # deserialize data into ImageDimensionMetadata
162
+ try:
163
+ instance.actual_instance = ImageDimensionMetadata.from_json(json_str)
164
+ match += 1
165
+ except (ValidationError, ValueError) as e:
166
+ error_messages.append(str(e))
167
+ # deserialize data into LocationMetadata
168
+ try:
169
+ instance.actual_instance = LocationMetadata.from_json(json_str)
170
+ match += 1
171
+ except (ValidationError, ValueError) as e:
172
+ error_messages.append(str(e))
173
+ # deserialize data into OriginalFilenameMetadata
174
+ try:
175
+ instance.actual_instance = OriginalFilenameMetadata.from_json(json_str)
176
+ match += 1
177
+ except (ValidationError, ValueError) as e:
178
+ error_messages.append(str(e))
179
+ # deserialize data into PromptMetadata
180
+ try:
181
+ instance.actual_instance = PromptMetadata.from_json(json_str)
182
+ match += 1
183
+ except (ValidationError, ValueError) as e:
184
+ error_messages.append(str(e))
185
+ # deserialize data into SourceUrlMetadata
186
+ try:
187
+ instance.actual_instance = SourceUrlMetadata.from_json(json_str)
188
+ match += 1
189
+ except (ValidationError, ValueError) as e:
190
+ error_messages.append(str(e))
191
+ # deserialize data into TextMetadata
192
+ try:
193
+ instance.actual_instance = TextMetadata.from_json(json_str)
194
+ match += 1
195
+ except (ValidationError, ValueError) as e:
196
+ error_messages.append(str(e))
197
+ # deserialize data into TranscriptionMetadata
198
+ try:
199
+ instance.actual_instance = TranscriptionMetadata.from_json(json_str)
200
+ match += 1
201
+ except (ValidationError, ValueError) as e:
202
+ error_messages.append(str(e))
203
+
204
+ if match > 1:
205
+ # more than 1 match
206
+ raise ValueError("Multiple matches found when deserializing the JSON string into CompareWorkflowConfigMetadataValue with oneOf schemas: ClassificationMetadata, CountMetadata, ImageDimensionMetadata, LocationMetadata, OriginalFilenameMetadata, PromptMetadata, SourceUrlMetadata, TextMetadata, TranscriptionMetadata. Details: " + ", ".join(error_messages))
207
+ elif match == 0:
208
+ # no match
209
+ raise ValueError("No match found when deserializing the JSON string into CompareWorkflowConfigMetadataValue with oneOf schemas: ClassificationMetadata, CountMetadata, ImageDimensionMetadata, LocationMetadata, OriginalFilenameMetadata, PromptMetadata, SourceUrlMetadata, TextMetadata, TranscriptionMetadata. Details: " + ", ".join(error_messages))
210
+ else:
211
+ return instance
212
+
213
+ def to_json(self) -> str:
214
+ """Returns the JSON representation of the actual instance"""
215
+ if self.actual_instance is None:
216
+ return "null"
217
+
218
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
219
+ return self.actual_instance.to_json()
220
+ else:
221
+ return json.dumps(self.actual_instance)
222
+
223
+ def to_dict(self) -> Optional[Union[Dict[str, Any], ClassificationMetadata, CountMetadata, ImageDimensionMetadata, LocationMetadata, OriginalFilenameMetadata, PromptMetadata, SourceUrlMetadata, TextMetadata, TranscriptionMetadata]]:
224
+ """Returns the dict representation of the actual instance"""
225
+ if self.actual_instance is None:
226
+ return None
227
+
228
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
229
+ return self.actual_instance.to_dict()
230
+ else:
231
+ # primitive type
232
+ return self.actual_instance
233
+
234
+ def to_str(self) -> str:
235
+ """Returns the string representation of the actual instance"""
236
+ return pprint.pformat(self.model_dump())
237
+
238
+
@@ -19,6 +19,7 @@ import json
19
19
 
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
21
21
  from typing import Any, ClassVar, Dict, List, Optional
22
+ from rapidata.api_client.models.compare_workflow_config_metadata_value import CompareWorkflowConfigMetadataValue
22
23
  from rapidata.api_client.models.compare_workflow_config_model_pair_maker_config import CompareWorkflowConfigModelPairMakerConfig
23
24
  from rapidata.api_client.models.compare_workflow_model1_referee import CompareWorkflowModel1Referee
24
25
  from rapidata.api_client.models.elo_config import EloConfig
@@ -35,7 +36,8 @@ class CompareWorkflowConfigModel(BaseModel):
35
36
  referee: CompareWorkflowModel1Referee
36
37
  target_country_codes: List[StrictStr] = Field(description="A list of country codes that this workflow is targeting.", alias="targetCountryCodes")
37
38
  elo_config: Optional[EloConfig] = Field(default=None, alias="eloConfig")
38
- __properties: ClassVar[List[str]] = ["_t", "criteria", "pairMakerConfig", "referee", "targetCountryCodes", "eloConfig"]
39
+ metadata: Dict[str, CompareWorkflowConfigMetadataValue] = Field(description="The metadata is attached to every single rapid and can be used for something like the prompt.")
40
+ __properties: ClassVar[List[str]] = ["_t", "criteria", "pairMakerConfig", "referee", "targetCountryCodes", "eloConfig", "metadata"]
39
41
 
40
42
  @field_validator('t')
41
43
  def t_validate_enum(cls, value):
@@ -92,6 +94,13 @@ class CompareWorkflowConfigModel(BaseModel):
92
94
  # override the default output from pydantic by calling `to_dict()` of elo_config
93
95
  if self.elo_config:
94
96
  _dict['eloConfig'] = self.elo_config.to_dict()
97
+ # override the default output from pydantic by calling `to_dict()` of each value in metadata (dict)
98
+ _field_dict = {}
99
+ if self.metadata:
100
+ for _key_metadata in self.metadata:
101
+ if self.metadata[_key_metadata]:
102
+ _field_dict[_key_metadata] = self.metadata[_key_metadata].to_dict()
103
+ _dict['metadata'] = _field_dict
95
104
  return _dict
96
105
 
97
106
  @classmethod
@@ -109,7 +118,13 @@ class CompareWorkflowConfigModel(BaseModel):
109
118
  "pairMakerConfig": CompareWorkflowConfigModelPairMakerConfig.from_dict(obj["pairMakerConfig"]) if obj.get("pairMakerConfig") is not None else None,
110
119
  "referee": CompareWorkflowModel1Referee.from_dict(obj["referee"]) if obj.get("referee") is not None else None,
111
120
  "targetCountryCodes": obj.get("targetCountryCodes"),
112
- "eloConfig": EloConfig.from_dict(obj["eloConfig"]) if obj.get("eloConfig") is not None else None
121
+ "eloConfig": EloConfig.from_dict(obj["eloConfig"]) if obj.get("eloConfig") is not None else None,
122
+ "metadata": dict(
123
+ (_k, CompareWorkflowConfigMetadataValue.from_dict(_v))
124
+ for _k, _v in obj["metadata"].items()
125
+ )
126
+ if obj.get("metadata") is not None
127
+ else None
113
128
  })
114
129
  return _obj
115
130
 
@@ -20,6 +20,7 @@ import json
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
21
21
  from typing import Any, ClassVar, Dict, List, Optional
22
22
  from rapidata.api_client.models.compare_workflow_model_pair_maker_config import CompareWorkflowModelPairMakerConfig
23
+ from rapidata.api_client.models.create_datapoint_from_urls_model_metadata_inner import CreateDatapointFromUrlsModelMetadataInner
23
24
  from rapidata.api_client.models.elo_config_model import EloConfigModel
24
25
  from typing import Optional, Set
25
26
  from typing_extensions import Self
@@ -32,7 +33,8 @@ class CompareWorkflowModel(BaseModel):
32
33
  criteria: StrictStr = Field(description="The criteria that the datapoints should be compared based on. No default value.")
33
34
  pair_maker_config: Optional[CompareWorkflowModelPairMakerConfig] = Field(default=None, alias="pairMakerConfig")
34
35
  elo_config: Optional[EloConfigModel] = Field(default=None, alias="eloConfig")
35
- __properties: ClassVar[List[str]] = ["_t", "criteria", "pairMakerConfig", "eloConfig"]
36
+ metadata: Optional[List[CreateDatapointFromUrlsModelMetadataInner]] = Field(default=None, description="The metadata is attached to every single rapid and can be used for something like the prompt.")
37
+ __properties: ClassVar[List[str]] = ["_t", "criteria", "pairMakerConfig", "eloConfig", "metadata"]
36
38
 
37
39
  @field_validator('t')
38
40
  def t_validate_enum(cls, value):
@@ -86,6 +88,18 @@ class CompareWorkflowModel(BaseModel):
86
88
  # override the default output from pydantic by calling `to_dict()` of elo_config
87
89
  if self.elo_config:
88
90
  _dict['eloConfig'] = self.elo_config.to_dict()
91
+ # override the default output from pydantic by calling `to_dict()` of each item in metadata (list)
92
+ _items = []
93
+ if self.metadata:
94
+ for _item_metadata in self.metadata:
95
+ if _item_metadata:
96
+ _items.append(_item_metadata.to_dict())
97
+ _dict['metadata'] = _items
98
+ # set to None if metadata (nullable) is None
99
+ # and model_fields_set contains the field
100
+ if self.metadata is None and "metadata" in self.model_fields_set:
101
+ _dict['metadata'] = None
102
+
89
103
  return _dict
90
104
 
91
105
  @classmethod
@@ -101,7 +115,8 @@ class CompareWorkflowModel(BaseModel):
101
115
  "_t": obj.get("_t") if obj.get("_t") is not None else 'CompareWorkflow',
102
116
  "criteria": obj.get("criteria"),
103
117
  "pairMakerConfig": CompareWorkflowModelPairMakerConfig.from_dict(obj["pairMakerConfig"]) if obj.get("pairMakerConfig") is not None else None,
104
- "eloConfig": EloConfigModel.from_dict(obj["eloConfig"]) if obj.get("eloConfig") is not None else None
118
+ "eloConfig": EloConfigModel.from_dict(obj["eloConfig"]) if obj.get("eloConfig") is not None else None,
119
+ "metadata": [CreateDatapointFromUrlsModelMetadataInner.from_dict(_item) for _item in obj["metadata"]] if obj.get("metadata") is not None else None
105
120
  })
106
121
  return _obj
107
122
 
@@ -28,9 +28,8 @@ class CountMetadata(BaseModel):
28
28
  """ # noqa: E501
29
29
  t: StrictStr = Field(description="Discriminator value for CountMetadata", alias="_t")
30
30
  count: StrictInt
31
- identifier: Optional[StrictStr] = None
32
31
  visibilities: Optional[StrictStr] = None
33
- __properties: ClassVar[List[str]] = ["_t", "count", "identifier", "visibilities"]
32
+ __properties: ClassVar[List[str]] = ["_t", "count", "visibilities"]
34
33
 
35
34
  @field_validator('t')
36
35
  def t_validate_enum(cls, value):
@@ -92,7 +91,6 @@ class CountMetadata(BaseModel):
92
91
  _obj = cls.model_validate({
93
92
  "_t": obj.get("_t") if obj.get("_t") is not None else 'CountMetadata',
94
93
  "count": obj.get("count"),
95
- "identifier": obj.get("identifier"),
96
94
  "visibilities": obj.get("visibilities")
97
95
  })
98
96
  return _obj