rapidata 2.33.0__py3-none-any.whl → 2.33.2__py3-none-any.whl

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

Potentially problematic release.


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

rapidata/__init__.py CHANGED
@@ -1,10 +1,10 @@
1
- __version__ = "2.33.0"
1
+ __version__ = "2.33.2"
2
2
 
3
3
  from .rapidata_client import (
4
4
  RapidataClient,
5
5
  DemographicSelection,
6
6
  LabelingSelection,
7
- EffortEstimationSelection,
7
+ EffortSelection,
8
8
  RetrievalMode,
9
9
  ValidationSelection,
10
10
  ConditionalValidationSelection,
@@ -7,7 +7,7 @@ from .selection import (
7
7
  CappedSelection,
8
8
  ShufflingSelection,
9
9
  RetrievalMode,
10
- EffortEstimationSelection,
10
+ EffortSelection,
11
11
  )
12
12
  from .datapoints import Datapoint
13
13
  from .datapoints.metadata import (
@@ -0,0 +1,102 @@
1
+ from concurrent.futures import ThreadPoolExecutor, as_completed
2
+ from tqdm import tqdm
3
+
4
+ from rapidata.rapidata_client.datapoints.assets import MediaAsset
5
+ from rapidata.rapidata_client.logging import logger
6
+ from rapidata.rapidata_client.logging.output_manager import RapidataOutputManager
7
+ from rapidata.api_client.models.create_sample_model import CreateSampleModel
8
+ from rapidata.service.openapi_service import OpenAPIService
9
+
10
+
11
+ class BenchmarkParticipant:
12
+ def __init__(self, name: str, id: str, openapi_service: OpenAPIService):
13
+ self.name = name
14
+ self.id = id
15
+ self.__openapi_service = openapi_service
16
+
17
+ def _process_single_sample_upload(
18
+ self,
19
+ asset: MediaAsset,
20
+ identifier: str,
21
+ ) -> tuple[MediaAsset | None, MediaAsset | None]:
22
+ """
23
+ Process single sample upload with retry logic and error tracking.
24
+
25
+ Args:
26
+ asset: MediaAsset to upload
27
+ identifier: Identifier for the sample
28
+
29
+ Returns:
30
+ tuple[MediaAsset | None, MediaAsset | None]: (successful_asset, failed_asset)
31
+ """
32
+ if asset.is_local():
33
+ files = [asset.to_file()]
34
+ urls = []
35
+ else:
36
+ files = []
37
+ urls = [asset.path]
38
+
39
+ last_exception = None
40
+ try:
41
+ self.__openapi_service.participant_api.participant_participant_id_sample_post(
42
+ participant_id=self.id,
43
+ model=CreateSampleModel(
44
+ identifier=identifier
45
+ ),
46
+ files=files,
47
+ urls=urls
48
+ )
49
+
50
+ return asset, None
51
+
52
+ except Exception as e:
53
+ last_exception = e
54
+
55
+ logger.error(f"Upload failed for {identifier}. Error: {str(last_exception)}")
56
+ return None, asset
57
+
58
+ def upload_media(
59
+ self,
60
+ assets: list[MediaAsset],
61
+ identifiers: list[str],
62
+ max_workers: int = 10,
63
+ ) -> tuple[list[MediaAsset], list[MediaAsset]]:
64
+ """
65
+ Upload samples concurrently with proper error handling and progress tracking.
66
+
67
+ Args:
68
+ assets: List of MediaAsset objects to upload
69
+ identifiers: List of identifiers matching the assets
70
+ max_workers: Maximum number of concurrent upload workers
71
+
72
+ Returns:
73
+ tuple[list[str], list[str]]: Lists of successful and failed identifiers
74
+ """
75
+ successful_uploads: list[MediaAsset] = []
76
+ failed_uploads: list[MediaAsset] = []
77
+ total_uploads = len(assets)
78
+
79
+ with ThreadPoolExecutor(max_workers=max_workers) as executor:
80
+ futures = [
81
+ executor.submit(
82
+ self._process_single_sample_upload,
83
+ asset,
84
+ identifier,
85
+ )
86
+ for asset, identifier in zip(assets, identifiers)
87
+ ]
88
+
89
+ with tqdm(total=total_uploads, desc="Uploading media", disable=RapidataOutputManager.silent_mode) as pbar:
90
+ for future in as_completed(futures):
91
+ try:
92
+ successful_id, failed_id = future.result()
93
+ if successful_id:
94
+ successful_uploads.append(successful_id)
95
+ if failed_id:
96
+ failed_uploads.append(failed_id)
97
+ except Exception as e:
98
+ logger.error(f"Future execution failed: {str(e)}")
99
+
100
+ pbar.update(1)
101
+
102
+ return successful_uploads, failed_uploads
@@ -11,14 +11,13 @@ from rapidata.api_client.models.url_asset_input import UrlAssetInput
11
11
  from rapidata.api_client.models.file_asset_model import FileAssetModel
12
12
  from rapidata.api_client.models.source_url_metadata_model import SourceUrlMetadataModel
13
13
 
14
+
15
+ from rapidata.rapidata_client.benchmark.participant._participant import BenchmarkParticipant
14
16
  from rapidata.rapidata_client.logging import logger
15
17
  from rapidata.service.openapi_service import OpenAPIService
16
18
 
17
19
  from rapidata.rapidata_client.benchmark.leaderboard.rapidata_leaderboard import RapidataLeaderboard
18
- from rapidata.rapidata_client.datapoints.metadata import PromptIdentifierMetadata
19
20
  from rapidata.rapidata_client.datapoints.assets import MediaAsset
20
- from rapidata.rapidata_client.order._rapidata_dataset import RapidataDataset
21
- from rapidata.rapidata_client.datapoints.datapoint import Datapoint
22
21
 
23
22
  class RapidataBenchmark:
24
23
  """
@@ -250,7 +249,7 @@ class RapidataBenchmark:
250
249
  leaderboard_result.id,
251
250
  self.__openapi_service
252
251
  )
253
-
252
+
254
253
  def evaluate_model(self, name: str, media: list[str], identifiers: list[str]) -> None:
255
254
  """
256
255
  Evaluates a model on the benchmark across all leaderboards.
@@ -272,11 +271,9 @@ class RapidataBenchmark:
272
271
  \nTo see the prompts that are associated with the identifiers, use the prompts property.")
273
272
 
274
273
  # happens before the creation of the participant to ensure all media paths are valid
275
- assets = []
276
- prompts_metadata: list[list[PromptIdentifierMetadata]] = []
277
- for media_path, identifier in zip(media, identifiers):
274
+ assets: list[MediaAsset] = []
275
+ for media_path in media:
278
276
  assets.append(MediaAsset(media_path))
279
- prompts_metadata.append([PromptIdentifierMetadata(identifier=identifier)])
280
277
 
281
278
  participant_result = self.__openapi_service.benchmark_api.benchmark_benchmark_id_participants_post(
282
279
  benchmark_id=self.id,
@@ -285,22 +282,27 @@ class RapidataBenchmark:
285
282
  )
286
283
  )
287
284
 
288
- dataset = RapidataDataset(participant_result.dataset_id, self.__openapi_service)
289
-
290
- try:
291
- dataset.add_datapoints([Datapoint(asset=asset, metadata=metadata) for asset, metadata in zip(assets, prompts_metadata)])
292
- except Exception as e:
293
- logger.warning(f"An error occurred while adding datapoints to the dataset: {e}")
294
- upload_progress = self.__openapi_service.dataset_api.dataset_dataset_id_progress_get(
295
- dataset_id=dataset.id
296
- )
297
- if upload_progress.ready == 0:
298
- raise RuntimeError("None of the media was uploaded successfully. Please check the media paths and try again.")
299
-
300
- logger.warning(f"{upload_progress.failed} datapoints failed to upload. \n{upload_progress.ready} datapoints were uploaded successfully. \nEvaluation will continue with the uploaded datapoints.")
285
+ logger.info(f"Participant created: {participant_result.participant_id}")
301
286
 
302
- self.__openapi_service.benchmark_api.benchmark_benchmark_id_participants_participant_id_submit_post(
303
- benchmark_id=self.id,
287
+ participant = BenchmarkParticipant(name, participant_result.participant_id, self.__openapi_service)
288
+
289
+ successful_uploads, failed_uploads = participant.upload_media(
290
+ assets,
291
+ identifiers,
292
+ )
293
+
294
+ total_uploads = len(assets)
295
+ success_rate = (len(successful_uploads) / total_uploads * 100) if total_uploads > 0 else 0
296
+ logger.info(f"Upload complete: {len(successful_uploads)} successful, {len(failed_uploads)} failed ({success_rate:.1f}% success rate)")
297
+
298
+ if failed_uploads:
299
+ logger.error(f"Failed uploads for media: {[asset.path for asset in failed_uploads]}")
300
+ logger.warning("Some uploads failed. The model evaluation may be incomplete.")
301
+
302
+ if len(successful_uploads) == 0:
303
+ raise RuntimeError("No uploads were successful. The model evaluation will not be completed.")
304
+
305
+ self.__openapi_service.participant_api.participants_participant_id_submit_post(
304
306
  participant_id=participant_result.participant_id
305
307
  )
306
308
 
@@ -1,8 +1,14 @@
1
+ from typing import cast
2
+ from rapidata.api_client.models.file_asset_model import FileAssetModel
3
+ from rapidata.api_client.models.get_failed_datapoints_result import GetFailedDatapointsResult
4
+ from rapidata.api_client.models.multi_asset_model import MultiAssetModel
5
+ from rapidata.api_client.models.original_filename_metadata_model import OriginalFilenameMetadataModel
6
+ from rapidata.api_client.models.source_url_metadata_model import SourceUrlMetadataModel
7
+ from rapidata.rapidata_client.datapoints.assets import MediaAsset, MultiAsset
1
8
  from rapidata.rapidata_client.datapoints.datapoint import Datapoint
2
9
  from rapidata.rapidata_client.order._rapidata_dataset import RapidataDataset
3
10
  from rapidata.rapidata_client.order.rapidata_order import RapidataOrder
4
11
 
5
-
6
12
  class FailedUploadException(Exception):
7
13
  """Custom error class for Failed Uploads to the Rapidata order."""
8
14
  def __init__(
@@ -17,3 +23,31 @@ class FailedUploadException(Exception):
17
23
 
18
24
  def __str__(self) -> str:
19
25
  return f"Failed to upload {self.failed_uploads}"
26
+
27
+
28
+ def _parse_failed_uploads(failed_uploads: GetFailedDatapointsResult) -> list[Datapoint]:
29
+ failed_datapoints = failed_uploads.datapoints
30
+ if not failed_datapoints:
31
+ return []
32
+ if isinstance(failed_datapoints[0].asset.actual_instance, FileAssetModel):
33
+ failed_assets = [MediaAsset(__get_asset_name(cast(FileAssetModel, datapoint.asset.actual_instance))) for datapoint in failed_datapoints]
34
+ elif isinstance(failed_datapoints[0].asset.actual_instance, MultiAssetModel):
35
+ failed_assets = []
36
+ backend_assets = [cast(MultiAssetModel, failed_upload.asset.actual_instance).assets for failed_upload in failed_datapoints]
37
+ for assets in backend_assets:
38
+ failed_assets.append(MultiAsset([MediaAsset(__get_asset_name(cast(FileAssetModel, asset.actual_instance))) for asset in assets if isinstance(asset.actual_instance, FileAssetModel)]))
39
+ else:
40
+ raise ValueError(f"Unsupported asset type: {type(failed_datapoints[0].asset.actual_instance)}")
41
+
42
+ return [Datapoint(asset=asset) for asset in failed_assets]
43
+
44
+ def __get_asset_name(failed_datapoint: FileAssetModel) -> str:
45
+ metadata = failed_datapoint.metadata
46
+ if "sourceUrl" in metadata:
47
+ return cast(SourceUrlMetadataModel, metadata["sourceUrl"].actual_instance).url
48
+ elif "originalFilename" in metadata:
49
+ return cast(OriginalFilenameMetadataModel, metadata["originalFilename"].actual_instance).original_filename
50
+ else:
51
+ return ""
52
+
53
+
@@ -1,4 +1,4 @@
1
- from typing import Optional, cast, Sequence
1
+ from typing import Literal, Optional, cast, Sequence
2
2
 
3
3
  from rapidata.api_client.models.ab_test_selection_a_inner import AbTestSelectionAInner
4
4
  from rapidata.api_client.models.and_user_filter_model_filters_inner import AndUserFilterModelFiltersInner
@@ -6,12 +6,10 @@ from rapidata.api_client.models.create_order_model import CreateOrderModel
6
6
  from rapidata.api_client.models.create_order_model_referee import CreateOrderModelReferee
7
7
  from rapidata.api_client.models.create_order_model_workflow import CreateOrderModelWorkflow
8
8
 
9
- from rapidata.rapidata_client.datapoints.assets import MediaAsset, TextAsset, MultiAsset, BaseAsset
10
9
  from rapidata.rapidata_client.datapoints.datapoint import Datapoint
11
- from rapidata.rapidata_client.exceptions.failed_upload_exception import FailedUploadException
10
+ from rapidata.rapidata_client.exceptions.failed_upload_exception import FailedUploadException, _parse_failed_uploads
12
11
  from rapidata.rapidata_client.filter import RapidataFilter
13
12
  from rapidata.rapidata_client.logging import logger, managed_print
14
- from rapidata.rapidata_client.datapoints.metadata import Metadata
15
13
  from rapidata.rapidata_client.order._rapidata_dataset import RapidataDataset
16
14
  from rapidata.rapidata_client.order.rapidata_order import RapidataOrder
17
15
  from rapidata.rapidata_client.referee import Referee
@@ -19,7 +17,6 @@ from rapidata.rapidata_client.referee._naive_referee import NaiveReferee
19
17
  from rapidata.rapidata_client.selection._base_selection import RapidataSelection
20
18
  from rapidata.rapidata_client.settings import RapidataSetting
21
19
  from rapidata.rapidata_client.workflow import Workflow
22
- from rapidata.rapidata_client.workflow._compare_workflow import CompareWorkflow
23
20
  from rapidata.service.openapi_service import OpenAPIService
24
21
 
25
22
 
@@ -50,6 +47,7 @@ class RapidataOrderBuilder:
50
47
  self.__selections: list[RapidataSelection] = []
51
48
  self.__priority: int | None = None
52
49
  self.__datapoints: list[Datapoint] = []
50
+ self.__sticky_state: Literal["None", "Temporary", "Permanent"] | None = None
53
51
 
54
52
  def _to_model(self) -> CreateOrderModel:
55
53
  """
@@ -92,6 +90,7 @@ class RapidataOrderBuilder:
92
90
  else None
93
91
  ),
94
92
  priority=self.__priority,
93
+ stickyState=self.__sticky_state,
95
94
  )
96
95
 
97
96
  def _create(self) -> RapidataOrder:
@@ -148,8 +147,12 @@ class RapidataOrderBuilder:
148
147
 
149
148
  logger.debug("Media added to the order.")
150
149
  logger.debug("Setting order to preview")
151
- self.__openapi_service.order_api.order_order_id_preview_post(self.order_id)
152
-
150
+ try:
151
+ self.__openapi_service.order_api.order_order_id_preview_post(self.order_id)
152
+ except Exception:
153
+ failed_uploads = _parse_failed_uploads(self.__openapi_service.dataset_api.dataset_dataset_id_datapoints_failed_get(self.__dataset.id))
154
+ logger.error(f"Internal download error for datapoints: {failed_uploads}\nWARNING: Failed Datapoints in error do not contain metadata.")
155
+ raise FailedUploadException(self.__dataset, order, failed_uploads)
153
156
  return order
154
157
 
155
158
  def _workflow(self, workflow: Workflow) -> "RapidataOrderBuilder":
@@ -315,3 +318,13 @@ class RapidataOrderBuilder:
315
318
 
316
319
  self.__priority = priority
317
320
  return self
321
+
322
+ def _sticky_state(self, sticky_state: Literal["None", "Temporary", "Permanent"] | None = None) -> "RapidataOrderBuilder":
323
+ """
324
+ Set the sticky state for the order.
325
+ """
326
+ if sticky_state is not None and sticky_state not in ["None", "Temporary", "Permanent"]:
327
+ raise TypeError("Sticky state must be of type Literal['None', 'Temporary', 'Permanent'].")
328
+
329
+ self.__sticky_state = sticky_state
330
+ return self
@@ -12,6 +12,8 @@ from tqdm import tqdm
12
12
  from rapidata.api_client.exceptions import ApiException
13
13
  from rapidata.api_client.models.campaign_artifact_model import CampaignArtifactModel
14
14
  from rapidata.api_client.models.order_state import OrderState
15
+ from rapidata.api_client.models.preview_order_model import PreviewOrderModel
16
+ from rapidata.api_client.models.submit_order_model import SubmitOrderModel
15
17
  from rapidata.api_client.models.preliminary_download_model import PreliminaryDownloadModel
16
18
  from rapidata.api_client.models.workflow_artifact_model import WorkflowArtifactModel
17
19
  from rapidata.rapidata_client.order.rapidata_results import RapidataResults
@@ -60,7 +62,7 @@ class RapidataOrder:
60
62
  def run(self) -> "RapidataOrder":
61
63
  """Runs the order to start collecting responses."""
62
64
  logger.info(f"Starting order '{self}'")
63
- self.__openapi_service.order_api.order_order_id_submit_post(self.id)
65
+ self.__openapi_service.order_api.order_order_id_submit_post(self.id, SubmitOrderModel(ignoreFailedDatapoints=True))
64
66
  logger.debug(f"Order '{self}' has been started.")
65
67
  managed_print(f"Order '{self.name}' is now viewable under: {self.order_details_page}")
66
68
  return self
@@ -203,7 +205,7 @@ class RapidataOrder:
203
205
  logger.info("Opening order preview in browser...")
204
206
  if self.get_status() == OrderState.CREATED:
205
207
  logger.info("Order is still in state created. Setting it to preview.")
206
- self.__openapi_service.order_api.order_order_id_preview_post(self.id)
208
+ self.__openapi_service.order_api.order_order_id_preview_post(self.id, PreviewOrderModel(ignoreFailedDatapoints=True))
207
209
  logger.info("Order is now in preview state.")
208
210
 
209
211
  campaign_id = self.__get_campaign_id()
@@ -51,6 +51,7 @@ class RapidataOrderManager:
51
51
  self.settings = RapidataSettings
52
52
  self.selections = RapidataSelections
53
53
  self.__priority: int | None = None
54
+ self.__sticky_state: Literal["None", "Temporary", "Permanent"] | None = None
54
55
  logger.debug("RapidataOrderManager initialized")
55
56
 
56
57
  def _create_general_order(self,
@@ -124,13 +125,26 @@ class RapidataOrderManager:
124
125
  ._settings(settings)
125
126
  ._validation_set_id(validation_set_id if not selections else None)
126
127
  ._priority(self.__priority)
128
+ ._sticky_state(self.__sticky_state)
127
129
  ._create()
128
130
  )
129
131
  return order
130
132
 
131
133
  def _set_priority(self, priority: int):
134
+ if not isinstance(priority, int):
135
+ raise TypeError("Priority must be an integer")
136
+
137
+ if priority < 0:
138
+ raise ValueError("Priority must be greater than 0")
139
+
132
140
  self.__priority = priority
133
141
 
142
+ def _set_sticky_state(self, sticky_state: Literal["None", "Temporary", "Permanent"]):
143
+ if sticky_state not in ["None", "Temporary", "Permanent"]:
144
+ raise ValueError("Sticky state must be one of 'None', 'Temporary', 'Permanent'")
145
+
146
+ self.__sticky_state = sticky_state
147
+
134
148
  def create_classification_order(self,
135
149
  name: str,
136
150
  instruction: str,
@@ -8,4 +8,4 @@ from .shuffling_selection import ShufflingSelection
8
8
  from .ab_test_selection import AbTestSelection
9
9
  from .static_selection import StaticSelection
10
10
  from .retrieval_modes import RetrievalMode
11
- from .effort_selection import EffortEstimationSelection
11
+ from .effort_selection import EffortSelection
@@ -3,9 +3,16 @@ from rapidata.api_client.models.effort_capped_selection import EffortCappedSelec
3
3
  from rapidata.rapidata_client.selection.retrieval_modes import RetrievalMode
4
4
 
5
5
 
6
- class EffortEstimationSelection(RapidataSelection):
7
-
6
+ class EffortSelection(RapidataSelection):
7
+ """
8
+ With this selection you can define the effort budget you have for a task.
9
+ As an example, you have a task that takes 10 seconds to complete. The effort budget would be 10.
8
10
 
11
+ Args:
12
+ effort_budget (int): The effort budget for the task.
13
+ retrieval_mode (RetrievalMode): The retrieval mode for the task.
14
+ max_iterations (int | None): The maximum number of iterations for the task.
15
+ """
9
16
  def __init__(self, effort_budget: int, retrieval_mode: RetrievalMode = RetrievalMode.Shuffled, max_iterations: int | None = None):
10
17
  self.effort_budget = effort_budget
11
18
  self.retrieval_mode = retrieval_mode
@@ -10,6 +10,7 @@ from rapidata.api_client.api.rapid_api import RapidApi
10
10
  from rapidata.api_client.api.leaderboard_api import LeaderboardApi
11
11
  from rapidata.api_client.api.validation_set_api import ValidationSetApi
12
12
  from rapidata.api_client.api.workflow_api import WorkflowApi
13
+ from rapidata.api_client.api.participant_api import ParticipantApi
13
14
  from rapidata.api_client.configuration import Configuration
14
15
  from rapidata.service.credential_manager import CredentialManager
15
16
  from rapidata.rapidata_client.api.rapidata_exception import RapidataApiClient
@@ -117,6 +118,10 @@ class OpenAPIService:
117
118
  @property
118
119
  def benchmark_api(self) -> BenchmarkApi:
119
120
  return BenchmarkApi(self.api_client)
121
+
122
+ @property
123
+ def participant_api(self) -> ParticipantApi:
124
+ return ParticipantApi(self.api_client)
120
125
 
121
126
  def _get_rapidata_package_version(self):
122
127
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: rapidata
3
- Version: 2.33.0
3
+ Version: 2.33.2
4
4
  Summary: Rapidata package containing the Rapidata Python Client to interact with the Rapidata Web API in an easy way.
5
5
  License: Apache-2.0
6
6
  Author: Rapidata AG
@@ -1,4 +1,4 @@
1
- rapidata/__init__.py,sha256=0vQS7SbFXnJfVsvrsivKMrHiaRZKLEFmlRBsAABKhpA,907
1
+ rapidata/__init__.py,sha256=w07T5zXe_HttCELcde6bMq0eSbESIQnAIm6zEPLdMg8,897
2
2
  rapidata/api_client/__init__.py,sha256=tNSCpLEs-AyEZGCAYz9MM8gDEpA4KJKcdNL-dcvAAw0,34404
3
3
  rapidata/api_client/api/__init__.py,sha256=qjLeeJSnuPF_ar_nLknjnOqStBQnoCiz-O_rfZUBZrE,1489
4
4
  rapidata/api_client/api/benchmark_api.py,sha256=fr4krx4f3yN--DswD_Prpz-KU81ooG3Lcy-30_KU0dw,129751
@@ -533,13 +533,15 @@ rapidata/api_client/models/workflow_state.py,sha256=5LAK1se76RCoozeVB6oxMPb8p_5b
533
533
  rapidata/api_client/models/zip_entry_file_wrapper.py,sha256=06CoNJD3x511K3rnSmkrwwhc9GbQxwxF-c0ldOyJbAs,4240
534
534
  rapidata/api_client/rest.py,sha256=rtIMcgINZOUaDFaJIinJkXRSddNJmXvMRMfgO2Ezk2o,10835
535
535
  rapidata/api_client_README.md,sha256=sj425Ki-qiO2DCHnJ06r9LjfnGir7UpgXEonMh-LFag,62126
536
- rapidata/rapidata_client/__init__.py,sha256=VXI4s0R3D6qZYveZaP7eliG-YIxmkCIwOzfZTS_MWZc,1235
536
+ rapidata/rapidata_client/__init__.py,sha256=CfkQxCdURXzJsVP6sxKmufze2u-IE_snG_G8NEkE_JM,1225
537
537
  rapidata/rapidata_client/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
538
538
  rapidata/rapidata_client/api/rapidata_exception.py,sha256=BIdmHRrJUGW-Mqhp1H_suemZaR6w9TgjWq-ZW5iUPdQ,3878
539
539
  rapidata/rapidata_client/benchmark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
540
540
  rapidata/rapidata_client/benchmark/leaderboard/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
541
541
  rapidata/rapidata_client/benchmark/leaderboard/rapidata_leaderboard.py,sha256=BDI0xJkTumbZy4dYqkzXy074jC9eaVWoJJDZ84uvatE,3906
542
- rapidata/rapidata_client/benchmark/rapidata_benchmark.py,sha256=CKMkP25_UzuT35ujJuKeZUgwHY5xfZP-BDcnig7wy7c,13634
542
+ rapidata/rapidata_client/benchmark/participant/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
543
+ rapidata/rapidata_client/benchmark/participant/_participant.py,sha256=yN82EWrZXYszsM8Ns0HRMXCTivltkyxcpGRK-cdT01Y,3683
544
+ rapidata/rapidata_client/benchmark/rapidata_benchmark.py,sha256=03MXV3FWSWfm2iyOifXt-43wruzIPQenNBPmGZGKdds,13328
543
545
  rapidata/rapidata_client/benchmark/rapidata_benchmark_manager.py,sha256=_0ot7zRj1de5admMO7NZ7qVSCkwTYu6xOZI5dUkITuI,4592
544
546
  rapidata/rapidata_client/country_codes/__init__.py,sha256=FB9Dcks44J6C6YBSYmTmNZ71tE130x6NO_3aLJ8fKzQ,40
545
547
  rapidata/rapidata_client/country_codes/country_codes.py,sha256=ePHqeb7y9DWQZAnddBzPx1puYBcrgUjdR2sbFijuFD8,283
@@ -563,7 +565,7 @@ rapidata/rapidata_client/datapoints/metadata/_select_words_metadata.py,sha256=T8
563
565
  rapidata/rapidata_client/demographic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
564
566
  rapidata/rapidata_client/demographic/demographic_manager.py,sha256=OaYrfrftU_p00X3BGlAjoky6_RPm0mhQwGnJsJSVca0,1203
565
567
  rapidata/rapidata_client/exceptions/__init__.py,sha256=2hbWRgjlCGuoLPVDloQmmH81uzm9F2OAX2iFGCJyRu8,59
566
- rapidata/rapidata_client/exceptions/failed_upload_exception.py,sha256=RZzNxnoKpKoFeHeT4fmRrGuDCHe4vcgBEP5pOwpfudk,665
568
+ rapidata/rapidata_client/exceptions/failed_upload_exception.py,sha256=BIG6y5TYGXz507CfH74h0H2vF6QeoB2L7VtleFqAppY,2673
567
569
  rapidata/rapidata_client/filter/__init__.py,sha256=j_Kfz_asNVxwp56SAN2saB7ZAHg3smL5_W2sSitmuJY,548
568
570
  rapidata/rapidata_client/filter/_base_filter.py,sha256=cPLl0ddWB8QU6Luspnub_KXiTEfEFOVBEdnxhJOjoWs,2269
569
571
  rapidata/rapidata_client/filter/age_filter.py,sha256=oRjGY65gE_X8oa0D0XRyvKAb4_Z6XOOaGTWykRSfLFA,739
@@ -587,22 +589,22 @@ rapidata/rapidata_client/logging/logger.py,sha256=9vULXUizGObQeqMY-CryiAQsq8xDZw
587
589
  rapidata/rapidata_client/logging/output_manager.py,sha256=AmSVZ2emVW5UWgOiNqkXNVRItsvd5Ox0hsIoZQhYYYo,653
588
590
  rapidata/rapidata_client/order/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
589
591
  rapidata/rapidata_client/order/_rapidata_dataset.py,sha256=CYeDZJqHN3UWYvz5PSp8jAZ1NQIhAld467AolkVf24A,17438
590
- rapidata/rapidata_client/order/_rapidata_order_builder.py,sha256=fEOm0cbYHceSq2KCujjV5V3o-yO9gzZQkHXUAdm51T4,11569
591
- rapidata/rapidata_client/order/rapidata_order.py,sha256=E1HhZ6c7Nhjj_marJhW7JrNfjsIolP-few7Oh8r88Ns,12536
592
- rapidata/rapidata_client/order/rapidata_order_manager.py,sha256=wA4VsauGCszBgDNPsCvxt9UUElKmUQMca3OLkjDP0E8,37398
592
+ rapidata/rapidata_client/order/_rapidata_order_builder.py,sha256=W1sdPRJ_p24Skfsnv9r8zldPRjkzsJopX_dCoge5qtI,12363
593
+ rapidata/rapidata_client/order/rapidata_order.py,sha256=6YOAazdEk82sf8o3pal3iUqsKWN2nwy3BdNBgghkiU4,12783
594
+ rapidata/rapidata_client/order/rapidata_order_manager.py,sha256=vq0wG5BSGeYB2LO_fwzOrrR40mKUmkcMPeBZF1pwgoY,38055
593
595
  rapidata/rapidata_client/order/rapidata_results.py,sha256=ZY0JyHMBZlR6-t6SqKt2OLEO6keR_KvKg9Wk6_I29x4,8653
594
596
  rapidata/rapidata_client/rapidata_client.py,sha256=jTkpu0YcizoxAzbfNdnY1S0xXX6Q0KEMi8boo0f2F5c,4274
595
597
  rapidata/rapidata_client/referee/__init__.py,sha256=q0Hv9nmfEpyChejtyMLT8hWKL0vTTf_UgUXPYNJ-H6M,153
596
598
  rapidata/rapidata_client/referee/_base_referee.py,sha256=MdFOhdxt3sRnWXLDKLJZKFdVpjBGn9jypPnWWQ6msQA,496
597
599
  rapidata/rapidata_client/referee/_early_stopping_referee.py,sha256=ULbokQZ91wc9D_20qHUhe55D28D9eTY1J1cMp_-oIDc,2088
598
600
  rapidata/rapidata_client/referee/_naive_referee.py,sha256=PVR8uy8hfRjr2DBzdOFyvou6S3swNc-4UvgjhO-09TU,1209
599
- rapidata/rapidata_client/selection/__init__.py,sha256=vC2XbykShj_VW1uz5IZfQQXjgeIzzdYqC3n0K2c8cIs,574
601
+ rapidata/rapidata_client/selection/__init__.py,sha256=1QsMUieM-oleyOXX2mOhP36_P4h1foIIr3rW8WT8Eg0,564
600
602
  rapidata/rapidata_client/selection/_base_selection.py,sha256=tInbWOgxT_4CHkr5QHoG55ZcUi1ZmfcEGIwLKKCnN20,147
601
603
  rapidata/rapidata_client/selection/ab_test_selection.py,sha256=fymubkVMawqJmYp9FKzWXTki9tgBgoj3cOP8rG9oOd0,1284
602
604
  rapidata/rapidata_client/selection/capped_selection.py,sha256=iWhbM1LcayhgFm7oKADXCaKHGdiQIupI0jbYuuEVM2A,1184
603
605
  rapidata/rapidata_client/selection/conditional_validation_selection.py,sha256=OcNYSBi19vIcy2bLDmj9cv-gg5LFSvdjc3tooV0Z7Oc,2842
604
606
  rapidata/rapidata_client/selection/demographic_selection.py,sha256=l4vnNbzlf9ED6BKqN4k5cZXShkXu9L1C5DtO78Vwr5M,1454
605
- rapidata/rapidata_client/selection/effort_selection.py,sha256=uS8ctK2o-40Blu02jB5w7i8WtRSw21LhXszkkq30pM8,858
607
+ rapidata/rapidata_client/selection/effort_selection.py,sha256=1p4CtwVJIyf4HZ-mPn0ohloe9dBxJFLhStG6jQNuxnE,1266
606
608
  rapidata/rapidata_client/selection/labeling_selection.py,sha256=0X8DJHgwvgwekEbzVxWPyzZ1QAPcULZNDjfLQYUlcLM,1348
607
609
  rapidata/rapidata_client/selection/rapidata_selections.py,sha256=lgwRivdzSnCri3K-Z-ngqR5RXwTl7iYuKTRpuyl5UMY,1853
608
610
  rapidata/rapidata_client/selection/retrieval_modes.py,sha256=J2jzPEJ4wdllm_RnU_FYPh3eO3xeZS7QUk-NXgTB2u4,668
@@ -642,8 +644,8 @@ rapidata/rapidata_client/workflow/_timestamp_workflow.py,sha256=tPi2zu1-SlE_ppbG
642
644
  rapidata/service/__init__.py,sha256=s9bS1AJZaWIhLtJX_ZA40_CK39rAAkwdAmymTMbeWl4,68
643
645
  rapidata/service/credential_manager.py,sha256=pUEEtp6VrFWYhfUUtyqmS0AlRqe2Y0kFkY6o22IT4KM,8682
644
646
  rapidata/service/local_file_service.py,sha256=pgorvlWcx52Uh3cEG6VrdMK_t__7dacQ_5AnfY14BW8,877
645
- rapidata/service/openapi_service.py,sha256=xoGBACpUhG0H-tadSBa8A91LHyfI7n-FCT2JlrERqco,5221
646
- rapidata-2.33.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
647
- rapidata-2.33.0.dist-info/METADATA,sha256=KPFe8uDzUQEVyva3VaRLK4LU350GuM9DEUNWNLEfFxI,1264
648
- rapidata-2.33.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
649
- rapidata-2.33.0.dist-info/RECORD,,
647
+ rapidata/service/openapi_service.py,sha256=v2fhPbHmD0J11ZRZY6f80PdIdGwpRFlbfMH9t8Ypg5A,5403
648
+ rapidata-2.33.2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
649
+ rapidata-2.33.2.dist-info/METADATA,sha256=YkByWAPnAWFN9E9m-9KbNDsgj9kV2kXuQcqA7raN2N0,1264
650
+ rapidata-2.33.2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
651
+ rapidata-2.33.2.dist-info/RECORD,,