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

@@ -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
@@ -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
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: rapidata
3
- Version: 2.21.0
3
+ Version: 2.21.1
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,8 @@ 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
416
418
  rapidata/rapidata_client/assets/__init__.py,sha256=hKgrOSn8gJcBSULaf4auYhH1S1N5AfcwIhBSq1BOKwQ,323
417
419
  rapidata/rapidata_client/assets/_base_asset.py,sha256=B2YWH1NgaeYUYHDW3OPpHM_bqawHbH4EjnRCE2BYwiM,298
418
420
  rapidata/rapidata_client/assets/_media_asset.py,sha256=9IKNKWarBJ-aAxfTjh80ScNsHlWGJnd55fsDbrf8x4s,10336
@@ -423,7 +425,7 @@ rapidata/rapidata_client/country_codes/__init__.py,sha256=FB9Dcks44J6C6YBSYmTmNZ
423
425
  rapidata/rapidata_client/country_codes/country_codes.py,sha256=ePHqeb7y9DWQZAnddBzPx1puYBcrgUjdR2sbFijuFD8,283
424
426
  rapidata/rapidata_client/demographic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
425
427
  rapidata/rapidata_client/demographic/demographic_manager.py,sha256=XlgXngx-37Sow2B3jisVIWo6NrMWVI7aJqu9OwF9kCA,2143
426
- rapidata/rapidata_client/filter/__init__.py,sha256=ttc63dWEQQwDRD8lirJgamjv_RLvc20IQydcqkHq1N4,416
428
+ rapidata/rapidata_client/filter/__init__.py,sha256=uHemzncxZrrs3fiKQ-spbNe6EJZ1aWxHIH6DVy2pLUo,471
427
429
  rapidata/rapidata_client/filter/_base_filter.py,sha256=ytiSyeb9dvNZf93zwgb4PRDzf9ebsAu4wHBn4x49Re0,195
428
430
  rapidata/rapidata_client/filter/age_filter.py,sha256=oRjGY65gE_X8oa0D0XRyvKAb4_Z6XOOaGTWykRSfLFA,739
429
431
  rapidata/rapidata_client/filter/campaign_filter.py,sha256=6ZT11-gub8349QcRwuHt8AcBY18F7BdLRZ2Ch_vjLyU,735
@@ -437,6 +439,7 @@ rapidata/rapidata_client/filter/models/gender.py,sha256=aXg6Kql2BIy8d5d1lCVi1axM
437
439
  rapidata/rapidata_client/filter/not_filter.py,sha256=I7crEyOCs53uS0VI48s9EqC6PAFfV9EZG3upwFBJwZo,1189
438
440
  rapidata/rapidata_client/filter/or_filter.py,sha256=u6vkXMTG_j15SbY3bkbnXbxJMDgEsH5rdoFLbuoLQmo,1345
439
441
  rapidata/rapidata_client/filter/rapidata_filters.py,sha256=ZOayFtIlACfegZSoA94YFZ-fJmqr5Pf161Z_IjiZWPg,1559
442
+ rapidata/rapidata_client/filter/response_count_filter.py,sha256=sDv9Dvy0FbnIQRSAxFGrUf9SIMISTNxnlAQcrFKBjXE,1989
440
443
  rapidata/rapidata_client/filter/user_score_filter.py,sha256=2C78zkWm5TnfkxGbV1ER2xB7s9ynpacaibzyRZKG8Cc,1566
441
444
  rapidata/rapidata_client/metadata/__init__.py,sha256=cVAGs3F1i5BiimZ9m-aVXAiVyfqLMtSn59nqfRFmIxs,248
442
445
  rapidata/rapidata_client/metadata/_base_metadata.py,sha256=t2kFqaz5BkEaYYj93Pw3h7zWVDq_S5ZkDxjDIRd21_I,189
@@ -499,7 +502,7 @@ rapidata/service/__init__.py,sha256=s9bS1AJZaWIhLtJX_ZA40_CK39rAAkwdAmymTMbeWl4,
499
502
  rapidata/service/credential_manager.py,sha256=3x-Fb6tyqmgtpjI1MSOtXWW_SkzTK8Lo7I0SSL2YD7E,8602
500
503
  rapidata/service/local_file_service.py,sha256=pgorvlWcx52Uh3cEG6VrdMK_t__7dacQ_5AnfY14BW8,877
501
504
  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,,
505
+ rapidata-2.21.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
506
+ rapidata-2.21.1.dist-info/METADATA,sha256=btZoH5tXjLg2m2xzVxGRTkbtYrRzNOX3y5tjW_hK1vU,1227
507
+ rapidata-2.21.1.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
508
+ rapidata-2.21.1.dist-info/RECORD,,