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.
- rapidata/api_client/__init__.py +1 -0
- rapidata/api_client/api/identity_api.py +15 -5
- rapidata/api_client/models/__init__.py +1 -0
- rapidata/api_client/models/evaluation_workflow_config.py +5 -3
- rapidata/api_client/models/evaluation_workflow_model.py +5 -3
- rapidata/api_client/models/read_bridge_token_keys_result.py +31 -3
- rapidata/api_client/models/register_temporary_customer_result.py +112 -0
- rapidata/api_client_README.md +1 -0
- rapidata/rapidata_client/assets/__init__.py +1 -1
- rapidata/rapidata_client/assets/media_asset.py +3 -0
- rapidata/rapidata_client/assets/text_asset.py +3 -0
- rapidata/rapidata_client/country_codes/country_codes.py +1 -1
- rapidata/rapidata_client/dataset/rapid_builders/__init__.py +4 -0
- rapidata/rapidata_client/dataset/rapid_builders/base_rapid_builder.py +33 -0
- rapidata/rapidata_client/dataset/rapid_builders/classify_rapid_builders.py +166 -0
- rapidata/rapidata_client/dataset/rapid_builders/compare_rapid_builders.py +145 -0
- rapidata/rapidata_client/dataset/rapid_builders/rapids.py +32 -0
- rapidata/rapidata_client/dataset/rapid_builders/transcription_rapid_builders.py +132 -0
- rapidata/rapidata_client/dataset/rapidata_dataset.py +3 -1
- rapidata/rapidata_client/dataset/rapidata_validation_set.py +24 -7
- rapidata/rapidata_client/dataset/validation_set_builder.py +115 -8
- rapidata/rapidata_client/filter/country_filter.py +3 -0
- rapidata/rapidata_client/filter/language_filter.py +3 -0
- rapidata/rapidata_client/metadata/prompt_metadata.py +5 -1
- rapidata/rapidata_client/order/rapidata_order.py +1 -1
- rapidata/rapidata_client/order/rapidata_order_builder.py +5 -5
- rapidata/rapidata_client/rapidata_client.py +39 -11
- rapidata/rapidata_client/settings/__init__.py +1 -1
- rapidata/rapidata_client/settings/settings.py +10 -9
- rapidata/rapidata_client/simple_builders/simple_classification_builders.py +132 -21
- rapidata/rapidata_client/simple_builders/simple_compare_builders.py +141 -15
- rapidata/rapidata_client/simple_builders/simple_free_text_builders.py +180 -0
- rapidata/rapidata_client/simple_builders/simple_transcription_builders.py +194 -0
- rapidata/service/openapi_service.py +4 -2
- {rapidata-1.7.1.dist-info → rapidata-1.8.1.dist-info}/METADATA +2 -2
- {rapidata-1.7.1.dist-info → rapidata-1.8.1.dist-info}/RECORD +38 -30
- rapidata/rapidata_client/config.py +0 -9
- {rapidata-1.7.1.dist-info → rapidata-1.8.1.dist-info}/LICENSE +0 -0
- {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
|
-
|
|
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.
|
|
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://
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
129
|
-
rapidata/api_client/models/evaluation_workflow_model.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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/
|
|
334
|
-
rapidata/rapidata_client/dataset/
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
353
|
-
rapidata/rapidata_client/order/rapidata_order_builder.py,sha256=
|
|
354
|
-
rapidata/rapidata_client/rapidata_client.py,sha256=
|
|
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=
|
|
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=
|
|
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
|
|
371
|
-
rapidata/rapidata_client/simple_builders/simple_compare_builders.py,sha256=
|
|
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=
|
|
390
|
+
rapidata/service/openapi_service.py,sha256=Q1_anQhDFOfgucLJkNyTnqdX9qdJQUQlYIktbe-dOZM,2581
|
|
383
391
|
rapidata/service/token_manager.py,sha256=JZ5YbR5Di8dO3H4kK11d0kzWlrXxjgCmeNkHA4AapCM,6425
|
|
384
|
-
rapidata-1.
|
|
385
|
-
rapidata-1.
|
|
386
|
-
rapidata-1.
|
|
387
|
-
rapidata-1.
|
|
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,,
|
|
File without changes
|
|
File without changes
|