Skip to content

Commit 99cb1f0

Browse files
authored
fix: update type hint for OneOrMoreScores (#444)
fixes #443
1 parent 6040b71 commit 99cb1f0

2 files changed

Lines changed: 21 additions & 2 deletions

File tree

py/src/braintrust/framework.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ class EvalScorerArgs(SerializableDataClass, Generic[Input, Output, Expected]):
216216
metadata: Metadata | None = None
217217

218218

219-
OneOrMoreScores = float | int | bool | None | ScoreLike | list[ScoreLike]
219+
OneOrMoreScores = float | int | bool | None | ScoreLike | Sequence[ScoreLike]
220220
OneOrMoreClassifications = None | Classification | Mapping[str, Any] | list[Classification | Mapping[str, Any]]
221221

222222

py/src/braintrust/type_tests/test_autoevals_scorers.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import pytest
44
from autoevals import Levenshtein # type: ignore[import-untyped]
5-
from braintrust.framework import Eval, EvalAsync, EvalCase, EvalScorer
5+
from braintrust.framework import Eval, EvalAsync, EvalCase, EvalScorer, Score
66

77

88
def accepts_autoevals_scorer(
@@ -36,6 +36,25 @@ async def autoevals_task_async(input: str) -> str:
3636
]
3737

3838

39+
def test_eval_accepts_autoevals_scorers_typed_sequence():
40+
def scorer(input: str, output: str, expected: str | None = None) -> list[Score]:
41+
return [Score(name="match", score=1.0)]
42+
43+
typed_scorer: EvalScorer[str, str, str] = scorer
44+
45+
result = Eval(
46+
"test-autoevals-scorers",
47+
data=autoevals_data,
48+
task=autoevals_task,
49+
scores=[typed_scorer],
50+
no_send_logs=True,
51+
)
52+
53+
score = result.results[0].scores["match"]
54+
assert score is not None
55+
assert score > 0
56+
57+
3958
def test_eval_accepts_autoevals_scorers_typed():
4059
result = Eval(
4160
"test-autoevals-scorers",

0 commit comments

Comments
 (0)