rapidata 2.21.0__py3-none-any.whl → 2.21.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.

@@ -24,12 +24,13 @@ from rapidata.api_client.models.custom_user_filter_model import CustomUserFilter
24
24
  from rapidata.api_client.models.gender_user_filter_model import GenderUserFilterModel
25
25
  from rapidata.api_client.models.language_user_filter_model import LanguageUserFilterModel
26
26
  from rapidata.api_client.models.new_user_filter_model import NewUserFilterModel
27
+ from rapidata.api_client.models.response_count_user_filter_model import ResponseCountUserFilterModel
27
28
  from rapidata.api_client.models.user_score_user_filter_model import UserScoreUserFilterModel
28
29
  from pydantic import StrictStr, Field
29
30
  from typing import Union, List, Set, Optional, Dict
30
31
  from typing_extensions import Literal, Self
31
32
 
32
- CREATEORDERMODELUSERFILTERSINNER_ONE_OF_SCHEMAS = ["AgeUserFilterModel", "CampaignUserFilterModel", "CountryUserFilterModel", "CustomUserFilterModel", "GenderUserFilterModel", "LanguageUserFilterModel", "NewUserFilterModel", "NotUserFilterModel", "OrUserFilterModel", "UserScoreUserFilterModel"]
33
+ CREATEORDERMODELUSERFILTERSINNER_ONE_OF_SCHEMAS = ["AgeUserFilterModel", "CampaignUserFilterModel", "CountryUserFilterModel", "CustomUserFilterModel", "GenderUserFilterModel", "LanguageUserFilterModel", "NewUserFilterModel", "NotUserFilterModel", "OrUserFilterModel", "ResponseCountUserFilterModel", "UserScoreUserFilterModel"]
33
34
 
34
35
  class CreateOrderModelUserFiltersInner(BaseModel):
35
36
  """
@@ -53,10 +54,12 @@ class CreateOrderModelUserFiltersInner(BaseModel):
53
54
  oneof_schema_8_validator: Optional[NotUserFilterModel] = None
54
55
  # data type: OrUserFilterModel
55
56
  oneof_schema_9_validator: Optional[OrUserFilterModel] = None
57
+ # data type: ResponseCountUserFilterModel
58
+ oneof_schema_10_validator: Optional[ResponseCountUserFilterModel] = None
56
59
  # data type: UserScoreUserFilterModel
57
- oneof_schema_10_validator: Optional[UserScoreUserFilterModel] = None
58
- actual_instance: Optional[Union[AgeUserFilterModel, CampaignUserFilterModel, CountryUserFilterModel, CustomUserFilterModel, GenderUserFilterModel, LanguageUserFilterModel, NewUserFilterModel, NotUserFilterModel, OrUserFilterModel, UserScoreUserFilterModel]] = None
59
- one_of_schemas: Set[str] = { "AgeUserFilterModel", "CampaignUserFilterModel", "CountryUserFilterModel", "CustomUserFilterModel", "GenderUserFilterModel", "LanguageUserFilterModel", "NewUserFilterModel", "NotUserFilterModel", "OrUserFilterModel", "UserScoreUserFilterModel" }
60
+ oneof_schema_11_validator: Optional[UserScoreUserFilterModel] = None
61
+ actual_instance: Optional[Union[AgeUserFilterModel, CampaignUserFilterModel, CountryUserFilterModel, CustomUserFilterModel, GenderUserFilterModel, LanguageUserFilterModel, NewUserFilterModel, NotUserFilterModel, OrUserFilterModel, ResponseCountUserFilterModel, UserScoreUserFilterModel]] = None
62
+ one_of_schemas: Set[str] = { "AgeUserFilterModel", "CampaignUserFilterModel", "CountryUserFilterModel", "CustomUserFilterModel", "GenderUserFilterModel", "LanguageUserFilterModel", "NewUserFilterModel", "NotUserFilterModel", "OrUserFilterModel", "ResponseCountUserFilterModel", "UserScoreUserFilterModel" }
60
63
 
61
64
  model_config = ConfigDict(
62
65
  validate_assignment=True,
@@ -127,6 +130,11 @@ class CreateOrderModelUserFiltersInner(BaseModel):
127
130
  error_messages.append(f"Error! Input type `{type(v)}` is not `OrUserFilterModel`")
128
131
  else:
129
132
  match += 1
133
+ # validate data type: ResponseCountUserFilterModel
134
+ if not isinstance(v, ResponseCountUserFilterModel):
135
+ error_messages.append(f"Error! Input type `{type(v)}` is not `ResponseCountUserFilterModel`")
136
+ else:
137
+ match += 1
130
138
  # validate data type: UserScoreUserFilterModel
131
139
  if not isinstance(v, UserScoreUserFilterModel):
132
140
  error_messages.append(f"Error! Input type `{type(v)}` is not `UserScoreUserFilterModel`")
@@ -134,10 +142,10 @@ class CreateOrderModelUserFiltersInner(BaseModel):
134
142
  match += 1
135
143
  if match > 1:
136
144
  # more than 1 match
137
- raise ValueError("Multiple matches found when setting `actual_instance` in CreateOrderModelUserFiltersInner with oneOf schemas: AgeUserFilterModel, CampaignUserFilterModel, CountryUserFilterModel, CustomUserFilterModel, GenderUserFilterModel, LanguageUserFilterModel, NewUserFilterModel, NotUserFilterModel, OrUserFilterModel, UserScoreUserFilterModel. Details: " + ", ".join(error_messages))
145
+ raise ValueError("Multiple matches found when setting `actual_instance` in CreateOrderModelUserFiltersInner with oneOf schemas: AgeUserFilterModel, CampaignUserFilterModel, CountryUserFilterModel, CustomUserFilterModel, GenderUserFilterModel, LanguageUserFilterModel, NewUserFilterModel, NotUserFilterModel, OrUserFilterModel, ResponseCountUserFilterModel, UserScoreUserFilterModel. Details: " + ", ".join(error_messages))
138
146
  elif match == 0:
139
147
  # no match
140
- raise ValueError("No match found when setting `actual_instance` in CreateOrderModelUserFiltersInner with oneOf schemas: AgeUserFilterModel, CampaignUserFilterModel, CountryUserFilterModel, CustomUserFilterModel, GenderUserFilterModel, LanguageUserFilterModel, NewUserFilterModel, NotUserFilterModel, OrUserFilterModel, UserScoreUserFilterModel. Details: " + ", ".join(error_messages))
148
+ raise ValueError("No match found when setting `actual_instance` in CreateOrderModelUserFiltersInner with oneOf schemas: AgeUserFilterModel, CampaignUserFilterModel, CountryUserFilterModel, CustomUserFilterModel, GenderUserFilterModel, LanguageUserFilterModel, NewUserFilterModel, NotUserFilterModel, OrUserFilterModel, ResponseCountUserFilterModel, UserScoreUserFilterModel. Details: " + ", ".join(error_messages))
141
149
  else:
142
150
  return v
143
151
 
@@ -206,6 +214,12 @@ class CreateOrderModelUserFiltersInner(BaseModel):
206
214
  match += 1
207
215
  except (ValidationError, ValueError) as e:
208
216
  error_messages.append(str(e))
217
+ # deserialize data into ResponseCountUserFilterModel
218
+ try:
219
+ instance.actual_instance = ResponseCountUserFilterModel.from_json(json_str)
220
+ match += 1
221
+ except (ValidationError, ValueError) as e:
222
+ error_messages.append(str(e))
209
223
  # deserialize data into UserScoreUserFilterModel
210
224
  try:
211
225
  instance.actual_instance = UserScoreUserFilterModel.from_json(json_str)
@@ -215,10 +229,10 @@ class CreateOrderModelUserFiltersInner(BaseModel):
215
229
 
216
230
  if match > 1:
217
231
  # more than 1 match
218
- raise ValueError("Multiple matches found when deserializing the JSON string into CreateOrderModelUserFiltersInner with oneOf schemas: AgeUserFilterModel, CampaignUserFilterModel, CountryUserFilterModel, CustomUserFilterModel, GenderUserFilterModel, LanguageUserFilterModel, NewUserFilterModel, NotUserFilterModel, OrUserFilterModel, UserScoreUserFilterModel. Details: " + ", ".join(error_messages))
232
+ raise ValueError("Multiple matches found when deserializing the JSON string into CreateOrderModelUserFiltersInner with oneOf schemas: AgeUserFilterModel, CampaignUserFilterModel, CountryUserFilterModel, CustomUserFilterModel, GenderUserFilterModel, LanguageUserFilterModel, NewUserFilterModel, NotUserFilterModel, OrUserFilterModel, ResponseCountUserFilterModel, UserScoreUserFilterModel. Details: " + ", ".join(error_messages))
219
233
  elif match == 0:
220
234
  # no match
221
- raise ValueError("No match found when deserializing the JSON string into CreateOrderModelUserFiltersInner with oneOf schemas: AgeUserFilterModel, CampaignUserFilterModel, CountryUserFilterModel, CustomUserFilterModel, GenderUserFilterModel, LanguageUserFilterModel, NewUserFilterModel, NotUserFilterModel, OrUserFilterModel, UserScoreUserFilterModel. Details: " + ", ".join(error_messages))
235
+ raise ValueError("No match found when deserializing the JSON string into CreateOrderModelUserFiltersInner with oneOf schemas: AgeUserFilterModel, CampaignUserFilterModel, CountryUserFilterModel, CustomUserFilterModel, GenderUserFilterModel, LanguageUserFilterModel, NewUserFilterModel, NotUserFilterModel, OrUserFilterModel, ResponseCountUserFilterModel, UserScoreUserFilterModel. Details: " + ", ".join(error_messages))
222
236
  else:
223
237
  return instance
224
238
 
@@ -232,7 +246,7 @@ class CreateOrderModelUserFiltersInner(BaseModel):
232
246
  else:
233
247
  return json.dumps(self.actual_instance)
234
248
 
235
- def to_dict(self) -> Optional[Union[Dict[str, Any], AgeUserFilterModel, CampaignUserFilterModel, CountryUserFilterModel, CustomUserFilterModel, GenderUserFilterModel, LanguageUserFilterModel, NewUserFilterModel, NotUserFilterModel, OrUserFilterModel, UserScoreUserFilterModel]]:
249
+ def to_dict(self) -> Optional[Union[Dict[str, Any], AgeUserFilterModel, CampaignUserFilterModel, CountryUserFilterModel, CustomUserFilterModel, GenderUserFilterModel, LanguageUserFilterModel, NewUserFilterModel, NotUserFilterModel, OrUserFilterModel, ResponseCountUserFilterModel, UserScoreUserFilterModel]]:
236
250
  """Returns the dict representation of the actual instance"""
237
251
  if self.actual_instance is None:
238
252
  return None
@@ -26,11 +26,11 @@ class ReportModel(BaseModel):
26
26
  """
