rapidata 2.36.0__py3-none-any.whl → 2.36.2__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 (101) hide show
  1. rapidata/__init__.py +2 -2
  2. rapidata/api_client/__init__.py +3 -2
  3. rapidata/api_client/api/leaderboard_api.py +295 -6
  4. rapidata/api_client/api/validation_set_api.py +561 -313
  5. rapidata/api_client/models/__init__.py +3 -2
  6. rapidata/api_client/models/add_validation_rapid_model.py +29 -4
  7. rapidata/api_client/models/add_validation_rapid_model_truth.py +7 -1
  8. rapidata/api_client/models/asset_metadata.py +9 -1
  9. rapidata/api_client/models/asset_type.py +40 -0
  10. rapidata/api_client/models/boost_query_result.py +5 -17
  11. rapidata/api_client/models/campaign_query_result.py +3 -9
  12. rapidata/api_client/models/classification_metadata.py +12 -1
  13. rapidata/api_client/models/compare_workflow_config.py +22 -12
  14. rapidata/api_client/models/compare_workflow_config_model.py +12 -2
  15. rapidata/api_client/models/compare_workflow_model.py +12 -2
  16. rapidata/api_client/models/count_metadata.py +12 -1
  17. rapidata/api_client/models/create_demographic_rapid_model.py +18 -3
  18. rapidata/api_client/models/create_order_model.py +6 -48
  19. rapidata/api_client/models/effort_capped_selection.py +2 -11
  20. rapidata/api_client/models/evaluation_workflow_config.py +13 -3
  21. rapidata/api_client/models/evaluation_workflow_model.py +13 -3
  22. rapidata/api_client/models/file_type_metadata.py +11 -6
  23. rapidata/api_client/models/file_type_metadata_model.py +2 -8
  24. rapidata/api_client/models/filter.py +5 -23
  25. rapidata/api_client/models/get_datapoint_by_id_result.py +3 -9
  26. rapidata/api_client/models/get_rapid_responses_result.py +3 -9
  27. rapidata/api_client/models/get_recommended_validation_set_result.py +95 -0
  28. rapidata/api_client/models/get_standing_by_id_result.py +3 -9
  29. rapidata/api_client/models/get_validation_rapids_result.py +3 -9
  30. rapidata/api_client/models/get_workflow_progress_result.py +3 -9
  31. rapidata/api_client/models/get_workflow_results_result.py +3 -9
  32. rapidata/api_client/models/image_dimension_metadata.py +12 -1
  33. rapidata/api_client/models/labeling_selection.py +2 -11
  34. rapidata/api_client/models/location_metadata.py +12 -1
  35. rapidata/api_client/models/order_model.py +3 -9
  36. rapidata/api_client/models/original_filename_metadata.py +12 -1
  37. rapidata/api_client/models/participant_by_benchmark.py +3 -9
  38. rapidata/api_client/models/prompt_metadata.py +12 -1
  39. rapidata/api_client/models/prompt_type.py +38 -0
  40. rapidata/api_client/models/rapid_modality.py +46 -0
  41. rapidata/api_client/models/rapid_model.py +3 -9
  42. rapidata/api_client/models/report_model.py +3 -9
  43. rapidata/api_client/models/response_count_filter.py +2 -8
  44. rapidata/api_client/models/response_count_user_filter_model.py +2 -8
  45. rapidata/api_client/models/root_filter.py +3 -12
  46. rapidata/api_client/models/runs_by_leaderboard_result.py +3 -9
  47. rapidata/api_client/models/simple_workflow_config.py +13 -3
  48. rapidata/api_client/models/simple_workflow_config_model.py +11 -3
  49. rapidata/api_client/models/simple_workflow_model.py +13 -3
  50. rapidata/api_client/models/sort_criterion.py +3 -9
  51. rapidata/api_client/models/source_url_metadata.py +12 -1
  52. rapidata/api_client/models/standing_by_leaderboard.py +3 -9
  53. rapidata/api_client/models/streams_metadata.py +12 -1
  54. rapidata/api_client/models/text_metadata.py +12 -1
  55. rapidata/api_client/models/transcription_metadata.py +9 -1
  56. rapidata/api_client/models/update_leaderboard_model.py +91 -0
  57. rapidata/api_client/models/update_should_alert_model.py +1 -1
  58. rapidata/api_client/models/validation_set_model.py +42 -3
  59. rapidata/api_client/models/video_duration_metadata.py +12 -1
  60. rapidata/api_client/models/workflow_aggregation_step_model.py +3 -12
  61. rapidata/api_client_README.md +8 -5
  62. rapidata/rapidata_client/__init__.py +1 -1
  63. rapidata/rapidata_client/benchmark/participant/_participant.py +5 -5
  64. rapidata/rapidata_client/benchmark/rapidata_benchmark.py +2 -1
  65. rapidata/rapidata_client/benchmark/rapidata_benchmark_manager.py +10 -2
  66. rapidata/rapidata_client/config/__init__.py +1 -1
  67. rapidata/rapidata_client/config/rapidata_config.py +31 -0
  68. rapidata/rapidata_client/datapoints/__init__.py +10 -2
  69. rapidata/rapidata_client/datapoints/{datapoint.py → _datapoint.py} +105 -17
  70. rapidata/rapidata_client/datapoints/assets/_media_asset.py +80 -68
  71. rapidata/rapidata_client/datapoints/assets/_sessions.py +3 -3
  72. rapidata/rapidata_client/datapoints/assets/constants.py +7 -0
  73. rapidata/rapidata_client/exceptions/failed_upload_exception.py +42 -13
  74. rapidata/rapidata_client/filter/response_count_filter.py +16 -11
  75. rapidata/rapidata_client/order/_rapidata_dataset.py +8 -8
  76. rapidata/rapidata_client/order/_rapidata_order_builder.py +87 -8
  77. rapidata/rapidata_client/order/rapidata_order_manager.py +18 -4
  78. rapidata/rapidata_client/rapidata_client.py +6 -0
  79. rapidata/rapidata_client/selection/__init__.py +1 -1
  80. rapidata/rapidata_client/selection/effort_selection.py +18 -7
  81. rapidata/rapidata_client/selection/labeling_selection.py +19 -7
  82. rapidata/rapidata_client/selection/{retrieval_modes.py → rapidata_retrieval_modes.py} +7 -4
  83. rapidata/rapidata_client/validation/rapidata_validation_set.py +26 -1
  84. rapidata/rapidata_client/validation/rapids/rapids.py +46 -19
  85. rapidata/rapidata_client/validation/validation_set_manager.py +41 -4
  86. rapidata/rapidata_client/workflow/_base_workflow.py +27 -0
  87. rapidata/rapidata_client/workflow/_classify_workflow.py +25 -9
  88. rapidata/rapidata_client/workflow/_compare_workflow.py +11 -0
  89. rapidata/rapidata_client/workflow/_draw_workflow.py +15 -7
  90. rapidata/rapidata_client/workflow/_evaluation_workflow.py +8 -1
  91. rapidata/rapidata_client/workflow/_free_text_workflow.py +20 -2
  92. rapidata/rapidata_client/workflow/_locate_workflow.py +15 -7
  93. rapidata/rapidata_client/workflow/_ranking_workflow.py +39 -15
  94. rapidata/rapidata_client/workflow/_select_words_workflow.py +41 -7
  95. rapidata/rapidata_client/workflow/_timestamp_workflow.py +17 -8
  96. rapidata/service/openapi_service.py +1 -1
  97. {rapidata-2.36.0.dist-info → rapidata-2.36.2.dist-info}/METADATA +1 -1
  98. {rapidata-2.36.0.dist-info → rapidata-2.36.2.dist-info}/RECORD +100 -94
  99. rapidata/rapidata_client/config/config.py +0 -33
  100. {rapidata-2.36.0.dist-info → rapidata-2.36.2.dist-info}/LICENSE +0 -0
  101. {rapidata-2.36.0.dist-info → rapidata-2.36.2.dist-info}/WHEEL +0 -0
