Skip to content

Commit 2a76ce7

Browse files
committed
rename
1 parent d0e15f6 commit 2a76ce7

File tree

4 files changed

+27
-28
lines changed

4 files changed

+27
-28
lines changed

packages/traceloop-sdk/tests/evaluator/test_evaluator.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import pytest
2-
from traceloop.sdk.evaluator.evaluator import validate_task_output
2+
from traceloop.sdk.evaluator.evaluator import validate_and_normalize_task_output
33
from traceloop.sdk.evaluator.config import EvaluatorDetails
44

55

@@ -12,7 +12,7 @@ def test_validate_task_output_with_no_evaluators(self):
1212
evaluators = []
1313

1414
# Should not raise any exception
15-
validate_task_output(task_output, evaluators)
15+
validate_and_normalize_task_output(task_output, evaluators)
1616

1717
def test_validate_task_output_with_evaluators_no_required_fields(self):
1818
"""Test that validation passes when evaluators have no required fields"""
@@ -23,7 +23,7 @@ def test_validate_task_output_with_evaluators_no_required_fields(self):
2323
]
2424

2525
# Should not raise any exception
26-
validate_task_output(task_output, evaluators)
26+
validate_and_normalize_task_output(task_output, evaluators)
2727

2828
def test_validate_task_output_with_valid_output(self):
2929
"""Test that validation passes when all required fields are present"""
@@ -37,7 +37,7 @@ def test_validate_task_output_with_valid_output(self):
3737
]
3838

3939
# Should not raise any exception
40-
validate_task_output(task_output, evaluators)
40+
validate_and_normalize_task_output(task_output, evaluators)
4141

4242
def test_validate_task_output_missing_single_field(self):
4343
"""Test that validation fails when a single required field is missing"""
@@ -47,7 +47,7 @@ def test_validate_task_output_missing_single_field(self):
4747
]
4848

4949
with pytest.raises(ValueError) as exc_info:
50-
validate_task_output(task_output, evaluators)
50+
validate_and_normalize_task_output(task_output, evaluators)
5151

5252
error_message = str(exc_info.value)
5353
assert "Task output missing required fields for evaluators:" in error_message
@@ -70,7 +70,7 @@ def test_validate_task_output_missing_multiple_fields_single_evaluator(self):
7070
]
7171

7272
with pytest.raises(ValueError) as exc_info:
73-
validate_task_output(task_output, evaluators)
73+
validate_and_normalize_task_output(task_output, evaluators)
7474

7575
error_message = str(exc_info.value)
7676
assert "relevance-checker requires:" in error_message
@@ -91,7 +91,7 @@ def test_validate_task_output_missing_fields_multiple_evaluators(self):
9191
]
9292

9393
with pytest.raises(ValueError) as exc_info:
94-
validate_task_output(task_output, evaluators)
94+
validate_and_normalize_task_output(task_output, evaluators)
9595

9696
error_message = str(exc_info.value)
9797
assert "pii-detector requires:" in error_message
@@ -113,7 +113,7 @@ def test_validate_task_output_partial_match(self):
113113
]
114114

115115
with pytest.raises(ValueError) as exc_info:
116-
validate_task_output(task_output, evaluators)
116+
validate_and_normalize_task_output(task_output, evaluators)
117117

118118
error_message = str(exc_info.value)
119119
# Should only mention the failing evaluator
@@ -128,7 +128,7 @@ def test_validate_task_output_empty_task_output(self):
128128
]
129129

130130
with pytest.raises(ValueError) as exc_info:
131-
validate_task_output(task_output, evaluators)
131+
validate_and_normalize_task_output(task_output, evaluators)
132132

133133
error_message = str(exc_info.value)
134134
assert "Task output contains: []" in error_message
@@ -147,7 +147,7 @@ def test_validate_task_output_with_extra_fields(self):
147147
]
148148

149149
# Should not raise any exception - extra fields are allowed
150-
validate_task_output(task_output, evaluators)
150+
validate_and_normalize_task_output(task_output, evaluators)
151151