27
27
  The model for reporting an issue with a rapid.
28
28
  """ # noqa: E501
29
- rapid_id: Optional[StrictStr] = Field(default=None, description="The rapid an issue was encountered with.", alias="rapidId")
30
29
  issue: StrictStr
31
30
  message: Optional[StrictStr] = Field(default=None, description="An optional message typed by the user.")
32
31
  dump: Optional[StrictStr] = Field(default=None, description="A dump, that the frontend defines and can read again.")
33
- __properties: ClassVar[List[str]] = ["rapidId", "issue", "message", "dump"]
32
+ source: Optional[StrictStr] = Field(default=None, description="An optional identifier where the report originated from.")
33
+ __properties: ClassVar[List[str]] = ["issue", "message", "dump", "source"]
34
34
 
35
35
  @field_validator('issue')
36
36
  def issue_validate_enum(cls, value):
@@ -88,6 +88,11 @@ class ReportModel(BaseModel):
88
88
  if self.dump is None and "dump" in self.model_fields_set:
89
89
  _dict['dump'] = None
90
90
 
91
+ # set to None if source (nullable) is None
92
+ # and model_fields_set contains the field
93
+ if self.source is None and "source" in self.model_fields_set:
94
+ _dict['source'] = None
95
+
91
96
  return _dict
92
97
 
93
98
  @classmethod
@@ -100,10 +105,10 @@ class ReportModel(BaseModel):
100
105
  return cls.model_validate(obj)
101
106
 
102
107
  _obj = cls.model_validate({
103
- "rapidId": obj.get("rapidId"),
104
108
  "issue": obj.get("issue"),
105
109
  "message": obj.get("message"),
106
- "dump": obj.get("dump")
110
+ "dump": obj.get("dump"),
111
+ "source": obj.get("source")
107
112
  })
108
113
  return _obj
109
114
 
@@ -0,0 +1,107 @@
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, field_validator
21
+ from typing import Any, ClassVar, Dict, List
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+
25
+ class ResponseCountUserFilterModel(BaseModel):
26
+ """
27
+ ResponseCountUserFilterModel
28
+ """ # noqa: E501
29
+ t: StrictStr = Field(description="Discriminator value for ResponseCountFilter", alias="_t")
30
+ response_count: StrictInt = Field(alias="responseCount")
31
+ dimension: StrictStr
32
+ operator: StrictStr
33
+ __properties: ClassVar[List[str]] = ["_t", "responseCount", "dimension", "operator"]
34
+
35
+ @field_validator('t')
36
+ def t_validate_enum(cls, value):
37
+ """Validates the enum"""
38
+ if value not in set(['ResponseCountFilter']):
39
+ raise ValueError("must be one of enum values ('ResponseCountFilter')")
40
+ return value
41
+
42
+ @field_validator('operator')
43
+ def operator_validate_enum(cls, value):
44
+ """Validates the enum"""
45
+ if value not in set(['Equal', 'NotEqual', 'LessThan', 'LessThanOrEqual', 'GreaterThan', 'GreaterThanOrEqual']):
46
+ raise ValueError("must be one of enum values ('Equal', 'NotEqual', 'LessThan', 'LessThanOrEqual', 'GreaterThan', 'GreaterThanOrEqual')")
47
+ return value
48
+
49
+ model_config = ConfigDict(
50
+ populate_by_name=True,
51
+ validate_assignment=True,
52
+ protected_namespaces=(),
53
+ )
54
+
55
+
56
+ def to_str(self) -> str:
57
+ """Returns the string representation of the model using alias"""
58
+ return pprint.pformat(self.model_dump(by_alias=True))
59
+
60
+ def to_json(self) -> str:
61
+ """Returns the JSON representation of the model using alias"""
62
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
63
+ return json.dumps(self.to_dict())
64
+
65
+ @classmethod
66
+ def from_json(cls, json_str: str) -> Optional[Self]:
67
+ """Create an instance of ResponseCountUserFilterModel from a JSON string"""
68
+ return cls.from_dict(json.loads(json_str))
69
+
70
+ def to_dict(self) -> Dict[str, Any]:
71
+ """Return the dictionary representation of the model using alias.
72
+
73
+ This has the following differences from calling pydantic's
74
+ `self.model_dump(by_alias=True)`:
75
+
76
+ * `None` is only added to the output dict for nullable fields that
77
+ were set at model initialization. Other fields with value `None`
78
+ are ignored.
79
+ """
80
+ excluded_fields: Set[str] = set([
81
+ ])
82
+
83
+ _dict = self.model_dump(
84
+ by_alias=True,
85
+ exclude=excluded_fields,
86
+ exclude_none=True,
87
+ )
88
+ return _dict
89
+
90
+ @classmethod
91
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
92
+ """Create an instance of ResponseCountUserFilterModel from a dict"""
93
+ if obj is None:
94
+ return None
95
+
96
+ if not isinstance(obj, dict):
97
+ return cls.model_validate(obj)
98
+
99
+ _obj = cls.model_validate({
100
+ "_t": obj.get("_t") if obj.get("_t") is not None else 'ResponseCountFilter',
101
+ "responseCount": obj.get("responseCount"),
102
+ "dimension": obj.get("dimension"),
103
+ "operator": obj.get("operator")
104
+ })
105
+ return _obj
106
+
107
+
@@ -111,6 +111,7 @@ Class | Method | HTTP request | Description
111
111
  *DatasetApi* | [**dataset_updatename_post**](rapidata/api_client/docs/DatasetApi.md#dataset_updatename_post) | **POST** /dataset/updatename | Updates the name of a dataset.
112
112
  *DatasetApi* | [**dataset_uploadfilesfroms3_post**](rapidata/api_client/docs/DatasetApi.md#dataset_uploadfilesfroms3_post) | **POST** /dataset/uploadfilesfroms3 | Uploads files from an S3 bucket to a dataset.
113
113
  *FeedbackApi* | [**feedback_feedback_post**](rapidata/api_client/docs/FeedbackApi.md#feedback_feedback_post) | **POST** /feedback/feedback | Submits feedback about our services.
114
+ *FeedbackApi* | [**feedback_post**](rapidata/api_client/docs/FeedbackApi.md#feedback_post) | **POST** /feedback | Submits feedback about our services.
114
115
  *IdentityApi* | [**identity_bridge_token_get**](rapidata/api_client/docs/IdentityApi.md#identity_bridge_token_get) | **GET** /identity/bridge-token | Tries to read the bridge token keys for a given read key. The read key is used to retrieve the authentication result written by the write key.
115
116
  *IdentityApi* | [**identity_bridge_token_post**](rapidata/api_client/docs/IdentityApi.md#identity_bridge_token_post) | **POST** /identity/bridge-token | Creates a pair of read and write keys for a client. The write key is used to store the authentication result. The read key is used to retrieve the authentication result.
116
117
  *IdentityApi* | [**identity_createbridgetoken_post**](rapidata/api_client/docs/IdentityApi.md#identity_createbridgetoken_post) | **POST** /identity/createbridgetoken | Creates a pair of read and write keys for a client. The write key is used to store the authentication result. The read key is used to retrieve the authentication result.
@@ -177,7 +178,6 @@ Class | Method | HTTP request | Description
177
178
  *RapidApi* | [**rapid_rapid_id_delete**](rapidata/api_client/docs/RapidApi.md#rapid_rapid_id_delete) | **DELETE** /rapid/{rapidId} | Deletes a rapid.
178
179
  *RapidApi* | [**rapid_rapid_id_report_post**](rapidata/api_client/docs/RapidApi.md#rapid_rapid_id_report_post) | **POST** /rapid/{rapidId}/report | Used to report an issue with a rapid.
179
180
  *RapidApi* | [**rapid_rapid_id_responses_get**](rapidata/api_client/docs/RapidApi.md#rapid_rapid_id_responses_get) | **GET** /rapid/{rapidId}/responses | Gets all responses for a given rapid.
180
- *RapidApi* | [**rapid_report_post**](rapidata/api_client/docs/RapidApi.md#rapid_report_post) | **POST** /rapid/report | Used to report an issue with a rapid.
181
181
  *RapidApi* | [**rapid_report_report_id_get**](rapidata/api_client/docs/RapidApi.md#rapid_report_report_id_get) | **GET** /rapid/report/{reportId} | Inspects a report's dump. can be used to restore zustand state or anything alike.
182
182
  *RapidApi* | [**rapid_response_post**](rapidata/api_client/docs/RapidApi.md#rapid_response_post) | **POST** /rapid/response | Submits a response for a Rapid.
183
183
  *RapidApi* | [**rapid_skip_post**](rapidata/api_client/docs/RapidApi.md#rapid_skip_post) | **POST** /rapid/skip | Skips a Rapid for the user.
@@ -197,7 +197,9 @@ Class | Method | HTTP request | Description
197
197
  *ValidationSetApi* | [**validation_importcompare_post**](rapidata/api_client/docs/ValidationSetApi.md#validation_importcompare_post) | **POST** /validation/importcompare | Imports a compare validation set from a zip file.
198
198
  *ValidationSetApi* | [**validation_queryvalidationsets_get**](rapidata/api_client/docs/ValidationSetApi.md#validation_queryvalidationsets_get) | **GET** /validation/queryvalidationsets | Queries validation sets based on the provided filter, paging and sorting criteria.
199
199
  *ValidationSetApi* | [**validation_set_post**](rapidata/api_client/docs/ValidationSetApi.md#validation_set_post) | **POST** /validation-set | Creates a new empty validation set.
200
+ *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.
200
201
  *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.
202
+ *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 validationset to a file.
201
203
  *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.
202
204
  *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.
203
205
  *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.
@@ -272,6 +274,7 @@ Class | Method | HTTP request | Description
272
274
  - [CompareWorkflowModel1PairMakerInformation](rapidata/api_client/docs/CompareWorkflowModel1PairMakerInformation.md)
273
275
  - [CompareWorkflowModel1Referee](rapidata/api_client/docs/CompareWorkflowModel1Referee.md)
274
276
  - [CompareWorkflowModelPairMakerConfig](rapidata/api_client/docs/CompareWorkflowModelPairMakerConfig.md)
277
+ - [ComparisonOperator](rapidata/api_client/docs/ComparisonOperator.md)
275
278
  - [ConditionalValidationSelection](rapidata/api_client/docs/ConditionalValidationSelection.md)
276
279
  - [Coordinate](rapidata/api_client/docs/Coordinate.md)
277
280
  - [CountClassificationMetadataFilterConfig](rapidata/api_client/docs/CountClassificationMetadataFilterConfig.md)
@@ -440,6 +443,7 @@ Class | Method | HTTP request | Description
440
443
  - [RegisterTemporaryCustomerModel](rapidata/api_client/docs/RegisterTemporaryCustomerModel.md)
441
444
  - [RegisterTemporaryCustomerResult](rapidata/api_client/docs/RegisterTemporaryCustomerResult.md)
442
445
  - [ReportModel](rapidata/api_client/docs/ReportModel.md)
446
+ - [ResponseCountUserFilterModel](rapidata/api_client/docs/ResponseCountUserFilterModel.md)
443
447
  - [RootFilter](rapidata/api_client/docs/RootFilter.md)
444
448
  - [ScrubPayload](rapidata/api_client/docs/ScrubPayload.md)
445
449
  - [ScrubRange](rapidata/api_client/docs/ScrubRange.md)
@@ -42,6 +42,7 @@ from .filter import (
42
42
  Gender,
43
43
  NotFilter,
44
44
  OrFilter,
45
+ ResponseCountFilter,
45
46
  )
46
47
 
47
48
  from .validation import Box
File without changes
@@ -0,0 +1,105 @@
1
+ from typing import Optional, Any
2
+ from rapidata.api_client.api_client import ApiClient, rest, ApiResponse, ApiResponseT
3
+ from rapidata.api_client.exceptions import ApiException
4
+ import json
5
+
6
+
7
+ class RapidataError(Exception):
8
+ """Custom error class for Rapidata API errors."""
9
+
10
+ def __init__(
11
+ self,
12
+ status_code: Optional[int] = None,
13
+ message: str | None = None,
14
+ original_exception: Exception | None = None,
15
+ details: Any = None
16
+ ):
17
+ self.status_code = status_code
18
+ self.message = message
19
+ self.original_exception = original_exception
20
+ self.details = details
21
+
22
+ # Create a nice error message
23
+ error_msg = "Rapidata API Error"
24
+ if status_code:
25
+ error_msg += f" ({status_code})"
26
+ if message:
27
+ error_msg += f": {message}"
28
+
29
+ super().__init__(error_msg)
30
+
31
+ def __str__(self):
32
+ """Return a string representation of the error."""
33
+ # Extract information from message if available
34
+ title = None
35
+ errors = None
36
+ trace_id = None
37
+
38
+ # Try to extract from details if available and is a dict
39
+ if self.details and isinstance(self.details, dict):
40
+ title = self.details.get('title')
41
+ errors = self.details.get('errors')
42
+ trace_id = self.details.get('traceId')
43
+
44
+ # Build the error string
45
+ error_parts = []
46
+
47
+ # Main error line
48
+ if title:
49
+ error_parts.append(f"{title}")
50
+ else:
51
+ error_parts.append(f"{self.message or 'Unknown error'}")
52
+
53
+ # Reasons
54
+ if errors:
55
+ if isinstance(errors, dict):
56
+ error_parts.append(f"Reasons: {json.dumps({'errors': errors})}")
57
+ else:
58
+ error_parts.append(f"Reasons: {errors}")
59
+
60
+ # Trace ID
61
+ if trace_id:
62
+ error_parts.append(f"Trace Id: {trace_id}")
63
+ else:
64
+ error_parts.append("Trace Id: N/A")
65
+
66
+ return "\n".join(error_parts)
67
+
68
+ class RapidataApiClient(ApiClient):
69
+ """Custom API client that wraps errors in RapidataError."""
70
+
71
+ def response_deserialize(
72
+ self,
73
+ response_data: rest.RESTResponse,
74
+ response_types_map: Optional[dict[str, ApiResponseT]] = None
75
+ ) -> ApiResponse[ApiResponseT]:
76
+ """Override the response_deserialize method to catch and convert exceptions."""
77
+ try:
78
+ return super().response_deserialize(response_data, response_types_map)
79
+ except ApiException as e:
80
+ status_code = getattr(e, 'status', None)
81
+ message = str(e)
82
+ details = None
83
+
84
+ # Extract more detailed error message from response body if available
85
+ if hasattr(e, 'body') and e.body:
86
+ try:
87
+ body_json = json.loads(e.body)
88
+ if isinstance(body_json, dict):
89
+ if 'message' in body_json:
90
+ message = body_json['message']
91
+ elif 'error' in body_json:
92
+ message = body_json['error']
93
+
94
+ # Store the full error details for debugging
95
+ details = body_json
96
+ except (json.JSONDecodeError, AttributeError):
97
+ # If we can't parse the body as JSON, use the original message
98
+ pass
99
+
100
+ raise RapidataError(
101
+ status_code=status_code,
102
+ message=message,
103
+ original_exception=e,
104
+ details=details
105
+ ) from None
@@ -8,3 +8,4 @@ from .user_score_filter import UserScoreFilter
8
8
  from .custom_filter import CustomFilter
9
9
  from .not_filter import NotFilter
10
10
  from .or_filter import OrFilter
11
+ from .response_count_filter import ResponseCountFilter
@@ -0,0 +1,46 @@
1
+ from typing import Any
2
+ from rapidata.rapidata_client.filter._base_filter import RapidataFilter
3
+ from rapidata.api_client.models.response_count_user_filter_model import (
4
+ ResponseCountUserFilterModel,
5
+ )
6
+
7
+ class ResponseCountFilter(RapidataFilter):
8
+ """ResponseCountFilter Class
9
+ Can be used to filter users based on the number of responses they have given on validation tasks with the specified dimension.
10
+
11
+ response_count (int): The number of user responses to filter by.
12
+ dimension (str): The dimension to apply the filter on (e.g. "default", "electrical", etc.).
13
+ operator (str): The comparison operator to use. Must be one of:
14
+ - "Equal"
15
+ - "NotEqual"
16
+ - "LessThan"
17
+ - "LessThanOrEqual"
18
+ - "GreaterThan"
19
+ - "GreaterThanOrEqual"
20
+
21
+ Raises:
22
+ ValueError: If `response_count` is not an integer.
23
+ ValueError: If `dimension` is not a string.
24
+ ValueError: If `operator` is not a string or not one of the allowed values.
25
+
26
+ Example:
27
+ ```python
28
+ from rapidata import ResponseCountFilter
29
+
30
+ filter = ResponseCountFilter(response_count=10, dimension="electrical", operator="GreaterThan")
31
+ ```
32
+ This will filter users who have a response count greater than 10 for the "electrical" dimension.
33
+ """
34
+
35
+ def __init__(self, response_count: int, dimension: str, operator: str):
36
+ if operator not in ["Equal", "NotEqual", "LessThan", "LessThanOrEqual", "GreaterThan", "GreaterThanOrEqual"]:
37
+ raise ValueError("Operator must be one of Equal, NotEqual, LessThan, LessThanOrEqual, GreaterThan, GreaterThanOrEqual")
38
+
39
+ self.response_count = response_count
40
+ self.dimension = dimension
41
+ self.operator = operator
42
+
43
+ def _to_model(self):
44
+ return ResponseCountUserFilterModel(
45
+ _t="ResponseCountFilter", responseCount=self.response_count, dimension=self.dimension, operator=self.operator
46
+ )
@@ -43,6 +43,9 @@ class RapidsManager:
43
43
  else:
44
44
  raise ValueError(f"Unsupported data type: {data_type}")
45
45
 
46
+ if not isinstance(truths, list):
47
+ raise ValueError("Truths must be a list of strings")
48
+
46
49
  if not all(truth in answer_options for truth in truths):
47
50
  raise ValueError("Truths must be part of the answer options")
48
51
 
@@ -8,9 +8,9 @@ from rapidata.api_client.api.pipeline_api import PipelineApi
8
8
  from rapidata.api_client.api.rapid_api import RapidApi
9
9
  from rapidata.api_client.api.validation_api import ValidationApi
10
10
  from rapidata.api_client.api.workflow_api import WorkflowApi
11
- from rapidata.api_client.api_client import ApiClient
12
11
  from rapidata.api_client.configuration import Configuration
13
12
  from rapidata.service.credential_manager import CredentialManager
13
+ from rapidata.rapidata_client.api.rapidata_exception import RapidataApiClient
14
14
 
15
15
 
16
16
  class OpenAPIService:
@@ -36,7 +36,7 @@ class OpenAPIService:
36
36
  )
37
37
 
38
38
  client_configuration = Configuration(host=endpoint, ssl_ca_cert=cert_path)
39
- self.api_client = ApiClient(
39
+ self.api_client = RapidataApiClient(
40
40
  configuration=client_configuration,
41
41
  header_name="X-Client",
42
42
  header_value=f"RapidataPythonSDK/{self._get_rapidata_package_version()}",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: rapidata
3
- Version: 2.21.0
3
+ Version: 2.21.2
4
4
  Summary: Rapidata package containing the Rapidata Python Client to interact with the Rapidata Web API in an easy way.
5
5
  License: Apache-2.0
6
6
  Author: Rapidata AG
@@ -1,5 +1,5 @@
1
1
  rapidata/__init__.py,sha256=-uqhIlYjh1gb4HiE_7ga8pXa2oIFfpYRvyPd6Axx4wo,655
2
- rapidata/api_client/__init__.py,sha256=jtvAjo0zg4XDehXuSdMnaaCS41mptb5CTAOA9Lz6TtA,26420
2
+ rapidata/api_client/__init__.py,sha256=CzKRy4Y5N3xTE0pAFkKY8koBmNNQAJEgZDXHVFqmz3g,26599
3
3
  rapidata/api_client/api/__init__.py,sha256=z_KCn1Nw9RrVXzdC2RCpoEk7_vU19JT261Opw04RqNI,1129
4
4
  rapidata/api_client/api/campaign_api.py,sha256=1ajX0hSnA4O5GacJLIGkAgorPlNDRVaEZY029Pkutl4,71353
5
5
  rapidata/api_client/api/client_api.py,sha256=qGiNJHQarNEFNmkrgWeHmlVX96WuDZINozhYaNfiy3c,53357
@@ -7,27 +7,27 @@ rapidata/api_client/api/coco_api.py,sha256=IdXoawGadGo9FaVUbqxHOGYgNmSLjvvEZczBG
7
7
  rapidata/api_client/api/compare_workflow_api.py,sha256=BG_cNnR1UO48Jfy2_ZLEcR2mknD0wXbDYKHLNVt4Szw,12833
8
8
  rapidata/api_client/api/datapoint_api.py,sha256=TF0pUq98imO4hxDbxuNu86HmgRQnC-m4YI2oNY8tOdo,52596
9
9
  rapidata/api_client/api/dataset_api.py,sha256=M-FwzuKrBu-dcZEK0FfcvAGd-lk4DLipntkLsRPwXLI,187066
10
- rapidata/api_client/api/feedback_api.py,sha256=9ecA2GTvEMkCugXm6McGWbK2bT9gSOb8C-LT8syZ3s0,11661
10
+ rapidata/api_client/api/feedback_api.py,sha256=efOJOVsdDKXZ8eqIuOR_XsSrrpu_6UihFUDXWZA7Vfo,22342
11
11
  rapidata/api_client/api/identity_api.py,sha256=glClYKwEPyGUDY_SWef-8FGjbbui_RIpOeBhwfzTxAk,78117
12
12
  rapidata/api_client/api/newsletter_api.py,sha256=pdJ7Gdxw7yKZromzGNhM1hRhzrqm4nDRib5xVvnClME,34230
13
13
  rapidata/api_client/api/order_api.py,sha256=aAf6bS4gTdSlDI42wjUMDRw0lYP4L3VQjk7JsZsEqKk,413101
14
14
  rapidata/api_client/api/pipeline_api.py,sha256=n4JPczdE01qc1AbIgx9nqJvd7ltdo_LsHX4N_lyLwNs,110546
15
- rapidata/api_client/api/rapid_api.py,sha256=wsUdeuL0JOyRoGwZ6bxUli3ik8aZV9vloD6fIjUAJsw,173070
15
+ rapidata/api_client/api/rapid_api.py,sha256=rtshrcw9b4lt1ng-0lcAzDN1MfGsQD3GRiica19iTco,162705
16
16
  rapidata/api_client/api/rapidata_identity_api_api.py,sha256=-kgoDuLdh-R4MQ7JPi3kQ0WDFKbmI0MkCjxwHXBmksA,9824
17
17
  rapidata/api_client/api/simple_workflow_api.py,sha256=676u_J6hIL5u1V0jLuSEkkvHwBQBcpHGSfyd0147x-0,12806
18
18
  rapidata/api_client/api/user_info_api.py,sha256=FuuA95Beeky-rnqIoSUe2-WQ7oVTfq0RElX0jfKXT0w,10042
19
19
  rapidata/api_client/api/validation_api.py,sha256=XET31snfRc78TJre3jGOlb0bAs8wr82qhRiURiitUaE,98706
20
- rapidata/api_client/api/validation_set_api.py,sha256=Qg8tpVpxWiwU82Qon6OPjVJfoxNuRwK0cJlExw2XTkQ,213801
20
+ rapidata/api_client/api/validation_set_api.py,sha256=p3VeYzM9jIkT8csO3Af5fZmIFRRifDcNIibbs1VmpQQ,234035
21
21
  rapidata/api_client/api/workflow_api.py,sha256=a4LSlqk4X08YEKm4pS7wQeK1tK3JPKJ2xW0ye252r7A,98898
22
22
  rapidata/api_client/api_client.py,sha256=EDhxAOUc5JFWvFsF1zc726Q7GoEFkuB8uor5SlGx9K4,27503
23
23
  rapidata/api_client/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
24
24
  rapidata/api_client/configuration.py,sha256=g472vHVPLBotq8EkfSXP4sbp7xnn-3sb8O8BBlRWK1I,15931
25
25
  rapidata/api_client/exceptions.py,sha256=eLLd1fxM0Ygf3IIG6aNx9hdy79drst5Cem0UjI_NamM,5978
26
- rapidata/api_client/models/__init__.py,sha256=W0vtAsfuN4TvOhUcA2I1Em9TsPEA1yotVwHbaxU3HwQ,24750
26
+ rapidata/api_client/models/__init__.py,sha256=_e3ZxEpsHvJyQVcbQUgHcVhRPnVZ5UCo-Wiz4HIkjQ0,24929
27
27
  rapidata/api_client/models/ab_test_selection.py,sha256=xQcE1BgKSnkTcmIuroeVOAQcAhGkHLlMP9XjakMFgDc,4327
28
28
  rapidata/api_client/models/ab_test_selection_a_inner.py,sha256=2sM9nimGo85Fk1k7yZQnp-3ncMXcz_wvYBCR8NG1Sb8,10771
29
29
  rapidata/api_client/models/add_campaign_artifact_result.py,sha256=4IvFVS-tLlL6eHsWp-IZ_ul5T30-h3YEwd2B5ioBbgY,2582
30
- rapidata/api_client/models/add_campaign_model.py,sha256=HRFP1EGEzroTC2xzwvJoTaGiAlYUcprUlFkjxmxpOas,7478
30
+ rapidata/api_client/models/add_campaign_model.py,sha256=YuE11VA1uxcSpWwBzAoWzh_K1HlFhftYFNvz08cCkNs,7732
31
31
  rapidata/api_client/models/add_campaign_model_user_filters_inner.py,sha256=i7R_ToWdsfkOZechTm_-KE01kucRGvsJ_tVIJWqkGgw,11152
32
32
  rapidata/api_client/models/add_user_response_result.py,sha256=gON-mQagMa1gi6fIUFSNLc7R8CozOdx0-nYnRJksL3Y,4015
33
33
  rapidata/api_client/models/add_user_response_result_validation_truth.py,sha256=1_BKJKBayJ2h3HspPoMwbCrtG_zzMIy8y_b4RC8r6oM,11916
@@ -72,7 +72,7 @@ rapidata/api_client/models/clone_order_result.py,sha256=YKZzWptburCz3N9bahiEtWvi
72
72
  rapidata/api_client/models/compare_match_status.py,sha256=Xq0aeUbe0bI3n76gZOMSEhxp_wxOxrv1AuKzliYBb6o,827
73
73
  rapidata/api_client/models/compare_payload.py,sha256=In-lIEGOZVO6DdI5Vfsyu02ykmEoWbe8xVIJL4eaRrg,2944
74
74
  rapidata/api_client/models/compare_rapid_blueprint.py,sha256=hCHLGAuZ6yK8Zv09lLqDBsxf-2r28I_PhZs1Lmr-CMw,2980
75
- rapidata/api_client/models/compare_result.py,sha256=fYjZceOWQH9eVUW_Du5G0mLj94gx1TXeyEqOf1gug2w,3066
75
+ rapidata/api_client/models/compare_result.py,sha256=0cDxru1ILElz1wcXPohQqh5jtIPrf1zOXzAel2zh5Q0,3418
76
76
  rapidata/api_client/models/compare_truth.py,sha256=1aVg80bn_0Q_ZnuA0uaoQ9wmiQ4GhaGaGQrx4povU0s,2955
77
77
  rapidata/api_client/models/compare_workflow_config.py,sha256=Rv94nLBSIdVxMtY2Fz1gmtsK0OF7bz4_BPY2zvH7-U8,5476
78
78
  rapidata/api_client/models/compare_workflow_config_metadata_value.py,sha256=ZJ113eW0xUSn-z1bC-_zVYyh7R9L8hZ-HGvqpIJydW8,11512
@@ -87,6 +87,7 @@ rapidata/api_client/models/compare_workflow_model1.py,sha256=ZRZuZGtB3PHb0LY4u_G
87
87
  rapidata/api_client/models/compare_workflow_model1_pair_maker_information.py,sha256=zWpfdMZHt9Ktp2Bm7H4R1DLHi5kwoJUtevyol1F5jCc,5048
88
88
  rapidata/api_client/models/compare_workflow_model1_referee.py,sha256=opTltLO2arZUUhQSiLOea6_aRT35fLDCnTyPE3GgnJc,6956
89
89
  rapidata/api_client/models/compare_workflow_model_pair_maker_config.py,sha256=44eLrMIGsxSj7fiBnTepn2Wiy6GjVu8-moKL-OqH7VA,5045
90
+ rapidata/api_client/models/comparison_operator.py,sha256=pBp_ux9ZO9F93qLVlrucGXWAE5QA5wx5zd0TKVEosmk,919
90
91
  rapidata/api_client/models/completed_rapid_model.py,sha256=rOqZYpcM0eYOL-qX162S_OPclUC1P8OZLYZZAsagVE4,3512
91
92
  rapidata/api_client/models/completed_rapid_model_asset.py,sha256=zyuzQfn3eucLZBC_vyIzceH4T0Iy5eIilRYV4CFUNNU,7192
92
93
  rapidata/api_client/models/conditional_validation_rapid_selection_config.py,sha256=2VFuxKq_QrlG36hB0s67OWfA9y7MgohvJXNga8fhZtc,4285
@@ -121,10 +122,10 @@ rapidata/api_client/models/create_independent_workflow_model_workflow_config.py,
121
122
  rapidata/api_client/models/create_independent_workflow_result.py,sha256=JOhS75mAH-VvarvDDFsycahPlIezVKT1upuqIo93hC0,2719
122
123
  rapidata/api_client/models/create_legacy_client_model.py,sha256=8LcKnjv3Lq6w28ku6NG6nG9qfxWQnfPow53maGlwNdE,2802
123
124
  rapidata/api_client/models/create_legacy_order_result.py,sha256=BR1XqPKq9QkDe0UytTW6dpihAeNyfCc4C1m0XfY53hQ,2672
124
- rapidata/api_client/models/create_order_model.py,sha256=CkCBzqF5vWK-Rswy5MlIWpe8qZIaSnAsEVjF3zKMbn8,10202
125
+ rapidata/api_client/models/create_order_model.py,sha256=DSq4aALcL6KdmJAg5mh6G15WrpxCFcs0AqF9ciX7Yo8,10456
125
126
  rapidata/api_client/models/create_order_model_referee.py,sha256=dxQ9SDiBjFIKYjctVNeiuGvjZwzIa0Q8JpW7iRei00I,5748
126
127
  rapidata/api_client/models/create_order_model_selections_inner.py,sha256=9p9BJKHN3WhRiu-FwWf421COAxeGmm1KkkyDT7UW5uc,8354
127
- rapidata/api_client/models/create_order_model_user_filters_inner.py,sha256=FhMQ8p_25vg-irqRfkvl7hdm7yBWqY7TvSe9DkgJpYA,12898
128
+ rapidata/api_client/models/create_order_model_user_filters_inner.py,sha256=o_VLpuU9iWFe6mHDjj731YEGRxLArXnaqUeG8WYejzc,13906
128
129
  rapidata/api_client/models/create_order_model_workflow.py,sha256=cy7bD2kWvLkCgFdrViAG63xtYDIdVOn0dD74GRxni_A,6638
129
130
  rapidata/api_client/models/create_order_result.py,sha256=zGr4EOKdjfy5SBLvox_iiCwwc7dXOfi70M0WYSZGgH4,3272
130
131
  rapidata/api_client/models/create_rapid_result.py,sha256=ECREjyzsTg6leWTF19E-QtqmyaTIeIZzpp_sO9iA4kY,2535
@@ -326,8 +327,9 @@ rapidata/api_client/models/rapid_state.py,sha256=ef3uvUJ89b-ch0KD11xBipgbaFFy0E9
326
327
  rapidata/api_client/models/read_bridge_token_keys_result.py,sha256=FG7YLQTGAlQeAxY0sVP3i3J3rm73fKf47iveqJkzVGo,5083
327
328
  rapidata/api_client/models/register_temporary_customer_model.py,sha256=E4GPQtiA8FKa7aDUgQmQqOQuKm-CpWBfcRKhKWkMTSg,2643
328
329
  rapidata/api_client/models/register_temporary_customer_result.py,sha256=uxMFNwPaQvMp0MziTBbllhFlCfaRlyx6gRAFJfRKl8o,4200
329
- rapidata/api_client/models/report_model.py,sha256=kUcZHv6LIvfryW4SrFguuPa5qW5KV77UhFxTSHvPsUc,4028
330
+ rapidata/api_client/models/report_model.py,sha256=9FhseE1gs7er-d7WualeaIWfn7PI7XAim7M0nW-CKls,4229
330
331
  rapidata/api_client/models/request_password_reset_command.py,sha256=6bSYVzN3KNKd5u0Xl0vSjHRKI2uowIavU_wMbmLktvo,3174
332
+ rapidata/api_client/models/response_count_user_filter_model.py,sha256=oKDakECJuzoRk37epPUq_qBipZTMCrUL2ETLFiKR0T0,3650
331
333
  rapidata/api_client/models/root_filter.py,sha256=ee1rX_2CSUV7etI1sryrgZU1s85ifKVQ8PhpD6PMzRE,3363
332
334
  rapidata/api_client/models/scrub_payload.py,sha256=tX-QU_a8GUQWBPb1GofGLFupucZF5TY2LUpqdyfHDSI,2920
333
335
  rapidata/api_client/models/scrub_range.py,sha256=2P__eZ4HeAxWcjFkp-p938Ih8GHf0rJea18sIGxUN0A,2527
@@ -411,8 +413,10 @@ rapidata/api_client/models/workflow_split_model.py,sha256=zthOSaUl8dbLhLymLK_lrP
411
413
  rapidata/api_client/models/workflow_split_model_filter_configs_inner.py,sha256=1Fx9uZtztiiAdMXkj7YeCqt7o6VkG9lKf7D7UP_h088,7447
412
414
  rapidata/api_client/models/workflow_state.py,sha256=5LAK1se76RCoozeVB6oxMPb8p_5bhLZJqn7q5fFQWis,850
413
415
  rapidata/api_client/rest.py,sha256=WTkaOPZhB24TG2mV7Ih5Km76lo2ySQXFjR98nyFIGIM,9013
414
- rapidata/api_client_README.md,sha256=WMuo7wBjQ5nVhYAt9kFrpdqa0Y7QU4rb5u3525g0dXU,54350
415
- rapidata/rapidata_client/__init__.py,sha256=4Yg_2NvWhKusvcosuWzyrlJdjRnxXqNQUXDgyQrcNPQ,949
416
+ rapidata/api_client_README.md,sha256=XxKjqTKsOlLbAyeUNmJWnQU2Kc7LYOsJLUZ0Q_SEIIo,55005
417
+ rapidata/rapidata_client/__init__.py,sha256=XP9btoeEBcUfLP_4Hi-tqmIsy__L7Q0l4LY1GRQZSKk,974
418
+ rapidata/rapidata_client/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
419
+ rapidata/rapidata_client/api/rapidata_exception.py,sha256=pJDMX5Pk1SSkxyt6PE0MCP2PQ13374qsi9SBWJYXbJI,3726
416
420
  rapidata/rapidata_client/assets/__init__.py,sha256=hKgrOSn8gJcBSULaf4auYhH1S1N5AfcwIhBSq1BOKwQ,323
417
421
  rapidata/rapidata_client/assets/_base_asset.py,sha256=B2YWH1NgaeYUYHDW3OPpHM_bqawHbH4EjnRCE2BYwiM,298
418
422
  rapidata/rapidata_client/assets/_media_asset.py,sha256=9IKNKWarBJ-aAxfTjh80ScNsHlWGJnd55fsDbrf8x4s,10336
@@ -423,7 +427,7 @@ rapidata/rapidata_client/country_codes/__init__.py,sha256=FB9Dcks44J6C6YBSYmTmNZ
423
427
  rapidata/rapidata_client/country_codes/country_codes.py,sha256=ePHqeb7y9DWQZAnddBzPx1puYBcrgUjdR2sbFijuFD8,283
424
428
  rapidata/rapidata_client/demographic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
425
429
  rapidata/rapidata_client/demographic/demographic_manager.py,sha256=XlgXngx-37Sow2B3jisVIWo6NrMWVI7aJqu9OwF9kCA,2143
426
- rapidata/rapidata_client/filter/__init__.py,sha256=ttc63dWEQQwDRD8lirJgamjv_RLvc20IQydcqkHq1N4,416
430
+ rapidata/rapidata_client/filter/__init__.py,sha256=uHemzncxZrrs3fiKQ-spbNe6EJZ1aWxHIH6DVy2pLUo,471
427
431
  rapidata/rapidata_client/filter/_base_filter.py,sha256=ytiSyeb9dvNZf93zwgb4PRDzf9ebsAu4wHBn4x49Re0,195
428
432
  rapidata/rapidata_client/filter/age_filter.py,sha256=oRjGY65gE_X8oa0D0XRyvKAb4_Z6XOOaGTWykRSfLFA,739
429
433
  rapidata/rapidata_client/filter/campaign_filter.py,sha256=6ZT11-gub8349QcRwuHt8AcBY18F7BdLRZ2Ch_vjLyU,735
@@ -437,6 +441,7 @@ rapidata/rapidata_client/filter/models/gender.py,sha256=aXg6Kql2BIy8d5d1lCVi1axM
437
441
  rapidata/rapidata_client/filter/not_filter.py,sha256=I7crEyOCs53uS0VI48s9EqC6PAFfV9EZG3upwFBJwZo,1189
438
442
  rapidata/rapidata_client/filter/or_filter.py,sha256=u6vkXMTG_j15SbY3bkbnXbxJMDgEsH5rdoFLbuoLQmo,1345
439
443
  rapidata/rapidata_client/filter/rapidata_filters.py,sha256=ZOayFtIlACfegZSoA94YFZ-fJmqr5Pf161Z_IjiZWPg,1559
444
+ rapidata/rapidata_client/filter/response_count_filter.py,sha256=sDv9Dvy0FbnIQRSAxFGrUf9SIMISTNxnlAQcrFKBjXE,1989
440
445
  rapidata/rapidata_client/filter/user_score_filter.py,sha256=2C78zkWm5TnfkxGbV1ER2xB7s9ynpacaibzyRZKG8Cc,1566
441
446
  rapidata/rapidata_client/metadata/__init__.py,sha256=cVAGs3F1i5BiimZ9m-aVXAiVyfqLMtSn59nqfRFmIxs,248
442
447
  rapidata/rapidata_client/metadata/_base_metadata.py,sha256=t2kFqaz5BkEaYYj93Pw3h7zWVDq_S5ZkDxjDIRd21_I,189
@@ -482,7 +487,7 @@ rapidata/rapidata_client/validation/rapidata_validation_set.py,sha256=GaatGGuJCH
482
487
  rapidata/rapidata_client/validation/rapids/__init__.py,sha256=WU5PPwtTJlte6U90MDakzx4I8Y0laj7siw9teeXj5R0,21
483
488
  rapidata/rapidata_client/validation/rapids/box.py,sha256=t3_Kn6doKXdnJdtbwefXnYKPiTKHneJl9E2inkDSqL8,589
484
489
  rapidata/rapidata_client/validation/rapids/rapids.py,sha256=uCKnoSn1RykNHgTFbrvCFlfzU8lF42cff-2I-Pd48w0,4620
485
- rapidata/rapidata_client/validation/rapids/rapids_manager.py,sha256=F00lPYBUx5fTPRw50iZuobtdbjFo6ZHevPMk101JdaY,14271
490
+ rapidata/rapidata_client/validation/rapids/rapids_manager.py,sha256=s5VAq8H5CKACWfmIQuz9kHC8t2nd-xEHGGUj9pIfXKI,14386
486
491
  rapidata/rapidata_client/validation/validation_set_manager.py,sha256=GCFDyruCz6EIN67cc2fwRjzirUoGfs3KLTIg7n6wXbI,26722
487
492
  rapidata/rapidata_client/workflow/__init__.py,sha256=7nXcY91xkxjHudBc9H0fP35eBBtgwHGWTQKbb-M4h7Y,477
488
493
  rapidata/rapidata_client/workflow/_base_workflow.py,sha256=XyIZFKS_RxAuwIHS848S3AyLEHqd07oTD_5jm2oUbsw,762
@@ -498,8 +503,8 @@ rapidata/rapidata_client/workflow/_timestamp_workflow.py,sha256=tPi2zu1-SlE_ppbG
498
503
  rapidata/service/__init__.py,sha256=s9bS1AJZaWIhLtJX_ZA40_CK39rAAkwdAmymTMbeWl4,68
499
504
  rapidata/service/credential_manager.py,sha256=3x-Fb6tyqmgtpjI1MSOtXWW_SkzTK8Lo7I0SSL2YD7E,8602
500
505
  rapidata/service/local_file_service.py,sha256=pgorvlWcx52Uh3cEG6VrdMK_t__7dacQ_5AnfY14BW8,877
501
- rapidata/service/openapi_service.py,sha256=ORFPfHlb41zOUP5nDjYWZwO-ZcqNF_Mw2r71RitFtS0,4042
502
- rapidata-2.21.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
503
- rapidata-2.21.0.dist-info/METADATA,sha256=VklHTpX5p8OoZj2yGlj12XiQLcSTAPgY5Z0CPp9kOZM,1227
504
- rapidata-2.21.0.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
505
- rapidata-2.21.0.dist-info/RECORD,,
506
+ rapidata/service/openapi_service.py,sha256=nh7gAmNRdZ5qu3sG7khi-pZmXhfg5u8KHdmEDQd_z9U,4075
507
+ rapidata-2.21.2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
508
+ rapidata-2.21.2.dist-info/METADATA,sha256=npRKolQ9iiiUYn9FbocwGWJCWYzjMTS9DJJOTLNR1Oc,1227
509
+ rapidata-2.21.2.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
510
+ rapidata-2.21.2.dist-info/RECORD,,