rapidata 1.7.1__py3-none-any.whl → 1.8.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of rapidata might be problematic. Click here for more details.

Files changed (39) hide show
  1. rapidata/api_client/__init__.py +1 -0
  2. rapidata/api_client/api/identity_api.py +15 -5
  3. rapidata/api_client/models/__init__.py +1 -0
  4. rapidata/api_client/models/evaluation_workflow_config.py +5 -3
  5. rapidata/api_client/models/evaluation_workflow_model.py +5 -3
  6. rapidata/api_client/models/read_bridge_token_keys_result.py +31 -3
  7. rapidata/api_client/models/register_temporary_customer_result.py +112 -0
  8. rapidata/api_client_README.md +1 -0
  9. rapidata/rapidata_client/assets/__init__.py +1 -1
  10. rapidata/rapidata_client/assets/media_asset.py +3 -0
  11. rapidata/rapidata_client/assets/text_asset.py +3 -0
  12. rapidata/rapidata_client/country_codes/country_codes.py +1 -1
  13. rapidata/rapidata_client/dataset/rapid_builders/__init__.py +4 -0
  14. rapidata/rapidata_client/dataset/rapid_builders/base_rapid_builder.py +33 -0
  15. rapidata/rapidata_client/dataset/rapid_builders/classify_rapid_builders.py +166 -0
  16. rapidata/rapidata_client/dataset/rapid_builders/compare_rapid_builders.py +145 -0
  17. rapidata/rapidata_client/dataset/rapid_builders/rapids.py +32 -0
  18. rapidata/rapidata_client/dataset/rapid_builders/transcription_rapid_builders.py +132 -0
  19. rapidata/rapidata_client/dataset/rapidata_dataset.py +3 -1
  20. rapidata/rapidata_client/dataset/rapidata_validation_set.py +24 -7
  21. rapidata/rapidata_client/dataset/validation_set_builder.py +115 -8
  22. rapidata/rapidata_client/filter/country_filter.py +3 -0
  23. rapidata/rapidata_client/filter/language_filter.py +3 -0
  24. rapidata/rapidata_client/metadata/prompt_metadata.py +5 -1
  25. rapidata/rapidata_client/order/rapidata_order.py +1 -1
  26. rapidata/rapidata_client/order/rapidata_order_builder.py +5 -5
  27. rapidata/rapidata_client/rapidata_client.py +39 -11
  28. rapidata/rapidata_client/settings/__init__.py +1 -1
  29. rapidata/rapidata_client/settings/settings.py +10 -9
  30. rapidata/rapidata_client/simple_builders/simple_classification_builders.py +132 -21
  31. rapidata/rapidata_client/simple_builders/simple_compare_builders.py +141 -15
  32. rapidata/rapidata_client/simple_builders/simple_free_text_builders.py +180 -0
  33. rapidata/rapidata_client/simple_builders/simple_transcription_builders.py +194 -0
  34. rapidata/service/openapi_service.py +4 -2
  35. {rapidata-1.7.1.dist-info → rapidata-1.8.1.dist-info}/METADATA +2 -2
  36. {rapidata-1.7.1.dist-info → rapidata-1.8.1.dist-info}/RECORD +38 -30
  37. rapidata/rapidata_client/config.py +0 -9
  38. {rapidata-1.7.1.dist-info → rapidata-1.8.1.dist-info}/LICENSE +0 -0
  39. {rapidata-1.7.1.dist-info → rapidata-1.8.1.dist-info}/WHEEL +0 -0