152152
def test_validate_task_output_case_sensitive_field_names(self):
153153
"""Test that field name matching is case-sensitive"""
@@ -157,7 +157,7 @@ def test_validate_task_output_case_sensitive_field_names(self):
157157
]
158158

159159
with pytest.raises(ValueError) as exc_info:
160-
validate_task_output(task_output, evaluators)
160+
validate_and_normalize_task_output(task_output, evaluators)
161161

162162
error_message = str(exc_info.value)
163163
assert "pii-detector requires:" in error_message
@@ -177,7 +177,7 @@ def test_validate_task_output_with_evaluator_config(self):
177177
]
178178

179179
# Should not raise any exception - config shouldn't affect validation
180-
validate_task_output(task_output, evaluators)
180+
validate_and_normalize_task_output(task_output, evaluators)
181181

182182
def test_validate_task_output_mixed_evaluators(self):
183183
"""Test validation with a mix of evaluators with and without required fields"""
@@ -193,7 +193,7 @@ def test_validate_task_output_mixed_evaluators(self):
193193
]
194194

195195
with pytest.raises(ValueError) as exc_info:
196-
validate_task_output(task_output, evaluators)
196+
validate_and_normalize_task_output(task_output, evaluators)
197197

198198
error_message = str(exc_info.value)
199199
# Should only mention failing evaluator
@@ -215,7 +215,7 @@ def test_validate_task_output_duplicate_required_fields(self):
215215
]
216216

217217
with pytest.raises(ValueError) as exc_info:
218-
validate_task_output(task_output, evaluators)
218+
validate_and_normalize_task_output(task_output, evaluators)
219219

220220
error_message = str(exc_info.value)
221221
assert "pii-detector requires:" in error_message

packages/traceloop-sdk/tests/evaluator/test_field_mapping.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ class TestIntegrationWithValidateTaskOutput:
328328

329329
def test_validate_with_synonym_mapping(self):
330330
"""Test that validate_task_output uses synonym mapping"""
331-
from traceloop.sdk.evaluator.evaluator import validate_task_output
331+
from traceloop.sdk.evaluator.evaluator import validate_and_normalize_task_output
332332
from traceloop.sdk.evaluator.config import EvaluatorDetails
333333

334334
# User returns "answer" but evaluator needs "completion"
@@ -341,15 +341,15 @@ def test_validate_with_synonym_mapping(self):
341341
]
342342

343343
# Should not raise - synonyms should be mapped
344-
normalized = validate_task_output(task_output, evaluators)
344+
normalized = validate_and_normalize_task_output(task_output, evaluators)
345345
assert "completion" in normalized
346346
assert "question" in normalized
347347
assert normalized["completion"] == "Paris"
348348
assert normalized["question"] == "What is the capital?"
349349

350350
def test_validate_fails_with_helpful_message(self):
351351
"""Test that validation failure includes synonym suggestions"""
352-
from traceloop.sdk.evaluator.evaluator import validate_task_output
352+
from traceloop.sdk.evaluator.evaluator import validate_and_normalize_task_output
353353
from traceloop.sdk.evaluator.config import EvaluatorDetails
354354

355355
task_output = {"wrong_field": "value"}
@@ -361,7 +361,7 @@ def test_validate_fails_with_helpful_message(self):
361361
]
362362

363363
with pytest.raises(ValueError) as exc_info:
364-
validate_task_output(task_output, evaluators)
364+
validate_and_normalize_task_output(task_output, evaluators)
365365

366366
error_message = str(exc_info.value)
367367
assert "test-evaluator requires:" in error_message
@@ -370,7 +370,7 @@ def test_validate_fails_with_helpful_message(self):
370370

371371
def test_validate_with_context_to_reference_mapping(self):
372372
"""Test specific case of context mapping to reference"""
373-
from traceloop.sdk.evaluator.evaluator import validate_task_output
373+
from traceloop.sdk.evaluator.evaluator import validate_and_normalize_task_output
374374
from traceloop.sdk.evaluator.config import EvaluatorDetails
375375