@@ -28,7 +28,7 @@ class SourceUrlMetadata(BaseModel):
28
28
  """ # noqa: E501
29
29
  t: StrictStr = Field(description="Discriminator value for SourceUrlMetadata", alias="_t")
30
30
  url: StrictStr
31
- visibilities: Optional[StrictStr] = None
31
+ visibilities: Optional[List[StrictStr]] = None
32
32
  __properties: ClassVar[List[str]] = ["_t", "url", "visibilities"]
33
33
 
34
34
  @field_validator('t')
@@ -38,6 +38,17 @@ class SourceUrlMetadata(BaseModel):
38
38
  raise ValueError("must be one of enum values ('SourceUrlMetadata')")
39
39
  return value
40
40
 
41
+ @field_validator('visibilities')
42
+ def visibilities_validate_enum(cls, value):
43
+ """Validates the enum"""
44
+ if value is None:
45
+ return value
46
+
47
+ for i in value:
48
+ if i not in set(['None', 'Users', 'Customers', 'Admins', 'Dashboard', 'All']):
49
+ raise ValueError("each list item must be one of ('None', 'Users', 'Customers', 'Admins', 'Dashboard', 'All')")
50
+ return value
51
+
41
52
  model_config = ConfigDict(
42
53
  populate_by_name=True,
43
54
  validate_assignment=True,
@@ -17,8 +17,9 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr
21
21
  from typing import Any, ClassVar, Dict, List, Optional, Union
22
+ from rapidata.api_client.models.standing_status import StandingStatus
22
23
  from typing import Optional, Set
23
24
  from typing_extensions import Self
24
25
 
@@ -30,20 +31,13 @@ class StandingByLeaderboard(BaseModel):
30
31
  name: StrictStr
31
32
  leaderboard_id: StrictStr = Field(alias="leaderboardId")
32
33
  dataset_id: Optional[StrictStr] = Field(default=None, alias="datasetId")
33
- status: StrictStr
34
+ status: StandingStatus
34
35
  score: Optional[Union[StrictFloat, StrictInt]] = None
35
36
  wins: StrictInt
36
37
  total_matches: StrictInt = Field(alias="totalMatches")
37
38
  is_disabled: StrictBool = Field(alias="isDisabled")
38
39
  __properties: ClassVar[List[str]] = ["id", "name", "leaderboardId", "datasetId", "status", "score", "wins", "totalMatches", "isDisabled"]
39
40
 
40
- @field_validator('status')
41
- def status_validate_enum(cls, value):
42
- """Validates the enum"""
43
- if value not in set(['Created', 'Active', 'Idle']):
44
- raise ValueError("must be one of enum values ('Created', 'Active', 'Idle')")
45
- return value
46
-
47
41
  model_config = ConfigDict(
48
42
  populate_by_name=True,
49
43
  validate_assignment=True,
@@ -30,7 +30,7 @@ class StreamsMetadata(BaseModel):
30
30
  has_audio: Optional[StrictBool] = Field(default=None, alias="hasAudio")
31
31
  has_video: Optional[StrictBool] = Field(default=None, alias="hasVideo")
32
32
  has_subtitles: Optional[StrictBool] = Field(default=None, alias="hasSubtitles")
33
- visibilities: Optional[StrictStr] = None
33
+ visibilities: Optional[List[StrictStr]] = None
34
34
  __properties: ClassVar[List[str]] = ["_t", "hasAudio", "hasVideo", "hasSubtitles", "visibilities"]
35
35
 
36
36
  @field_validator('t')
@@ -40,6 +40,17 @@ class StreamsMetadata(BaseModel):
40
40
  raise ValueError("must be one of enum values ('StreamsMetadata')")
41
41
  return value
42
42
 
43
+ @field_validator('visibilities')
44
+ def visibilities_validate_enum(cls, value):
45
+ """Validates the enum"""
46
+ if value is None:
47
+ return value
48
+
49
+ for i in value:
50
+ if i not in set(['None', 'Users', 'Customers', 'Admins', 'Dashboard', 'All']):
51
+ raise ValueError("each list item must be one of ('None', 'Users', 'Customers', 'Admins', 'Dashboard', 'All')")
52
+ return value
53
+
43
54
  model_config = ConfigDict(
44
55
  populate_by_name=True,
45
56
  validate_assignment=True,
@@ -28,7 +28,7 @@ class TextMetadata(BaseModel):
28
28
  """ # noqa: E501