@@ -0,0 +1,180 @@
1
+ from constants import MAX_TIME_IN_SECONDS_FOR_ONE_SESSION
2
+ from rapidata.rapidata_client.order.rapidata_order import RapidataOrder
3
+ from rapidata.rapidata_client.order.rapidata_order_builder import RapidataOrderBuilder
4
+ from rapidata.rapidata_client.referee.naive_referee import NaiveReferee
5
+ from rapidata.rapidata_client.selection.base_selection import Selection
6
+ from rapidata.rapidata_client.workflow import FreeTextWorkflow
7
+ from rapidata.rapidata_client.selection.validation_selection import ValidationSelection
8
+ from rapidata.rapidata_client.selection.labeling_selection import LabelingSelection
9
+ from rapidata.service.openapi_service import OpenAPIService
10
+ from rapidata.rapidata_client.assets import MediaAsset, TextAsset, BaseAsset
11
+ from rapidata.rapidata_client.filter import Filter, CountryFilter, LanguageFilter
12
+ from rapidata.rapidata_client.settings import Settings, TranslationBehaviour
13
+
14
+ class FreeTextOrderBuilder:
15
+ def __init__(self,
16
+ name: str,
17
+ question: str,
18
+ media_assets: list[BaseAsset],
19
+ openapi_service: OpenAPIService,
20
+ time_effort: int):
21
+ self._order_builder = RapidataOrderBuilder(name=name, openapi_service=openapi_service)
22
+ self._question = question
23
+ self._media_assets = media_assets
24
+ self._referee = NaiveReferee()
25
+ self._settings = Settings()
26
+ self._filters: list[Filter] = []
27
+ self._time_effort = time_effort
28
+
29
+ def responses(self, responses_required: int) -> 'FreeTextOrderBuilder':
30
+ """Set the number of responses required per datapoint for the free text order. Will default to 10."""
31
+ self._referee = NaiveReferee(responses=responses_required)
32
+ return self
33
+
34
+ def minimum_characters(self, minimum_characters: int) -> 'FreeTextOrderBuilder':
35
+ """Set the minimum number of characters for the free text."""
36
+ self._settings.free_text_minimum_characters(minimum_characters)
37
+ return self
38
+
39
+ def countries(self, country_codes: list[str]) -> 'FreeTextOrderBuilder':
40
+ """Set the countries where order will be shown as country codes."""
41
+ self._filters.append(CountryFilter(country_codes))
42
+ return self
43
+
44
+ def languages(self, language_codes: list[str]) -> 'FreeTextOrderBuilder':
45
+ """Set the languages where order will be shown as language codes."""
46
+ self._filters.append(LanguageFilter(language_codes))
47
+ return self
48
+
49
+ def translation(self, disable: bool = False, show_both: bool = False) -> 'FreeTextOrderBuilder':
50
+ """Disable the translation of the order.
51
+ Only the question will be translated.
52
+
53
+ Args:
54
+ disable (bool): Whether to disable the translation. Defaults to False.
55
+ show_both (bool): Whether to show the original text alongside the translation. Defaults to False.
56
+ ATTENTION: this can lead to cluttering of the UI if the texts are long, leading to bad results."""
57
+
58
+ if not isinstance(disable, bool) or not isinstance(show_both, bool):
59
+ raise ValueError("disable and show_both must be booleans.")
60
+
61
+ if disable and show_both:
62
+ raise ValueError("You can't disable the translation and show both at the same time.")
63
+
64
+ if show_both:
65
+ self._settings.translation_behaviour(TranslationBehaviour.BOTH)
66
+ return self
67
+
68
+ if disable:
69
+ self._settings.translation_behaviour(TranslationBehaviour.ONLY_ORIGINAL)
70
+
71
+ else:
72
+ self._settings.translation_behaviour(TranslationBehaviour.ONLY_TRANSLATED)
73
+
74
+ return self
75
+
76
+ def run(self, submit: bool = True, disable_link: bool = False) -> 'RapidataOrder':
77
+ """Run the free text order.
78
+
79
+ Args:
80
+ submit (bool): Whether to submit the order. Defaults to True. \
81
+ Set this to False if you first want to see the order on your dashboard before running it.
82
+ disable_link (bool): Whether to disable the printing of the link to the order. Defaults to False.
83
+
84
+ Returns:
85
+ RapidataOrder: The created free text order."""
86
+
87
+ if MAX_TIME_IN_SECONDS_FOR_ONE_SESSION//self._time_effort < 1:
88
+ raise ValueError(f"The Labelers only have {MAX_TIME_IN_SECONDS_FOR_ONE_SESSION} seconds to do the task. \
89
+ Your taks is too complex. Try to break it down into simpler tasks.")
90
+
91
+ selection: list[Selection] = [LabelingSelection(amount=MAX_TIME_IN_SECONDS_FOR_ONE_SESSION//self._time_effort)]
92
+
93
+ order = (self._order_builder
94
+ .workflow(
95
+ FreeTextWorkflow(
96
+ question=self._question
97
+ )
98
+ )
99
+ .referee(self._referee)
100
+ .media(self._media_assets)
101
+ .selections(selection)
102
+ .settings(self._settings)
103
+ .filters(self._filters)
104
+ .create(submit=submit, disable_link=disable_link))
105
+
106
+ return order
107
+
108
+
109
+ class FreeTextMediaBuilder:
110
+ def __init__(self, name: str, question: str, openapi_service: OpenAPIService):
111
+ self._openapi_service = openapi_service
112
+ self._name = name
113
+ self._question = question
114
+ self._media_assets: list[BaseAsset] = []
115
+ self._time_effort = 20
116
+
117
+ def media(self, media_paths: list[str], time_effort: int = 20) -> FreeTextOrderBuilder:
118
+ """Set the media assets for the free text order by providing the local paths to the files or a link.
119
+
120
+ Args:
121
+ media_paths (list[str]): Either a local file path or a link.
122
+ time_effort (int): Estimated time in seconds to solve one free text task for the first time. Defaults to 20.
123
+
124
+ Returns:
125
+ FreeTextOrderBuilder: The free text order builder instance.
126
+
127
+ Raises:
128
+ ValueError: If the media paths are not a list of strings."""
129
+
130
+ if not isinstance(media_paths, list) or not all(isinstance(path, str) for path in media_paths):
131
+ raise ValueError("Media paths must be a list of strings, the strings being file paths or image links.")
132
+
133
+ invalid_paths: list[str] = []
134
+ for path in media_paths:
135
+ try:
136
+ self._media_assets.append(MediaAsset(path))
137
+ except FileNotFoundError:
138
+ invalid_paths.append(path)
139
+
140
+ if invalid_paths:
141
+ raise FileNotFoundError(f"Could not find the following files: {invalid_paths}")
142
+
143
+ self._time_effort = time_effort
144
+ return self._build()
145
+
146
+ def text(self, texts: list[str], time_effort: int = 20) -> FreeTextOrderBuilder:
147
+ """Set the text assets for the free text order by.
148
+
149
+ Args:
150
+ texts (list[str]): The texts to be shown.
151
+ time_effort (int): Estimated time in seconds to solve one free text task for the first time. Defaults to 20.
152
+
153
+ Returns:
154
+ FreeTextOrderBuilder: The free text order builder instance."""
155
+ for text in texts:
156
+ self._media_assets.append(TextAsset(text))
157
+ self._time_effort = time_effort
158
+ return self._build()
159
+
160
+ def _build(self) -> FreeTextOrderBuilder:
161
+ if not self._media_assets:
162
+ raise ValueError("Please provide either a text or an media to be shown with the question")
163
+ return FreeTextOrderBuilder(self._name, self._question, self._media_assets, openapi_service=self._openapi_service, time_effort=self._time_effort)
164
+
165
+
166
+ class FreeTextQuestionBuilder:
167
+ def __init__(self, name: str, openapi_service: OpenAPIService):
168
+ self._openapi_service = openapi_service
169
+ self._name = name
170
+ self._question = None
171
+
172
+ def question(self, question: str) -> FreeTextMediaBuilder:
173
+ """Set the question for the free text order."""
174
+ self._question = question
175
+ return self._build()
176
+
177
+ def _build(self) -> FreeTextMediaBuilder:
178
+ if self._question is None:
179
+ raise ValueError("Question is required")
180
+ return FreeTextMediaBuilder(self._name, self._question, self._openapi_service)
@@ -0,0 +1,194 @@
1
+ from constants import MAX_TIME_IN_SECONDS_FOR_ONE_SESSION
2
+ from rapidata.rapidata_client.order.rapidata_order import RapidataOrder
3
+ from rapidata.rapidata_client.order.rapidata_order_builder import RapidataOrderBuilder
4
+ from rapidata.rapidata_client.referee.naive_referee import NaiveReferee
5
+ from rapidata.rapidata_client.selection.base_selection import Selection
6
+ from rapidata.rapidata_client.workflow import TranscriptionWorkflow
7
+ from rapidata.rapidata_client.selection.validation_selection import ValidationSelection
8
+ from rapidata.rapidata_client.selection.labeling_selection import LabelingSelection
9
+ from rapidata.service.openapi_service import OpenAPIService
10
+ from rapidata.rapidata_client.assets import MediaAsset, BaseAsset
11
+ from rapidata.rapidata_client.filter import Filter, CountryFilter, LanguageFilter
12
+ from rapidata.rapidata_client.metadata import TranscriptionMetadata
13
+ from rapidata.rapidata_client.settings import Settings, TranslationBehaviour
14
+
15
+ class TranscriptionOrderBuilder:
16
+ def __init__(self,
17
+ name: str,
18
+ instruction: str,
19
+ media_assets: list[BaseAsset],
20
+ transcription_texts: list[TranscriptionMetadata],
21
+ openapi_service: OpenAPIService,
22
+ time_effort: int):
23
+ self._order_builder = RapidataOrderBuilder(name=name, openapi_service=openapi_service)
24
+ self._instruction = instruction
25
+ self._media_assets = media_assets
26
+ self._transcription_texts = transcription_texts
27
+ self._validation_set_id = None
28
+ self._referee = NaiveReferee()
29
+ self._settings = Settings()
30
+ self._filters: list[Filter] = []
31
+ self._time_effort = time_effort
32
+
33
+ def responses(self, responses_required: int) -> 'TranscriptionOrderBuilder':
34
+ """Set the number of responses required per datapoint for the transcription order. Will default to 10."""
35
+ self._referee = NaiveReferee(responses=responses_required)
36
+ return self
37
+
38
+ def validation_set(self, validation_set_id: str) -> 'TranscriptionOrderBuilder':
39
+ """Set the validation set for the transcription order."""
40
+ self._validation_set_id = validation_set_id
41
+ return self
42
+
43
+ def countries(self, country_codes: list[str]) -> 'TranscriptionOrderBuilder':
44
+ """Set the countries where order will be shown as country codes."""
45
+ self._filters.append(CountryFilter(country_codes))
46
+ return self
47
+
48
+ def languages(self, language_codes: list[str]) -> 'TranscriptionOrderBuilder':
49
+ """Set the languages where order will be shown as language codes."""
50
+ self._filters.append(LanguageFilter(language_codes))
51
+ return self
52
+
53
+ def wait_for_video_to_finish(self, offset: int = 0) -> 'TranscriptionOrderBuilder':
54
+ """Allows labeler to only answer once the video has finished playing.
55
+ The offset gets added on top. Can be negative to allow answers before the video ends."""
56
+ self._settings.play_video_until_the_end(offset)
57
+ return self
58
+
59
+ def translation(self, disable: bool = False, show_both: bool = False) -> 'TranscriptionOrderBuilder':
60
+ """Disable the translation of the order.
61
+ Only the instruction will be translated.
62
+
63
+ Args:
64
+ disable (bool): Whether to disable the translation. Defaults to False.
65
+ show_both (bool): Whether to show the original text alongside the translation. Defaults to False.
66
+ ATTENTION: this can lead to cluttering of the UI if the texts are long, leading to bad results."""
67
+
68
+ if not isinstance(disable, bool) or not isinstance(show_both, bool):
69
+ raise ValueError("disable and show_both must be booleans.")
70
+
71
+ if disable and show_both:
72
+ raise ValueError("You can't disable the translation and show both at the same time.")
73
+
74
+ if show_both:
75
+ self._settings.translation_behaviour(TranslationBehaviour.BOTH)
76
+ return self
77
+
78
+ if disable:
79
+ self._settings.translation_behaviour(TranslationBehaviour.ONLY_ORIGINAL)
80
+
81
+ else:
82
+ self._settings.translation_behaviour(TranslationBehaviour.ONLY_TRANSLATED)
83
+
84
+ return self
85
+
86
+ def run(self, submit: bool = True, disable_link: bool = False) -> 'RapidataOrder':
87
+ """Run the transcription order.
88
+
89
+ Args:
90
+ submit (bool): Whether to submit the order. Defaults to True. \
91
+ Set this to False if you first want to see the order on your dashboard before running it.
92
+ disable_link (bool): Whether to disable the printing of the link to the order. Defaults to False.
93
+
94
+ Returns:
95
+ RapidataOrder: The created transcription order."""
96
+
97
+ if (self._validation_set_id and MAX_TIME_IN_SECONDS_FOR_ONE_SESSION//self._time_effort - 1 < 1) or (MAX_TIME_IN_SECONDS_FOR_ONE_SESSION//self._time_effort < 1):
98
+ raise ValueError(f"The Labelers only have {MAX_TIME_IN_SECONDS_FOR_ONE_SESSION} seconds to do the task. \
99
+ Your taks is too complex. Try to break it down into simpler tasks.\
100
+ {'Alternatively remove the validation task' if self._validation_set_id else ''}")
101
+
102
+ selection: list[Selection] = ([ValidationSelection(amount=1, validation_set_id=self._validation_set_id),
103
+ LabelingSelection(amount=MAX_TIME_IN_SECONDS_FOR_ONE_SESSION//self._time_effort - 1)]
104
+ if self._validation_set_id
105
+ else [LabelingSelection(amount=MAX_TIME_IN_SECONDS_FOR_ONE_SESSION//self._time_effort)])
106
+
107
+ order = (self._order_builder
108
+ .workflow(
109
+ TranscriptionWorkflow(
110
+ instruction=self._instruction
111
+ )
112
+ )
113
+ .referee(self._referee)
114
+ .media(self._media_assets, metadata=self._transcription_texts)
115
+ .selections(selection)
116
+ .settings(self._settings)
117
+ .filters(self._filters)
118
+ .create(submit=submit, disable_link=disable_link))
119
+
120
+ return order
121
+
122
+
123
+ class TranscriptionMediaBuilder:
124
+ def __init__(self, name: str, instruction: str, openapi_service: OpenAPIService):
125
+ self._openapi_service = openapi_service
126
+ self._name = name
127
+ self._instruction = instruction
128
+ self._media_assets: list[BaseAsset] = []
129
+ self._transcription_texts: list[TranscriptionMetadata] = []
130
+ self._time_effort = 20
131
+
132
+ def media(self, media_paths: list[str], transcription_texts: list[str], time_effort: int = 20) -> TranscriptionOrderBuilder:
133
+ """Set the media assets for the transcription order by providing the local paths to the audio / video files.
134
+
135
+ Args:
136
+ media_paths (list[str]): A local file path.
137
+ time_effort (int): Estimated time in seconds to solve one transcription task for the first time. Defaults to 20.
138
+
139
+ Returns:
140
+ TranscriptionOrderBuilder: The transcription order builder instance.
141
+
142
+ Raises:
143
+ ValueError: If the media paths are not a list of strings."""
144
+
145
+ if not isinstance(media_paths, list) or not all(isinstance(path, str) for path in media_paths):
146
+ raise ValueError("Media paths must be a list of strings, the strings being file paths.")
147
+
148
+ if not isinstance(transcription_texts, list) or not all(isinstance(text, str) for text in transcription_texts):
149
+ raise ValueError("Transcription texts must be a list of strings.")
150
+
151
+ if not len(media_paths) == len(transcription_texts):
152
+ raise ValueError("The number of media paths and transcription texts must be the same.")
153
+
154
+ invalid_paths: list[str] = []
155
+ for path in media_paths:
156
+ try:
157
+ self._media_assets.append(MediaAsset(path))
158
+ except FileNotFoundError:
159
+ invalid_paths.append(path)
160
+
161
+ if invalid_paths:
162
+ raise FileNotFoundError(f"Could not find the following files: {invalid_paths}")
163
+
164
+ self._transcription_texts = [TranscriptionMetadata(text) for text in transcription_texts]
165
+
166
+ self._time_effort = time_effort
167
+ return self._build()
168
+
169
+ def _build(self) -> TranscriptionOrderBuilder:
170
+ if not self._media_assets:
171
+ raise ValueError("Please provide either a text or an media to be shown with the question")
172
+ return TranscriptionOrderBuilder(self._name,
173
+ self._instruction,
174
+ self._media_assets,
175
+ self._transcription_texts,
176
+ openapi_service=self._openapi_service,
177
+ time_effort=self._time_effort)
178
+
179
+
180
+ class TranscriptionInstructionBuilder:
181
+ def __init__(self, name: str, openapi_service: OpenAPIService):
182
+ self._openapi_service = openapi_service
183
+ self._name = name
184
+ self._instruction = None
185
+
186
+ def instruction(self, instruction: str) -> TranscriptionMediaBuilder:
187
+ """Set the instruction for the transcription order."""
188
+ self._instruction = instruction
189
+ return self._build()
190
+
191
+ def _build(self) -> TranscriptionMediaBuilder:
192
+ if self._instruction is None:
193
+ raise ValueError("Instruction is required")
194
+ return TranscriptionMediaBuilder(self._name, self._instruction, self._openapi_service)
@@ -15,11 +15,13 @@ class OpenAPIService:
15
15
  self,
16
16
  client_id: str | None,
17
17
  client_secret: str | None,
18
- endpoint: str,
19
- token_url: str,
18
+ enviroment: str,
20
19
  oauth_scope: str,
21
20
  cert_path: str | None = None,
22
21
  ):
22
+ self.enviroment = enviroment
23
+ endpoint=f"https://api.{enviroment}"
24
+ token_url=f"https://auth.{enviroment}"
23
25
  token_manager = TokenManager(
24
26
  client_id=client_id,
25
27
  client_secret=client_secret,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rapidata
3
- Version: 1.7.1
3
+ Version: 1.8.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
@@ -24,5 +24,5 @@ Description-Content-Type: text/markdown
24
24
  # Rapidata Python Client
25
25
  Python client to interface with the Rapidata API.
26
26
 
27
- Docs: https://rapidataai.github.io/rapidata-python-sdk
27
+ Docs: https://docs.rapidata.ai/
28
28
 
@@ -1,5 +1,5 @@
1
1
  rapidata/__init__.py,sha256=PwuTW_WL75klRHmgTPKVqIVQJg32Uq48TBxxYI6qUvI,621
2
- rapidata/api_client/__init__.py,sha256=_a54alu_li0bczRUOYgepLIrQY-dTwcEMuV12LyvLLM,23815
2
+ rapidata/api_client/__init__.py,sha256=SpzT3CTlZB6LfQKX2ITN0di_uFITeU8kRFyNFsjTbQM,23921
3
3
  rapidata/api_client/api/__init__.py,sha256=h0wnYolEBVduAU_7YBLFnwHcwXgZg_krSgarsWxz4zs,1061
4
4
  rapidata/api_client/api/campaign_api.py,sha256=DxPFqt9F6c9OpXu_Uxhsrib2NVwnbcZFa3Vkrj7cIuA,40474
5
5
  rapidata/api_client/api/client_api.py,sha256=hJR9NO3YMHE-7SYwFM88p1aBW5qdmkOf7AKdq7-QZ4A,32719
@@ -7,7 +7,7 @@ rapidata/api_client/api/coco_api.py,sha256=4QYkW7c0SZvs-HOYmj585yL0KNr6Xc16ajS7b
7
7
  rapidata/api_client/api/compare_workflow_api.py,sha256=2P5Z1zvlEc6zmrmeSN67l1LONpchz6g0v0olfD8M_o8,12652
8
8
  rapidata/api_client/api/datapoint_api.py,sha256=CdLFVMrVylj2_D6Ll58_4ME604-7mgWCyXF5SpKmyfI,31668
9
9
  rapidata/api_client/api/dataset_api.py,sha256=9v2bBPYnRDKWvAvB7cJoew-O_bkmuocjpcg75hjkAkQ,92297
10
- rapidata/api_client/api/identity_api.py,sha256=tb4TK0sNdZBXnVX6fhwc_iaogxQl9rsGBDKiF1x-vBU,34190
10
+ rapidata/api_client/api/identity_api.py,sha256=OpXAgkb6UIjfFqUnRqSFQ4zucROKAjDavy28JzXLQ90,34754
11
11
  rapidata/api_client/api/newsletter_api.py,sha256=9ZqGDB4_AEQZfRA61RRYkyQ06WjXH-aCwJUe60c2H4w,22575
12
12
  rapidata/api_client/api/order_api.py,sha256=JGGwHq-WBa8lcPoTQExYzsTyrDfgwHBrqW_FUFtqSD4,209360
13
13
  rapidata/api_client/api/pipeline_api.py,sha256=-2KuB0C1P7veSMmOqXKSJpLN_5xdM_5JbUTSluEUpPA,33246
@@ -21,7 +21,7 @@ rapidata/api_client/api_client.py,sha256=EDhxAOUc5JFWvFsF1zc726Q7GoEFkuB8uor5SlG
21
21
  rapidata/api_client/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
22
22
  rapidata/api_client/configuration.py,sha256=g472vHVPLBotq8EkfSXP4sbp7xnn-3sb8O8BBlRWK1I,15931
23
23
  rapidata/api_client/exceptions.py,sha256=eLLd1fxM0Ygf3IIG6aNx9hdy79drst5Cem0UjI_NamM,5978
24
- rapidata/api_client/models/__init__.py,sha256=aTRZtqID7DFL4-9XQICxgNwcCD59Xl8lSQFvXU6Ztr0,22213
24
+ rapidata/api_client/models/__init__.py,sha256=qPMWY4ixL2Vup_i7TvsGU1p1dnX9zEQ7KrmSAneNbws,22319
25
25
  rapidata/api_client/models/add_campaign_artifact_result.py,sha256=4IvFVS-tLlL6eHsWp-IZ_ul5T30-h3YEwd2B5ioBbgY,2582
26
26
  rapidata/api_client/models/add_campaign_model.py,sha256=OJzkfvQlrp6j6ffwVShouUCW-MQZw60BGUJpqjbSGs8,6853
27
27
  rapidata/api_client/models/add_validation_rapid_model.py,sha256=-HRHMK-o6dgGjUqfsP_woZcFxfN7nuJ-L1CUaK9nihY,4918
@@ -125,8 +125,8 @@ rapidata/api_client/models/demographic_selection.py,sha256=-RIAemMmI0omKU6cVIY_a
125
125
  rapidata/api_client/models/early_stopping_referee_model.py,sha256=FhLrKAhvoI0OAMMEoJn0DjQo3WhTU_5fyzv8sd83kRk,3489
126
126
  rapidata/api_client/models/empty_validation_truth.py,sha256=dn4EDj_8DPBtupr2Hrmk-g9PuclrmJoe080rSBD_F6A,2911
127
127
  rapidata/api_client/models/error_type.py,sha256=AZKEf0UaGxP2PW5Gf9jYolx9GWBD9rWyDuzXcbgsm6E,842
128
- rapidata/api_client/models/evaluation_workflow_config.py,sha256=mqIxbH-Fkv_ArOIfJ9gIXgg807F6TnrXS9X6ba5ejDY,3528
129
- rapidata/api_client/models/evaluation_workflow_model.py,sha256=Gt_e85CDvxB6SDG0Ok7oCQ-AbIZLU2mGxFPIlRFk2Uw,3342
128
+ rapidata/api_client/models/evaluation_workflow_config.py,sha256=dAiyC1dmuKv-pl7gOxMsAmz5_exHdmItXfv4M9bs30I,3715
129
+ rapidata/api_client/models/evaluation_workflow_model.py,sha256=o26jVMvvs8aBk40Y7axkCuDKwdW6qpiLVzm4fARNM8w,3686
130
130
  rapidata/api_client/models/feature_flag.py,sha256=Ctw_S0nxSr0gz4n2GQW1QmcvfVNV8A-IldefaojbgAc,2531
131
131
  rapidata/api_client/models/feature_flag_model.py,sha256=Bzq7vkZRoYnft2_2-HKHLj4FVa6a5lbN3x34-m8vFsA,2803
132
132
  rapidata/api_client/models/feedback_model.py,sha256=BqJoYITA22lE1O2SWenv2Ndw1_JfqIfWMhDvB9gJ0YA,3304
@@ -248,8 +248,9 @@ rapidata/api_client/models/rapid_answer_result.py,sha256=oXYHKpjkXa_cxgJb8xUR_v8
248
248
  rapidata/api_client/models/rapid_result_model.py,sha256=JVUSCNErUbZimSIelKb7pgXjxdaHFX6ZjKahuRLbe7w,3048
249
249
  rapidata/api_client/models/rapid_result_model_result.py,sha256=RjA75vGoZW5fEHLxS3-z1TUesyax_qxPXW4aYhGFoPw,11681
250
250
  rapidata/api_client/models/rapid_skipped_model.py,sha256=3_YXlv4B8teo_xXWlXUMX2ybxgM29PWSw0JMha7qajY,2808
251
- rapidata/api_client/models/read_bridge_token_keys_result.py,sha256=8L9QYKDCD5j1TU3zBdAxFpNJtB9AsVertXFgc_EV6vk,3209
251
+ rapidata/api_client/models/read_bridge_token_keys_result.py,sha256=2j3VhAq9EYVkArwdtOh9dIcrikDOPzZ6qdM_dqWJSMo,4519
252
252
  rapidata/api_client/models/register_temporary_customer_model.py,sha256=E4GPQtiA8FKa7aDUgQmQqOQuKm-CpWBfcRKhKWkMTSg,2643
253
+ rapidata/api_client/models/register_temporary_customer_result.py,sha256=uxMFNwPaQvMp0MziTBbllhFlCfaRlyx6gRAFJfRKl8o,4200
253
254
  rapidata/api_client/models/request_password_reset_command.py,sha256=6bSYVzN3KNKd5u0Xl0vSjHRKI2uowIavU_wMbmLktvo,3174
254
255
  rapidata/api_client/models/root_filter.py,sha256=ee1rX_2CSUV7etI1sryrgZU1s85ifKVQ8PhpD6PMzRE,3363
255
256
  rapidata/api_client/models/send_completion_mail_step_model.py,sha256=iU90CqnaTiC5DmhLKKSJNV_xcKJtnbEJ0NpLtUUhvPM,3382
@@ -319,39 +320,44 @@ rapidata/api_client/models/workflow_split_model.py,sha256=zthOSaUl8dbLhLymLK_lrP
319
320
  rapidata/api_client/models/workflow_split_model_filter_configs_inner.py,sha256=1Fx9uZtztiiAdMXkj7YeCqt7o6VkG9lKf7D7UP_h088,7447
320
321
  rapidata/api_client/models/workflow_state.py,sha256=5LAK1se76RCoozeVB6oxMPb8p_5bhLZJqn7q5fFQWis,850
321
322
  rapidata/api_client/rest.py,sha256=zmCIFQC2l1t-KZcq-TgEm3vco3y_LK6vRm3Q07K-xRI,9423
322
- rapidata/api_client_README.md,sha256=yO0AD07JTBsrZ2rZh2w654I0dV550EhURdYJbH3ak88,36148
323
+ rapidata/api_client_README.md,sha256=2Jqt9GXhr2ZA4S1PpYVkgsrdg2Cc29fnMt_I5V26JOQ,36246
323
324
  rapidata/rapidata_client/__init__.py,sha256=mmfjHy_GMA7xFU_haNwxjNRaCF505iPXhE4KC2dXObY,841
324
- rapidata/rapidata_client/assets/__init__.py,sha256=T-XKvMSkmyI8iYLUYDdZ3LrrSInHsGMUY_Tz77hhnlE,240
325
+ rapidata/rapidata_client/assets/__init__.py,sha256=ctyFS6eSBcmTG69Tzq_f2q1TSEjslstCOVFRP5TBl4Y,273
325
326
  rapidata/rapidata_client/assets/base_asset.py,sha256=B2YWH1NgaeYUYHDW3OPpHM_bqawHbH4EjnRCE2BYwiM,298
326
- rapidata/rapidata_client/assets/media_asset.py,sha256=sQsmpBoHhfSUSULBh30nuHPDZxlVUECFuCcr1sVqYag,2652
327
+ rapidata/rapidata_client/assets/media_asset.py,sha256=0XkO7DOff6iq2ybgeS2Ktjj9EKP-btKJnqpaPt0AT3g,2788
327
328
  rapidata/rapidata_client/assets/multi_asset.py,sha256=l6BysrDYWY13FTAw93cmnHN7HLUMrpG27qwOT7KNeLQ,1666
328
- rapidata/rapidata_client/assets/text_asset.py,sha256=a_En6wo0Ubgodl2KpBl1p_SxHSy_qRNme2bA3AtcPbY,516
329
- rapidata/rapidata_client/config.py,sha256=tQLgN6k_ATOX1GzZh38At2rgBDLStV6rJ6z0vsTTPjg,186
329
+ rapidata/rapidata_client/assets/text_asset.py,sha256=Jn9sXAVkniZVjB75L5oP2_xTYMJ79A7HC-ZgowGp_V0,617
330
330
  rapidata/rapidata_client/country_codes/__init__.py,sha256=FB9Dcks44J6C6YBSYmTmNZ71tE130x6NO_3aLJ8fKzQ,40
331
- rapidata/rapidata_client/country_codes/country_codes.py,sha256=Q0HMX7uHJQDeLCFPP5bq4iYi6pgcDWEcl2ONGhjgoeU,286
331
+ rapidata/rapidata_client/country_codes/country_codes.py,sha256=ePHqeb7y9DWQZAnddBzPx1puYBcrgUjdR2sbFijuFD8,283
332
332
  rapidata/rapidata_client/dataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
333
- rapidata/rapidata_client/dataset/rapidata_dataset.py,sha256=xF7wHyY_JPb91ryEN80rOFOpxjtUfQU677h6KQ7ee94,5078
334
- rapidata/rapidata_client/dataset/rapidata_validation_set.py,sha256=KhvHMML591h61I9lqXSmp_s2_VZAWmuCoixmA2rAI8c,10973
333
+ rapidata/rapidata_client/dataset/rapid_builders/__init__.py,sha256=MAYlb0dHc8fdEtIe3N3VjVkgH9DHTE3KEFE0CfOyJ_k,258
334
+ rapidata/rapidata_client/dataset/rapid_builders/base_rapid_builder.py,sha256=wRN2jFcF55DXwxN8-Gt6rWDWuL_VNuXC0MZrUTXGBqg,1161
335
+ rapidata/rapidata_client/dataset/rapid_builders/classify_rapid_builders.py,sha256=IljXUkLmf38DGt2uGp2ApFTEZCfNN24KMq1Blek9Ma8,5454
336
+ rapidata/rapidata_client/dataset/rapid_builders/compare_rapid_builders.py,sha256=DAGBz2oGzZw_7-FeTeQXFAwbogBvGWicOmZ9fwL63Aw,4517
337
+ rapidata/rapidata_client/dataset/rapid_builders/rapids.py,sha256=WRiHMtAB3-c4RVfuzVa0XHsatfDVDBf1k1-Ba596Y50,1459
338
+ rapidata/rapidata_client/dataset/rapid_builders/transcription_rapid_builders.py,sha256=-zwIaR65lfQIVK_qVufJ7QwKbCJM1vBuYnN7mzXBz0Y,4767
339
+ rapidata/rapidata_client/dataset/rapidata_dataset.py,sha256=R7mlummfPdIMcIE6qB1gBWWIuOpUTFtwVlBkOf8Fm60,5224
340
+ rapidata/rapidata_client/dataset/rapidata_validation_set.py,sha256=tevW03U9LnzonCgt4fK7UFUYhGJQjtLOVCd8wyMgfI8,11505
335
341
  rapidata/rapidata_client/dataset/validation_rapid_parts.py,sha256=uzpOZFqQu8bG6vmjcWWUNJPZsRe28OmnyalRE6ry8tk,2317
336
- rapidata/rapidata_client/dataset/validation_set_builder.py,sha256=ApYyEIwf9CQfnKJ2nZwK9FzgnY3Ff3BWetv75OlR-KM,8018
342
+ rapidata/rapidata_client/dataset/validation_set_builder.py,sha256=ZI2T7gisXnA28QL8I2tCkBIOR1Z5yRcoR7O5ZhMbMzY,12000
337
343
  rapidata/rapidata_client/filter/__init__.py,sha256=F3JsMCbAZWH7SNdgaj98ydTqgCCKXKBhLyt9gQ4x6tQ,301
338
344
  rapidata/rapidata_client/filter/age_filter.py,sha256=hncr1zNM_HrO0fCta8h0LgTCB8Ufv_vI5_cGhMb-xr8,478
339
345
  rapidata/rapidata_client/filter/base_filter.py,sha256=nXraj72cumyQjjYoo4MMpnlE0aWjAIOmGakKf0MNqps,135
340
346
  rapidata/rapidata_client/filter/campaign_filter.py,sha256=DHWf2LIb7IFbgPm2XyFspwHwrz9a079FjiUOo4z3gtw,459
341
- rapidata/rapidata_client/filter/country_filter.py,sha256=rPfTAZdsvuRyitygJz3UWAFEmsE6U9aUnSHUySFV6cA,612
347
+ rapidata/rapidata_client/filter/country_filter.py,sha256=e7kEVn6tzpX-HkHs_KUawJIWg3vEJXohyyjkQwbzPBA,730
342
348
  rapidata/rapidata_client/filter/gender_filter.py,sha256=AG4JK8eIycp0iM9h21B_cmFBfgE6v9sU-rIFDCHFUeY,472
343
- rapidata/rapidata_client/filter/language_filter.py,sha256=JRHw-BpA5ZqpGR-fjyVB6bJ56Ifi6PcM3yztvLFmrQY,623
349
+ rapidata/rapidata_client/filter/language_filter.py,sha256=_ulaZKO6quKvH7PW-eRv0geab8vFvll96aiY4DSM3sw,743
344
350
  rapidata/rapidata_client/filter/user_score_filter.py,sha256=YtZH0eFvo4SS96-R2PqT6at_qHFDlaztwOFOdpeZe5w,560
345
351
  rapidata/rapidata_client/metadata/__init__.py,sha256=qMmo4wqScUCAJ6YXRWxvJLmbFA5YRbK39p9_exV1d50,246
346
352
  rapidata/rapidata_client/metadata/base_metadata.py,sha256=BJoZT4lRs94lu7PE3__LcsMINHNDVKRKRART-EKzSaw,217
347
353
  rapidata/rapidata_client/metadata/private_text_metadata.py,sha256=VJ_SJwp8OMFZLuUMRWvPeKOySXYJuGr-YgpwuLfTbmo,517
348
- rapidata/rapidata_client/metadata/prompt_metadata.py,sha256=_FypjKWrC3iKUO_G2CVwAGcYbEYClVv4K7upqlnmecw,468
354
+ rapidata/rapidata_client/metadata/prompt_metadata.py,sha256=W3kG4J53SuVCw9rU2bJYrCnvm7tzRNtLtZo6l48R3Ok,575
349
355
  rapidata/rapidata_client/metadata/public_text_metadata.py,sha256=LTiBQHs6izxQ6-C84d6Pf7lL4ENTDgg__HZnDKvzvMc,511
350
356
  rapidata/rapidata_client/metadata/transcription_metadata.py,sha256=THtDEVCON4UlcXHmXrjilaOLHys4TrktUOPGWnXaCcc,631
351
357
  rapidata/rapidata_client/order/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
352
- rapidata/rapidata_client/order/rapidata_order.py,sha256=maft6d1mUscgETVejlYY2GFfn7uvzCtq9GJ5dEnigYE,4793
353
- rapidata/rapidata_client/order/rapidata_order_builder.py,sha256=QFlO3e4d3MVT76sAM9iU6zkG2BiSmac7WlY57jzdSQk,16680
354
- rapidata/rapidata_client/rapidata_client.py,sha256=a_OZBd3sldws3ElqZt_eyqrSzdUNLxynjG5XCNLmmnY,8032
358
+ rapidata/rapidata_client/order/rapidata_order.py,sha256=3mIh0pnjReFWDU4mOMsmFXRJffaRZR-PZcoO0lcrztY,4824
359
+ rapidata/rapidata_client/order/rapidata_order_builder.py,sha256=Eu97BSjPuiyu0U-b-GTCIterU5h_cXBLd3cmC1vQI5E,16699
360
+ rapidata/rapidata_client/rapidata_client.py,sha256=Sr8RhQfG_K7FZgouBduhF4TJemYa2TKQUcVl-BXLYig,9127
355
361
  rapidata/rapidata_client/referee/__init__.py,sha256=E1VODxTjoQRnxzdgMh3aRlDLouxe1nWuvozEHXD2gq4,150
356
362
  rapidata/rapidata_client/referee/base_referee.py,sha256=bMy7cw0a-pGNbFu6u_1_Jplu0A483Ubj4oDQzh8vu8k,493
357
363
  rapidata/rapidata_client/referee/early_stopping_referee.py,sha256=V9c2Iau40-aPM06FYW5qwpJGa-usTCiZixoCCQWkrxI,1929
@@ -363,12 +369,14 @@ rapidata/rapidata_client/selection/conditional_validation_selection.py,sha256=wP
363
369
  rapidata/rapidata_client/selection/demographic_selection.py,sha256=DnMbLhzRItZ0t4Engo2fav4imG01JqAmn0SHOoPOhnQ,516
364
370
  rapidata/rapidata_client/selection/labeling_selection.py,sha256=cqDMQEXfQGMmgIvPgGOYgIGaXflV_J7LZsGOsakLXqo,425
365
371
  rapidata/rapidata_client/selection/validation_selection.py,sha256=HswzD2SvZZWisNLoGj--0sT_TIK8crYp3xGGndo6aLY,523
366
- rapidata/rapidata_client/settings/__init__.py,sha256=pqAmWPURaZ71rz6ogUH2rnfKL3rf7k4IhLyeM8ZHVlI,71
372
+ rapidata/rapidata_client/settings/__init__.py,sha256=DTsffohaZICEmBRpokyWAd6GNcf67Ps5eNKe3Qr-Lhk,93
367
373
  rapidata/rapidata_client/settings/feature_flags.py,sha256=aKnxl1kv4cC3TaHV-xfqYlvL3ATIB2-H0VKl1rUt8jQ,4658
368
- rapidata/rapidata_client/settings/settings.py,sha256=oglRs-xgMGW8t2DhHfWIjWGkPW9Bm_fIaTTcaQKy-b8,4410
374
+ rapidata/rapidata_client/settings/settings.py,sha256=ncLvEuIYWkUnAi8J3PQoG7WoAOZn-G3WZ0LWyrwt-QM,4556
369
375
  rapidata/rapidata_client/simple_builders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
370
- rapidata/rapidata_client/simple_builders/simple_classification_builders.py,sha256=-fltx9dSP64e2i7spF3gKcEIYfY8ROZo2sb6JaQoMcQ,5938
371
- rapidata/rapidata_client/simple_builders/simple_compare_builders.py,sha256=JoGXspVfqKaRNDsiZMS7xfyJ4TVflaQCE4PEQyiJajQ,5913
376
+ rapidata/rapidata_client/simple_builders/simple_classification_builders.py,sha256=jqHQY8cKQuZnVcx2oCPaVyd2p6jQ421Iw9AzbnL7vI8,11634
377
+ rapidata/rapidata_client/simple_builders/simple_compare_builders.py,sha256=JpXoURsrGouBNJMqqmd35bgbmKcgCTVIXEYZNekfS5o,12237
378
+ rapidata/rapidata_client/simple_builders/simple_free_text_builders.py,sha256=udJWDo_8h-lglxxEEl-FpufPtCZ9Fs9AMZX9Q24CmCA,8171
379
+ rapidata/rapidata_client/simple_builders/simple_transcription_builders.py,sha256=J0d53f2zDOpRwXNtgVVAgQ_n6srUzC4BHjXxjTYQGHc,9580
372
380
  rapidata/rapidata_client/workflow/__init__.py,sha256=xWuzAhBnbcUFfWcgYrzj8ZYLSOXyFtgfepgMrf0hNhU,290
373
381
  rapidata/rapidata_client/workflow/base_workflow.py,sha256=iDBeklFwOIbMuJHA7t-x_cwxfygJCG0SoXLBB7R53fQ,1395
374
382
  rapidata/rapidata_client/workflow/classify_workflow.py,sha256=NkyyBrlCDqYVQaCARR9EHYuREEtXond69kD6jbzcN3M,1713
@@ -379,9 +387,9 @@ rapidata/rapidata_client/workflow/transcription_workflow.py,sha256=_KDtGCdRhauJm
379
387
  rapidata/service/__init__.py,sha256=s9bS1AJZaWIhLtJX_ZA40_CK39rAAkwdAmymTMbeWl4,68
380
388
  rapidata/service/credential_manager.py,sha256=4jiJaX4hnRKoU91-WnpLytOTvSWApSa8ezN8fGAp0dg,7944
381
389
  rapidata/service/local_file_service.py,sha256=pgorvlWcx52Uh3cEG6VrdMK_t__7dacQ_5AnfY14BW8,877
382
- rapidata/service/openapi_service.py,sha256=XNTCCBsC-3GwB2TxZ5XQaqzRnaViSIZ3yIWeVl9J20U,2472
390
+ rapidata/service/openapi_service.py,sha256=Q1_anQhDFOfgucLJkNyTnqdX9qdJQUQlYIktbe-dOZM,2581
383
391
  rapidata/service/token_manager.py,sha256=JZ5YbR5Di8dO3H4kK11d0kzWlrXxjgCmeNkHA4AapCM,6425
384
- rapidata-1.7.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
385
- rapidata-1.7.1.dist-info/METADATA,sha256=F4UZerrLpfk-EahxFjzRpHx7Ui5Mci6hUop8hR6xJxs,1056
386
- rapidata-1.7.1.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
387
- rapidata-1.7.1.dist-info/RECORD,,
392
+ rapidata-1.8.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
393
+ rapidata-1.8.1.dist-info/METADATA,sha256=upBB2kwhFy5OCfPgjsjEmrFlRHb29Qxco3RZQr-3c04,1033
394
+ rapidata-1.8.1.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
395
+ rapidata-1.8.1.dist-info/RECORD,,
@@ -1,9 +0,0 @@
1
-
2
-
3
- from types import SimpleNamespace
4
-
5
-
6
- CONFIG = SimpleNamespace(
7
- DEMOGRAPHIC_RAPID_ID_AGE = "66aa42f34e7e0f6e5ce4c0f5",
8
- DEMOGRAPHIC_RAPID_ID_GENDER = "66aa5f30ca6c87efae430b1d",
9
- )