rapidata 2.37.0__py3-none-any.whl → 2.39.0__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 +3 -4
- rapidata/api_client/__init__.py +4 -5
- rapidata/api_client/api/benchmark_api.py +289 -3
- rapidata/api_client/api/leaderboard_api.py +35 -1
- rapidata/api_client/api/participant_api.py +289 -3
- rapidata/api_client/api/validation_set_api.py +119 -400
- rapidata/api_client/models/__init__.py +4 -5
- rapidata/api_client/models/ab_test_selection_a_inner.py +1 -1
- rapidata/api_client/models/compare_workflow_model1.py +1 -8
- rapidata/api_client/models/conditional_validation_selection.py +4 -9
- rapidata/api_client/models/confidence_interval.py +98 -0
- rapidata/api_client/models/create_simple_pipeline_model_pipeline_steps_inner.py +8 -22
- rapidata/api_client/models/get_standing_by_id_result.py +7 -2
- rapidata/api_client/models/get_validation_set_by_id_result.py +4 -2
- rapidata/api_client/models/simple_workflow_model1.py +1 -8
- rapidata/api_client/models/standing_by_leaderboard.py +10 -4
- rapidata/api_client/models/update_benchmark_model.py +87 -0
- rapidata/api_client/models/update_participant_model.py +87 -0
- rapidata/api_client/models/update_validation_set_model.py +93 -0
- rapidata/api_client/models/validation_chance.py +20 -3
- rapidata/api_client/models/validation_set_model.py +5 -42
- rapidata/api_client_README.md +7 -7
- rapidata/rapidata_client/__init__.py +1 -4
- rapidata/rapidata_client/api/{rapidata_exception.py → rapidata_api_client.py} +119 -2
- rapidata/rapidata_client/benchmark/leaderboard/rapidata_leaderboard.py +88 -46
- rapidata/rapidata_client/benchmark/participant/_participant.py +26 -9
- rapidata/rapidata_client/benchmark/rapidata_benchmark.py +310 -210
- rapidata/rapidata_client/benchmark/rapidata_benchmark_manager.py +134 -75
- rapidata/rapidata_client/config/__init__.py +3 -0
- rapidata/rapidata_client/config/logger.py +135 -0
- rapidata/rapidata_client/config/logging_config.py +58 -0
- rapidata/rapidata_client/config/managed_print.py +6 -0
- rapidata/rapidata_client/config/order_config.py +14 -0
- rapidata/rapidata_client/config/rapidata_config.py +15 -10
- rapidata/rapidata_client/config/tracer.py +130 -0
- rapidata/rapidata_client/config/upload_config.py +14 -0
- rapidata/rapidata_client/datapoints/_datapoint.py +1 -1
- rapidata/rapidata_client/datapoints/assets/__init__.py +1 -0
- rapidata/rapidata_client/datapoints/assets/_base_asset.py +2 -0
- rapidata/rapidata_client/datapoints/assets/_media_asset.py +1 -1
- rapidata/rapidata_client/datapoints/assets/_sessions.py +2 -2
- rapidata/rapidata_client/datapoints/assets/_text_asset.py +2 -2
- rapidata/rapidata_client/datapoints/assets/data_type_enum.py +1 -1
- rapidata/rapidata_client/datapoints/metadata/_media_asset_metadata.py +9 -8
- rapidata/rapidata_client/datapoints/metadata/_prompt_metadata.py +1 -2
- rapidata/rapidata_client/demographic/demographic_manager.py +16 -14
- rapidata/rapidata_client/filter/_base_filter.py +11 -5
- rapidata/rapidata_client/filter/age_filter.py +9 -3
- rapidata/rapidata_client/filter/and_filter.py +20 -5
- rapidata/rapidata_client/filter/campaign_filter.py +7 -1
- rapidata/rapidata_client/filter/country_filter.py +8 -2
- rapidata/rapidata_client/filter/custom_filter.py +9 -3
- rapidata/rapidata_client/filter/gender_filter.py +9 -3
- rapidata/rapidata_client/filter/language_filter.py +12 -5
- rapidata/rapidata_client/filter/models/age_group.py +4 -4
- rapidata/rapidata_client/filter/models/gender.py +4 -2
- rapidata/rapidata_client/filter/new_user_filter.py +3 -4
- rapidata/rapidata_client/filter/not_filter.py +17 -5
- rapidata/rapidata_client/filter/or_filter.py +20 -5
- rapidata/rapidata_client/filter/rapidata_filters.py +12 -9
- rapidata/rapidata_client/filter/response_count_filter.py +6 -0
- rapidata/rapidata_client/filter/user_score_filter.py +17 -5
- rapidata/rapidata_client/order/_rapidata_dataset.py +45 -17
- rapidata/rapidata_client/order/_rapidata_order_builder.py +19 -13
- rapidata/rapidata_client/order/rapidata_order.py +60 -48
- rapidata/rapidata_client/order/rapidata_order_manager.py +231 -197
- rapidata/rapidata_client/order/rapidata_results.py +71 -57
- rapidata/rapidata_client/rapidata_client.py +36 -23
- rapidata/rapidata_client/referee/__init__.py +1 -1
- rapidata/rapidata_client/referee/_base_referee.py +3 -1
- rapidata/rapidata_client/referee/_early_stopping_referee.py +2 -2
- rapidata/rapidata_client/selection/_base_selection.py +6 -0
- rapidata/rapidata_client/selection/ab_test_selection.py +7 -3
- rapidata/rapidata_client/selection/capped_selection.py +2 -2
- rapidata/rapidata_client/selection/conditional_validation_selection.py +12 -6
- rapidata/rapidata_client/selection/demographic_selection.py +9 -6
- rapidata/rapidata_client/selection/rapidata_selections.py +11 -8
- rapidata/rapidata_client/selection/shuffling_selection.py +5 -5
- rapidata/rapidata_client/selection/static_selection.py +5 -10
- rapidata/rapidata_client/selection/validation_selection.py +9 -5
- rapidata/rapidata_client/settings/_rapidata_setting.py +8 -0
- rapidata/rapidata_client/settings/alert_on_fast_response.py +8 -5
- rapidata/rapidata_client/settings/allow_neither_both.py +1 -0
- rapidata/rapidata_client/settings/custom_setting.py +3 -2
- rapidata/rapidata_client/settings/free_text_minimum_characters.py +9 -4
- rapidata/rapidata_client/settings/models/translation_behaviour_options.py +3 -2
- rapidata/rapidata_client/settings/no_shuffle.py +4 -2
- rapidata/rapidata_client/settings/play_video_until_the_end.py +7 -4
- rapidata/rapidata_client/settings/rapidata_settings.py +4 -3
- rapidata/rapidata_client/settings/translation_behaviour.py +7 -5
- rapidata/rapidata_client/validation/rapidata_validation_set.py +23 -17
- rapidata/rapidata_client/validation/rapids/box.py +3 -1
- rapidata/rapidata_client/validation/rapids/rapids.py +7 -1
- rapidata/rapidata_client/validation/rapids/rapids_manager.py +174 -141
- rapidata/rapidata_client/validation/validation_set_manager.py +285 -268
- rapidata/rapidata_client/workflow/__init__.py +1 -1
- rapidata/rapidata_client/workflow/_base_workflow.py +6 -1
- rapidata/rapidata_client/workflow/_classify_workflow.py +6 -0
- rapidata/rapidata_client/workflow/_compare_workflow.py +6 -0
- rapidata/rapidata_client/workflow/_draw_workflow.py +6 -0
- rapidata/rapidata_client/workflow/_evaluation_workflow.py +6 -0
- rapidata/rapidata_client/workflow/_free_text_workflow.py +6 -0
- rapidata/rapidata_client/workflow/_locate_workflow.py +6 -0
- rapidata/rapidata_client/workflow/_ranking_workflow.py +12 -0
- rapidata/rapidata_client/workflow/_select_words_workflow.py +6 -0
- rapidata/rapidata_client/workflow/_timestamp_workflow.py +6 -0
- rapidata/service/__init__.py +1 -1
- rapidata/service/credential_manager.py +1 -1
- rapidata/service/local_file_service.py +9 -8
- rapidata/service/openapi_service.py +2 -2
- {rapidata-2.37.0.dist-info → rapidata-2.39.0.dist-info}/METADATA +4 -1
- {rapidata-2.37.0.dist-info → rapidata-2.39.0.dist-info}/RECORD +114 -107
- rapidata/rapidata_client/logging/__init__.py +0 -2
- rapidata/rapidata_client/logging/logger.py +0 -122
- rapidata/rapidata_client/logging/output_manager.py +0 -20
- {rapidata-2.37.0.dist-info → rapidata-2.39.0.dist-info}/LICENSE +0 -0
- {rapidata-2.37.0.dist-info → rapidata-2.39.0.dist-info}/WHEEL +0 -0
|
@@ -3,15 +3,17 @@ import time
|
|
|
3
3
|
from tqdm import tqdm
|
|
4
4
|
|
|
5
5
|
from rapidata.rapidata_client.datapoints.assets import MediaAsset
|
|
6
|
-
from rapidata.rapidata_client.
|
|
7
|
-
from rapidata.rapidata_client.logging.output_manager import RapidataOutputManager
|
|
6
|
+
from rapidata.rapidata_client.config import logger
|
|
8
7
|
from rapidata.api_client.models.create_sample_model import CreateSampleModel
|
|
9
8
|
from rapidata.service.openapi_service import OpenAPIService
|
|
10
9
|
from rapidata.rapidata_client.config.rapidata_config import rapidata_config
|
|
11
|
-
from rapidata.rapidata_client.api.
|
|
10
|
+
from rapidata.rapidata_client.api.rapidata_api_client import (
|
|
12
11
|
suppress_rapidata_error_logging,
|
|
13
12
|
)
|
|
14
13
|
|
|
14
|
+
# Add OpenTelemetry context imports for thread propagation
|
|
15
|
+
from opentelemetry import context as otel_context
|
|
16
|
+
|
|
15
17
|
|
|
16
18
|
class BenchmarkParticipant:
|
|
17
19
|
def __init__(self, name: str, id: str, openapi_service: OpenAPIService):
|
|
@@ -42,7 +44,7 @@ class BenchmarkParticipant:
|
|
|
42
44
|
urls = [asset.path]
|
|
43
45
|
|
|
44
46
|
last_exception = None
|
|
45
|
-
for attempt in range(rapidata_config.
|
|
47
|
+
for attempt in range(rapidata_config.upload.maxRetries):
|
|
46
48
|
try:
|
|
47
49
|
with suppress_rapidata_error_logging():
|
|
48
50
|
self.__openapi_service.participant_api.participant_participant_id_sample_post(
|
|
@@ -56,7 +58,7 @@ class BenchmarkParticipant:
|
|
|
56
58
|
|
|
57
59
|
except Exception as e:
|
|
58
60
|
last_exception = e
|
|
59
|
-
if attempt < rapidata_config.
|
|
61
|
+
if attempt < rapidata_config.upload.maxRetries - 1:
|
|
60
62
|
# Exponential backoff: wait 1s, then 2s, then 4s
|
|
61
63
|
retry_delay = 2**attempt
|
|
62
64
|
time.sleep(retry_delay)
|
|
@@ -64,7 +66,7 @@ class BenchmarkParticipant:
|
|
|
64
66
|
logger.debug(
|
|
65
67
|
"Retrying %s of %s...",
|
|
66
68
|
attempt + 1,
|
|
67
|
-
rapidata_config.
|
|
69
|
+
rapidata_config.upload.maxRetries,
|
|
68
70
|
)
|
|
69
71
|
|
|
70
72
|
logger.error(f"Upload failed for {identifier}. Error: {str(last_exception)}")
|
|
@@ -85,16 +87,31 @@ class BenchmarkParticipant:
|
|
|
85
87
|
Returns:
|
|
86
88
|
tuple[list[str], list[str]]: Lists of successful and failed identifiers
|
|
87
89
|
"""
|
|
90
|
+
|
|
91
|
+
def upload_with_context(
|
|
92
|
+
context: otel_context.Context, asset: MediaAsset, identifier: str
|
|
93
|
+
) -> tuple[MediaAsset | None, MediaAsset | None]:
|
|
94
|
+
"""Wrapper function that runs _process_single_sample_upload with the provided context."""
|
|
95
|
+
token = otel_context.attach(context)
|
|
96
|
+
try:
|
|
97
|
+
return self._process_single_sample_upload(asset, identifier)
|
|
98
|
+
finally:
|
|
99
|
+
otel_context.detach(token)
|
|
100
|
+
|
|
88
101
|
successful_uploads: list[MediaAsset] = []
|
|
89
102
|
failed_uploads: list[MediaAsset] = []
|
|
90
103
|
total_uploads = len(assets)
|
|
91
104
|
|
|
105
|
+
# Capture the current OpenTelemetry context before creating threads
|
|
106
|
+
current_context = otel_context.get_current()
|
|
107
|
+
|
|
92
108
|
with ThreadPoolExecutor(
|
|
93
|
-
max_workers=rapidata_config.
|
|
109
|
+
max_workers=rapidata_config.upload.maxWorkers
|
|
94
110
|
) as executor:
|
|
95
111
|
futures = [
|
|
96
112
|
executor.submit(
|
|
97
|
-
|
|
113
|
+
upload_with_context,
|
|
114
|
+
current_context,
|
|
98
115
|
asset,
|
|
99
116
|
identifier,
|
|
100
117
|
)
|
|
@@ -104,7 +121,7 @@ class BenchmarkParticipant:
|
|
|
104
121
|
with tqdm(
|
|
105
122
|
total=total_uploads,
|
|
106
123
|
desc="Uploading media",
|
|
107
|
-
disable=
|
|
124
|
+
disable=rapidata_config.logging.silent_mode,
|
|
108
125
|
) as pbar:
|
|
109
126
|
for future in as_completed(futures):
|
|
110
127
|
try:
|