29
29
  t: StrictStr = Field(description="Discriminator value for TextMetadata", alias="_t")
30
30
  text: StrictStr
31
- visibilities: Optional[StrictStr] = None
31
+ visibilities: Optional[List[StrictStr]] = None
32
32
  __properties: ClassVar[List[str]] = ["_t", "text", "visibilities"]
33
33
 
34
34
  @field_validator('t')
@@ -38,6 +38,17 @@ class TextMetadata(BaseModel):
38
38
  raise ValueError("must be one of enum values ('TextMetadata')")
39
39
  return value
40
40
 
41
+ @field_validator('visibilities')
42
+ def visibilities_validate_enum(cls, value):
43
+ """Validates the enum"""
44
+ if value is None:
45
+ return value
46
+
47
+ for i in value:
48
+ if i not in set(['None', 'Users', 'Customers', 'Admins', 'Dashboard', 'All']):
49
+ raise ValueError("each list item must be one of ('None', 'Users', 'Customers', 'Admins', 'Dashboard', 'All')")
50
+ return value
51
+
41
52
  model_config = ConfigDict(
42
53
  populate_by_name=True,
43
54
  validate_assignment=True,
@@ -28,7 +28,7 @@ class TranscriptionMetadata(BaseModel):
28
28
  """ # noqa: E501
29
29
  t: StrictStr = Field(description="Discriminator value for TranscriptionMetadata", alias="_t")
30
30
  transcription: StrictStr
31
- visibilities: StrictStr
31
+ visibilities: List[StrictStr]
32
32
  __properties: ClassVar[List[str]] = ["_t", "transcription", "visibilities"]
33
33
 
34
34
  @field_validator('t')
@@ -38,6 +38,14 @@ class TranscriptionMetadata(BaseModel):
38
38
  raise ValueError("must be one of enum values ('TranscriptionMetadata')")
39
39
  return value
40
40
 
41
+ @field_validator('visibilities')
42
+ def visibilities_validate_enum(cls, value):
43
+ """Validates the enum"""
44
+ for i in value:
45
+ if i not in set(['None', 'Users', 'Customers', 'Admins', 'Dashboard', 'All']):
46
+ raise ValueError("each list item must be one of ('None', 'Users', 'Customers', 'Admins', 'Dashboard', 'All')")
47
+ return value
48
+
41
49
  model_config = ConfigDict(
42
50
  populate_by_name=True,
43
51
  validate_assignment=True,
@@ -0,0 +1,91 @@
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, StrictInt, StrictStr
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+
25
+ class UpdateLeaderboardModel(BaseModel):
26
+ """
27
+ The model used to update a leaderboard.
28
+ """ # noqa: E501
29
+ name: Optional[StrictStr] = None
30
+ response_budget: Optional[StrictInt] = Field(default=None, alias="responseBudget")
31
+ min_responses: Optional[StrictInt] = Field(default=None, alias="minResponses")
32
+ __properties: ClassVar[List[str]] = ["name", "responseBudget", "minResponses"]
33
+
34
+ model_config = ConfigDict(
35
+ populate_by_name=True,
36
+ validate_assignment=True,
37
+ protected_namespaces=(),
38
+ )
39
+
40
+
41
+ def to_str(self) -> str:
42
+ """Returns the string representation of the model using alias"""
43
+ return pprint.pformat(self.model_dump(by_alias=True))
44
+
45
+ def to_json(self) -> str:
46
+ """Returns the JSON representation of the model using alias"""
47
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
48
+ return json.dumps(self.to_dict())
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> Optional[Self]:
52
+ """Create an instance of UpdateLeaderboardModel from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self) -> Dict[str, Any]:
56
+ """Return the dictionary representation of the model using alias.
57
+
58
+ This has the following differences from calling pydantic's
59
+ `self.model_dump(by_alias=True)`:
60
+
61
+ * `None` is only added to the output dict for nullable fields that
62
+ were set at model initialization. Other fields with value `None`
63
+ are ignored.
64
+ """
65
+ excluded_fields: Set[str] = set([
66
+ ])
67
+
68
+ _dict = self.model_dump(
69
+ by_alias=True,
70
+ exclude=excluded_fields,
71
+ exclude_none=True,
72
+ )
73
+ return _dict
74
+
75
+ @classmethod
76
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
77
+ """Create an instance of UpdateLeaderboardModel from a dict"""
78
+ if obj is None:
79
+ return None
80
+
81
+ if not isinstance(obj, dict):
82
+ return cls.model_validate(obj)
83
+
84
+ _obj = cls.model_validate({
85
+ "name": obj.get("name"),
86
+ "responseBudget": obj.get("responseBudget"),
87
+ "minResponses": obj.get("minResponses")
88
+ })
89
+ return _obj
90
+
91
+
@@ -26,7 +26,7 @@ class UpdateShouldAlertModel(BaseModel):
26
26
  """
27
27
  The model for updating the shouldAlert field of all rapids within a validation set.
28
28
  """ # noqa: E501