376376
task_output = {
@@ -385,14 +385,14 @@ def test_validate_with_context_to_reference_mapping(self):
385385
)
386386
]
387387

388-
normalized = validate_task_output(task_output, evaluators)
388+
normalized = validate_and_normalize_task_output(task_output, evaluators)
389389
assert normalized["completion"] == "Yes"
390390
assert normalized["question"] == "Is it true?"
391391
assert normalized["reference"] == "The sky is blue"
392392

393393
def test_validate_with_trajectory_fields(self):
394394
"""Test mapping for trajectory fields used in agent evaluators"""
395-
from traceloop.sdk.evaluator.evaluator import validate_task_output
395+
from traceloop.sdk.evaluator.evaluator import validate_and_normalize_task_output
396396
from traceloop.sdk.evaluator.config import EvaluatorDetails
397397

398398
task_output = {
@@ -406,6 +406,6 @@ def test_validate_with_trajectory_fields(self):
406406
)
407407
]
408408

409-
normalized = validate_task_output(task_output, evaluators)
409+
normalized = validate_and_normalize_task_output(task_output, evaluators)
410410
assert normalized["trajectory_prompts"] == "prompt1, prompt2"
411411
assert normalized["trajectory_completions"] == "comp1, comp2"

packages/traceloop-sdk/traceloop/sdk/evaluator/evaluator.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import httpx
22
from typing import Dict, Optional, Any, List
3+
from .field_mapping import normalize_task_output, get_field_suggestions, format_field_help
34

45
from .model import (
56
InputExtractor,
@@ -145,7 +146,7 @@ async def trigger_experiment_evaluator(
145146
return execute_response.execution_id
146147

147148

148-
def validate_task_output(
149+
def validate_and_normalize_task_output(
149150
task_output: Dict[str, Any],
150151
evaluators: List[EvaluatorDetails],
151152
) -> Dict[str, Any]:
@@ -163,8 +164,6 @@ def validate_task_output(
163164
Raises:
164165
ValueError: If task output is missing required fields for any evaluator (even after synonym mapping)
165166
"""
166-
from .field_mapping import normalize_task_output, get_field_suggestions, format_field_help
167-
168167
if not evaluators:
169168
return task_output
170169

packages/traceloop-sdk/traceloop/sdk/experiment/experiment.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from typing import Any, List, Callable, Optional, Tuple, Dict, Awaitable, Union
66
from traceloop.sdk.client.http import HTTPClient
77
from traceloop.sdk.datasets.datasets import Datasets
8-
from traceloop.sdk.evaluator.evaluator import Evaluator, validate_task_output
8+
from traceloop.sdk.evaluator.evaluator import Evaluator, validate_and_normalize_task_output
99
from traceloop.sdk.experiment.model import (
1010
InitExperimentRequest,
1111
ExperimentInitResponse,
@@ -168,7 +168,7 @@ async def run_single_row(row: Optional[Dict[str, Any]]) -> TaskResponse:
168168

169169
# Validate task output with EvaluatorDetails and normalize field names using synonyms
170170
if evaluators_to_validate:
171-
task_result = validate_task_output(task_result, evaluators_to_validate)
171+
task_result = validate_and_normalize_task_output(task_result, evaluators_to_validate)
172172

173173
task_id = self._create_task(
174174
experiment_slug=experiment_slug,
@@ -484,7 +484,7 @@ async def run_single_row(row: Optional[Dict[str, Any]]) -> TaskResult:
484484
# Validate task output schema and normalize field names using synonyms
485485
if evaluators_to_validate:
486486
try:
487-
task_output = validate_task_output(task_output, evaluators_to_validate)
487+
task_output = validate_and_normalize_task_output(task_output, evaluators_to_validate)
488488
except ValueError as validation_error:
489489
print(f"\033[91m❌ Task validation failed: {str(validation_error)}\033[0m")
490490
raise ValueError(str(validation_error))

0 commit comments

Comments
 (0)