29
- should_alert: StrictBool = Field(description="If the users should be alerted if answering wrong.", alias="shouldAlert")
29
+ should_alert: StrictBool = Field(description="A flag indicating whether the users should be alerted if they answer incorrectly.", alias="shouldAlert")
30
30
  __properties: ClassVar[List[str]] = ["shouldAlert"]
31
31
 
32
32
  model_config = ConfigDict(
@@ -18,8 +18,8 @@ import re # noqa: F401
18
18
  import json
19
19
 
20
20
  from datetime import datetime
21
- from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
- from typing import Any, ClassVar, Dict, List
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
23
  from typing import Optional, Set
24
24
  from typing_extensions import Self
25
25
 
@@ -29,10 +29,46 @@ class ValidationSetModel(BaseModel):
29
29
  """ # noqa: E501
30
30
  id: StrictStr
31
31
  name: StrictStr
32
+ asset_type: Optional[List[StrictStr]] = Field(default=None, alias="assetType")
33
+ modality: Optional[List[StrictStr]] = None
34
+ prompt_type: Optional[List[StrictStr]] = Field(default=None, alias="promptType")
32
35
  owner_id: StrictStr = Field(alias="ownerId")
33
36
  owner_mail: StrictStr = Field(alias="ownerMail")
34
37
  created_at: datetime = Field(alias="createdAt")
35
- __properties: ClassVar[List[str]] = ["id", "name", "ownerId", "ownerMail", "createdAt"]
38
+ __properties: ClassVar[List[str]] = ["id", "name", "assetType", "modality", "promptType", "ownerId", "ownerMail", "createdAt"]
39
+
40
+ @field_validator('asset_type')
41
+ def asset_type_validate_enum(cls, value):
42
+ """Validates the enum"""
43
+ if value is None:
44
+ return value
45
+
46
+ for i in value:
47
+ if i not in set(['None', 'Image', 'Video', 'Audio', 'Text']):
48
+ raise ValueError("each list item must be one of ('None', 'Image', 'Video', 'Audio', 'Text')")
49
+ return value
50
+
51
+ @field_validator('modality')
52
+ def modality_validate_enum(cls, value):
53
+ """Validates the enum"""
54
+ if value is None:
55
+ return value
56
+
57
+ for i in value:
58
+ if i not in set(['None', 'BoundingBox', 'Classify', 'Compare', 'FreeText', 'Line', 'Locate', 'NamedEntity', 'Polygon', 'Scrub', 'Transcription']):
59
+ raise ValueError("each list item must be one of ('None', 'BoundingBox', 'Classify', 'Compare', 'FreeText', 'Line', 'Locate', 'NamedEntity', 'Polygon', 'Scrub', 'Transcription')")
60
+ return value
61
+
62
+ @field_validator('prompt_type')
63
+ def prompt_type_validate_enum(cls, value):
64
+ """Validates the enum"""
65
+ if value is None:
66
+ return value
67
+
68
+ for i in value:
69
+ if i not in set(['None', 'Text', 'Asset']):
70
+ raise ValueError("each list item must be one of ('None', 'Text', 'Asset')")
71
+ return value
36
72
 
37
73
  model_config = ConfigDict(
38
74
  populate_by_name=True,
@@ -87,6 +123,9 @@ class ValidationSetModel(BaseModel):
87
123
  _obj = cls.model_validate({
88
124
  "id": obj.get("id"),
89
125
  "name": obj.get("name"),
126
+ "assetType": obj.get("assetType"),
127
+ "modality": obj.get("modality"),
128
+ "promptType": obj.get("promptType"),
90
129
  "ownerId": obj.get("ownerId"),
91
130
  "ownerMail": obj.get("ownerMail"),
92
131
  "createdAt": obj.get("createdAt")
@@ -28,7 +28,7 @@ class VideoDurationMetadata(BaseModel):
28
28
  """ # noqa: E501
29
29
  t: StrictStr = Field(description="Discriminator value for VideoDurationMetadata", alias="_t")
30
30
  duration: StrictStr
31
- visibilities: Optional[StrictStr] = None
31
+ visibilities: Optional[List[StrictStr]] = None
32
32
  __properties: ClassVar[List[str]] = ["_t", "duration", "visibilities"]
33
33
 
34
34
  @field_validator('t')
@@ -38,6 +38,17 @@ class VideoDurationMetadata(BaseModel):
38
38
  raise ValueError("must be one of enum values ('VideoDurationMetadata')")
39
39
  return value
40
40
 
41
+ @field_validator('visibilities')
42
+ def visibilities_validate_enum(cls, value):
43
+ """Validates the enum"""
44
+ if value is None:
45
+ return value
46
+
47
+ for i in value:
48
+ if i not in set(['None', 'Users', 'Customers', 'Admins', 'Dashboard', 'All']):
49
+ raise ValueError("each list item must be one of ('None', 'Users', 'Customers', 'Admins', 'Dashboard', 'All')")
50
+ return value
51
+
41
52
  model_config = ConfigDict(
42
53
  populate_by_name=True,
43
54
  validate_assignment=True,
@@ -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.aggregator_type import AggregatorType
22
23
  from typing import Optional, Set
23
24
  from typing_extensions import Self
24
25
 
@@ -30,7 +31,7 @@ class WorkflowAggregationStepModel(BaseModel):
30
31
  campaign_artifact_id: StrictStr = Field(description="The campaign artifact id", alias="campaignArtifactId")
31
32
  workflow_artifact_id: StrictStr = Field(description="The workflow artifact id", alias="workflowArtifactId")
32
33
  file_artifact_id: StrictStr = Field(description="The file artifact id", alias="fileArtifactId")
33
- aggregator_type: Optional[StrictStr] = Field(default='NonCommittal', description="The type of the aggregator", alias="aggregatorType")
34
+ aggregator_type: Optional[AggregatorType] = Field(default=None, alias="aggregatorType")
34
35
  __properties: ClassVar[List[str]] = ["_t", "campaignArtifactId", "workflowArtifactId", "fileArtifactId", "aggregatorType"]
35
36
 
36
37
  @field_validator('t')
@@ -40,16 +41,6 @@ class WorkflowAggregationStepModel(BaseModel):
40
41
  raise ValueError("must be one of enum values ('WorkflowAggregationStepModel')")
41
42
  return value
42
43
 
43
- @field_validator('aggregator_type')
44
- def aggregator_type_validate_enum(cls, value):
45
- """Validates the enum"""
46
- if value is None:
47
- return value
48
-
49
- if value not in set(['NonCommittal', 'MajorityVote', 'SimpleMatchup', 'LocateCluster', 'Classification', 'Locate', 'BoundingBox', 'Line', 'Transcription', 'SinglePointLocate', 'FreeText', 'Scrub']):
50
- raise ValueError("must be one of enum values ('NonCommittal', 'MajorityVote', 'SimpleMatchup', 'LocateCluster', 'Classification', 'Locate', 'BoundingBox', 'Line', 'Transcription', 'SinglePointLocate', 'FreeText', 'Scrub')")
51
- return value
52
-
53
44
  model_config = ConfigDict(
54
45
  populate_by_name=True,
55
46
  validate_assignment=True,
@@ -105,7 +96,7 @@ class WorkflowAggregationStepModel(BaseModel):
105
96
  "campaignArtifactId": obj.get("campaignArtifactId"),
106
97
  "workflowArtifactId": obj.get("workflowArtifactId"),
107
98
  "fileArtifactId": obj.get("fileArtifactId"),
108
- "aggregatorType": obj.get("aggregatorType") if obj.get("aggregatorType") is not None else 'NonCommittal'
99
+ "aggregatorType": obj.get("aggregatorType")
109
100
  })
110
101
  return _obj
111
102
 
@@ -136,6 +136,7 @@ Class | Method | HTTP request | Description
136
136
  *LeaderboardApi* | [**leaderboard_leaderboard_id_participants_get**](rapidata/api_client/docs/LeaderboardApi.md#leaderboard_leaderboard_id_participants_get) | **GET** /leaderboard/{leaderboardId}/participants | queries all the participants connected to leaderboard by its ID.
137
137
  *LeaderboardApi* | [**leaderboard_leaderboard_id_participants_participant_id_submit_post**](rapidata/api_client/docs/LeaderboardApi.md#leaderboard_leaderboard_id_participants_participant_id_submit_post) | **POST** /leaderboard/{leaderboardId}/participants/{participantId}/submit | Submits a participant to a leaderboard.
138
138
  *LeaderboardApi* | [**leaderboard_leaderboard_id_participants_post**](rapidata/api_client/docs/LeaderboardApi.md#leaderboard_leaderboard_id_participants_post) | **POST** /leaderboard/{leaderboardId}/participants | Creates a participant in a leaderboard.
139
+ *LeaderboardApi* | [**leaderboard_leaderboard_id_patch**](rapidata/api_client/docs/LeaderboardApi.md#leaderboard_leaderboard_id_patch) | **PATCH** /leaderboard/{leaderboardId} | Updates the response config of a leaderboard.
139
140
  *LeaderboardApi* | [**leaderboard_leaderboard_id_prompts_get**](rapidata/api_client/docs/LeaderboardApi.md#leaderboard_leaderboard_id_prompts_get) | **GET** /leaderboard/{leaderboardId}/prompts | returns the paged prompts of a leaderboard by its ID.
140
141
  *LeaderboardApi* | [**leaderboard_leaderboard_id_prompts_post**](rapidata/api_client/docs/LeaderboardApi.md#leaderboard_leaderboard_id_prompts_post) | **POST** /leaderboard/{leaderboardId}/prompts | adds a new prompt to a leaderboard.
141
142
  *LeaderboardApi* | [**leaderboard_leaderboard_id_response_config_put**](rapidata/api_client/docs/LeaderboardApi.md#leaderboard_leaderboard_id_response_config_put) | **PUT** /leaderboard/{leaderboardId}/response-config | Updates the response config of a leaderboard.
@@ -189,21 +190,22 @@ Class | Method | HTTP request | Description
189
190
  *UserRapidApi* | [**rapid_response_post**](rapidata/api_client/docs/UserRapidApi.md#rapid_response_post) | **POST** /rapid/response | Submits a response for a Rapid.
190
191
  *UserRapidApi* | [**rapid_skip_post**](rapidata/api_client/docs/UserRapidApi.md#rapid_skip_post) | **POST** /rapid/skip | Skips a Rapid for the user.
191
192
  *ValidationSetApi* | [**validation_set_post**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_post) | **POST** /validation-set | Creates a new empty validation set.
193
+ *ValidationSetApi* | [**validation_set_recommended_get**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_recommended_get) | **GET** /validation-set/recommended | Gets a validation set that is available to the user and best matches the provided parameters.
192
194
  *ValidationSetApi* | [**validation_set_validation_set_id_delete**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_validation_set_id_delete) | **DELETE** /validation-set/{validationSetId} | Gets a validation set by the id.
193
195
  *ValidationSetApi* | [**validation_set_validation_set_id_dimensions_patch**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_validation_set_id_dimensions_patch) | **PATCH** /validation-set/{validationSetId}/dimensions | Updates the dimensions of all rapids within a validation set.
194
196
  *ValidationSetApi* | [**validation_set_validation_set_id_dimensions_put**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_validation_set_id_dimensions_put) | **PUT** /validation-set/{validationSetId}/dimensions | Updates the dimensions of all rapids within a validation set.
195
197
  *ValidationSetApi* | [**validation_set_validation_set_id_export_get**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_validation_set_id_export_get) | **GET** /validation-set/{validationSetId}/export | Exports all rapids of a validation-set to a file.
196
198
  *ValidationSetApi* | [**validation_set_validation_set_id_get**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_validation_set_id_get) | **GET** /validation-set/{validationSetId} | Gets a validation set by the id.
197
- *ValidationSetApi* | [**validation_set_validation_set_id_rapid_files_post**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_validation_set_id_rapid_files_post) | **POST** /validation-set/{validationSetId}/rapid/files | Adds a new validation rapid to the specified validation set using files to create the assets.
198
199
  *ValidationSetApi* | [**validation_set_validation_set_id_rapid_post**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_validation_set_id_rapid_post) | **POST** /validation-set/{validationSetId}/rapid | Adds a new validation rapid to the specified validation set using files to create the assets.
199
- *ValidationSetApi* | [**validation_set_validation_set_id_rapid_texts_post**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_validation_set_id_rapid_texts_post) | **POST** /validation-set/{validationSetId}/rapid/texts | Adds a new validation rapid to the specified validation set using text sources to create the assets.
200
200
  *ValidationSetApi* | [**validation_set_validation_set_id_rapids_get**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_validation_set_id_rapids_get) | **GET** /validation-set/{validationSetId}/rapids | Queries the validation rapids for a specific validation set.
201
201
  *ValidationSetApi* | [**validation_set_validation_set_id_shouldalert_patch**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_validation_set_id_shouldalert_patch) | **PATCH** /validation-set/{validationSetId}/shouldalert | Updates the dimensions of all rapids within a validation set.
202
202
  *ValidationSetApi* | [**validation_set_validation_set_id_shouldalert_put**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_validation_set_id_shouldalert_put) | **PUT** /validation-set/{validationSetId}/shouldalert | Updates the of all rapshouldAlert property of all rapids within a validation set.
203
+ *ValidationSetApi* | [**validation_set_validation_set_id_update_labeling_hints_post**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_validation_set_id_update_labeling_hints_post) | **POST** /validation-set/{validationSetId}/update-labeling-hints | Refreshes the labeling hints for a validation set.
204
+ *ValidationSetApi* | [**validation_set_validation_set_id_visibility_patch**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_validation_set_id_visibility_patch) | **PATCH** /validation-set/{validationSetId}/visibility | Updates the visibility of a validation set.
203
205
  *ValidationSetApi* | [**validation_set_zip_compare_post**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_zip_compare_post) | **POST** /validation-set/zip/compare | Imports a compare validation set from a zip file.
204
206
  *ValidationSetApi* | [**validation_set_zip_post**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_zip_post) | **POST** /validation-set/zip | Imports a validation set from a zip file.
205
207
  *ValidationSetApi* | [**validation_sets_available_get**](rapidata/api_client/docs/ValidationSetApi.md#validation_sets_available_get) | **GET** /validation-sets/available | Gets the available validation sets for the current user.
206
- *ValidationSetApi* | [**validation_sets_get**](rapidata/api_client/docs/ValidationSetApi.md#validation_sets_get) | **GET** /validation-sets | Queries validation sets based on the provided filter, paging and sorting criteria.
208
+ *ValidationSetApi* | [**validation_sets_get**](rapidata/api_client/docs/ValidationSetApi.md#validation_sets_get) | **GET** /validation-sets | Queries available validation sets based on the provided filter, paging and sorting criteria.
207
209
  *WorkflowApi* | [**workflow_delete_delete**](rapidata/api_client/docs/WorkflowApi.md#workflow_delete_delete) | **DELETE** /workflow/delete | Deletes a workflow.
208
210
  *WorkflowApi* | [**workflow_workflow_id_compare_ab_summary_get**](rapidata/api_client/docs/WorkflowApi.md#workflow_workflow_id_compare_ab_summary_get) | **GET** /workflow/{workflowId}/compare-ab-summary | Calculates a summary of the results for a simple compare workflow. The summary includes the number of times an asset at each index was the winner.
209
211
  *WorkflowApi* | [**workflow_workflow_id_get**](rapidata/api_client/docs/WorkflowApi.md#workflow_workflow_id_get) | **GET** /workflow/{workflowId} | Get a workflow by its ID.
@@ -221,7 +223,6 @@ Class | Method | HTTP request | Description
221
223
  - [AddValidationRapidModelPayload](rapidata/api_client/docs/AddValidationRapidModelPayload.md)
222
224
  - [AddValidationRapidModelTruth](rapidata/api_client/docs/AddValidationRapidModelTruth.md)
223
225
  - [AddValidationRapidResult](rapidata/api_client/docs/AddValidationRapidResult.md)
224
- - [AddValidationTextRapidModel](rapidata/api_client/docs/AddValidationTextRapidModel.md)
225
226
  - [AgeGroup](rapidata/api_client/docs/AgeGroup.md)
226
227
  - [AgeUserFilterModel](rapidata/api_client/docs/AgeUserFilterModel.md)
227
228
  - [AggregatorType](rapidata/api_client/docs/AggregatorType.md)
@@ -383,6 +384,7 @@ Class | Method | HTTP request | Description
383
384
  - [GetPublicOrdersResult](rapidata/api_client/docs/GetPublicOrdersResult.md)
384
385
  - [GetPublicResponsesResult](rapidata/api_client/docs/GetPublicResponsesResult.md)
385
386
  - [GetRapidResponsesResult](rapidata/api_client/docs/GetRapidResponsesResult.md)
387
+ - [GetRecommendedValidationSetResult](rapidata/api_client/docs/GetRecommendedValidationSetResult.md)
386
388
  - [GetResponsesResult](rapidata/api_client/docs/GetResponsesResult.md)
387
389
  - [GetSampleByIdResult](rapidata/api_client/docs/GetSampleByIdResult.md)
388
390
  - [GetSimpleWorkflowResultsModel](rapidata/api_client/docs/GetSimpleWorkflowResultsModel.md)
@@ -428,7 +430,6 @@ Class | Method | HTTP request | Description
428
430
  - [LocationMetadataExistsFilterConfig](rapidata/api_client/docs/LocationMetadataExistsFilterConfig.md)
429
431
  - [LocationMetadataModel](rapidata/api_client/docs/LocationMetadataModel.md)
430
432
  - [LogicOperator](rapidata/api_client/docs/LogicOperator.md)
431
- - [MetadataVisibilities](rapidata/api_client/docs/MetadataVisibilities.md)
432
433
  - [MultiAsset](rapidata/api_client/docs/MultiAsset.md)
433
434
  - [MultiAssetInput](rapidata/api_client/docs/MultiAssetInput.md)
434
435
  - [MultiAssetInput1](rapidata/api_client/docs/MultiAssetInput1.md)
@@ -485,6 +486,7 @@ Class | Method | HTTP request | Description
485
486
  - [PrivateTextMetadataInput](rapidata/api_client/docs/PrivateTextMetadataInput.md)
486
487
  - [ProbabilisticAttachCategoryRefereeConfig](rapidata/api_client/docs/ProbabilisticAttachCategoryRefereeConfig.md)
487
488
  - [ProbabilisticAttachCategoryRefereeInfo](rapidata/api_client/docs/ProbabilisticAttachCategoryRefereeInfo.md)
489
+ - [ProblemDetails](rapidata/api_client/docs/ProblemDetails.md)
488
490
  - [PromptAssetMetadataInput](rapidata/api_client/docs/PromptAssetMetadataInput.md)
489
491
  - [PromptAssetMetadataInputAsset](rapidata/api_client/docs/PromptAssetMetadataInputAsset.md)
490
492
  - [PromptByBenchmarkResult](rapidata/api_client/docs/PromptByBenchmarkResult.md)
@@ -578,6 +580,7 @@ Class | Method | HTTP request | Description
578
580
  - [UpdateBenchmarkNameModel](rapidata/api_client/docs/UpdateBenchmarkNameModel.md)
579
581
  - [UpdateDatasetNameModel](rapidata/api_client/docs/UpdateDatasetNameModel.md)
580
582
  - [UpdateDimensionsModel](rapidata/api_client/docs/UpdateDimensionsModel.md)
583
+ - [UpdateLeaderboardModel](rapidata/api_client/docs/UpdateLeaderboardModel.md)
581
584
  - [UpdateLeaderboardNameModel](rapidata/api_client/docs/UpdateLeaderboardNameModel.md)
582
585
  - [UpdateLeaderboardResponseConfigModel](rapidata/api_client/docs/UpdateLeaderboardResponseConfigModel.md)
583
586
  - [UpdateOrderNameModel](rapidata/api_client/docs/UpdateOrderNameModel.md)
@@ -6,7 +6,7 @@ from .selection import (
6
6
  ConditionalValidationSelection,
7
7
  CappedSelection,
8
8
  ShufflingSelection,
9
- RetrievalMode,
9
+ RapidataRetrievalMode,
10
10
  EffortSelection,
11
11
  )
12
12
  from .datapoints import Datapoint
@@ -7,7 +7,7 @@ from rapidata.rapidata_client.logging import logger
7
7
  from rapidata.rapidata_client.logging.output_manager import RapidataOutputManager
8
8
  from rapidata.api_client.models.create_sample_model import CreateSampleModel
9
9
  from rapidata.service.openapi_service import OpenAPIService
10
- from rapidata.rapidata_client.config.config import rapidata_config
10
+ from rapidata.rapidata_client.config.rapidata_config import rapidata_config
11
11
  from rapidata.rapidata_client.api.rapidata_exception import (
12
12
  suppress_rapidata_error_logging,
13
13
  )
@@ -42,7 +42,7 @@ class BenchmarkParticipant:
42
42
  urls = [asset.path]
43
43
 
44
44
  last_exception = None
45
- for attempt in range(rapidata_config.upload_max_retries):
45
+ for attempt in range(rapidata_config.uploadMaxRetries):
46
46
  try:
47
47
  with suppress_rapidata_error_logging():
48
48
  self.__openapi_service.participant_api.participant_participant_id_sample_post(
@@ -56,7 +56,7 @@ class BenchmarkParticipant:
56
56
 
57
57
  except Exception as e:
58
58
  last_exception = e
59
- if attempt < rapidata_config.upload_max_retries - 1:
59
+ if attempt < rapidata_config.uploadMaxRetries - 1:
60
60
  # Exponential backoff: wait 1s, then 2s, then 4s
61
61
  retry_delay = 2**attempt
62
62
  time.sleep(retry_delay)
@@ -64,7 +64,7 @@ class BenchmarkParticipant:
64
64
  logger.debug(
65
65
  "Retrying %s of %s...",
66
66
  attempt + 1,
67
- rapidata_config.upload_max_retries,
67
+ rapidata_config.uploadMaxRetries,
68
68
  )
69
69
 
70
70
  logger.error(f"Upload failed for {identifier}. Error: {str(last_exception)}")
@@ -90,7 +90,7 @@ class BenchmarkParticipant:
90
90
  total_uploads = len(assets)
91
91
 
92
92
  with ThreadPoolExecutor(
93
- max_workers=rapidata_config.max_upload_workers
93
+ max_workers=rapidata_config.maxUploadWorkers
94
94
  ) as executor:
95
95
  futures = [
96
96
  executor.submit(
@@ -18,6 +18,7 @@ from rapidata.api_client.models.source_url_metadata_model import SourceUrlMetada
18
18
  from rapidata.api_client.models.and_user_filter_model_filters_inner import (
19
19
  AndUserFilterModelFiltersInner,
20
20
  )
21
+ from rapidata.api_client.models.filter_operator import FilterOperator
21
22
 
22
23
  from rapidata.rapidata_client.benchmark.participant._participant import (
23
24
  BenchmarkParticipant,
@@ -150,7 +151,7 @@ class RapidataBenchmark:
150
151
  filters=[
151
152
  Filter(
152
153
  field="BenchmarkId",
153
- operator="Eq",
154
+ operator=FilterOperator.EQ,
154
155
  value=self.id,
155
156
  )
156
157
  ]
@@ -7,6 +7,8 @@ from rapidata.api_client.models.page_info import PageInfo
7
7
  from rapidata.api_client.models.root_filter import RootFilter
8
8
  from rapidata.api_client.models.filter import Filter
9
9
  from rapidata.api_client.models.sort_criterion import SortCriterion
10
+ from rapidata.api_client.models.sort_direction import SortDirection
11
+ from rapidata.api_client.models.filter_operator import FilterOperator
10
12
 
11
13
 
12
14
  class RapidataBenchmarkManager:
@@ -139,10 +141,16 @@ class RapidataBenchmarkManager:
139
141
  QueryModel(
140
142
  page=PageInfo(index=1, size=amount),
141
143
  filter=RootFilter(
142
- filters=[Filter(field="Name", operator="Contains", value=name)]
144
+ filters=[
145
+ Filter(
146
+ field="Name", operator=FilterOperator.CONTAINS, value=name
147
+ )
148
+ ]
143
149
  ),
144
150
  sortCriteria=[
145
- SortCriterion(direction="Desc", propertyName="CreatedAt")
151
+ SortCriterion(
152
+ direction=SortDirection.DESC, propertyName="CreatedAt"
153
+ )
146
154
  ],
147
155
  )
148
156
  )
@@ -1 +1 @@
1
- from .config import rapidata_config
1
+ from .rapidata_config import rapidata_config
@@ -0,0 +1,31 @@
1
+ from pydantic import BaseModel, Field
2
+
3
+
4
+ class RapidataConfig(BaseModel):
5
+ """
6
+ Holds the configuration for the Rapidata client.
7
+
8
+ To adjust the configurations used, you can modify the `rapidata_config` object.
9
+
10
+ Args:
11
+ maxUploadWorkers (int): The maximum number of worker threads for processing media paths. Defaults to 10.
12
+ uploadMaxRetries (int): The maximum number of retries for failed uploads. Defaults to 3.
13
+ enableBetaFeatures (bool): Whether to enable beta features. Defaults to False.
14
+ minOrderDatapointsForValidation (int): The minimum number of datapoints required so that an automatic validationset gets created if no recommended was found. Defaults to 50.
15
+ autoValidationSetSize (int): The maximum size of the auto-generated validation set. Defaults to 20.
16
+
17
+ Example:
18
+ ```python
19
+ from rapidata import rapidata_config
20
+ rapidata_config.maxUploadWorkers = 20
21
+ ```
22
+ """
23
+
24
+ maxUploadWorkers: int = Field(default=10)
25
+ uploadMaxRetries: int = Field(default=3)
26
+ enableBetaFeatures: bool = False
27
+ minOrderDatapointsForValidation: int = Field(default=50)
28
+ autoValidationSetSize: int = Field(default=20)
29
+
30
+
31
+ rapidata_config = RapidataConfig()
@@ -1,3 +1,11 @@
1
- from .datapoint import Datapoint
1
+ from ._datapoint import Datapoint
2
2
  from .assets import MediaAsset, MultiAsset, TextAsset
3
- from .metadata import Metadata, PromptMetadata, PrivateTextMetadata, PublicTextMetadata, SelectWordsMetadata, MediaAssetMetadata, PromptIdentifierMetadata
3
+ from .metadata import (
4
+ Metadata,
5
+ PromptMetadata,
6
+ PrivateTextMetadata,
7
+ PublicTextMetadata,
8
+ SelectWordsMetadata,
9
+ MediaAssetMetadata,
10
+ PromptIdentifierMetadata,
11
+ )