ййй
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
|
||||
import yaml
|
||||
|
||||
|
||||
@dataclass(slots=True, frozen=True)
|
||||
class DocsGoldenCase:
|
||||
case_id: str
|
||||
query: str
|
||||
expected_intent: str
|
||||
expected_sub_intent: str
|
||||
expected_layers: tuple[str, ...]
|
||||
rows: tuple[dict, ...]
|
||||
|
||||
|
||||
def load_cases(path: Path) -> list[DocsGoldenCase]:
|
||||
payload = yaml.safe_load(path.read_text(encoding="utf-8")) or {}
|
||||
items = payload.get("cases") or []
|
||||
return [
|
||||
DocsGoldenCase(
|
||||
case_id=str(item["id"]),
|
||||
query=str(item["query"]),
|
||||
expected_intent=str(item["expected_intent"]),
|
||||
expected_sub_intent=str(item["expected_sub_intent"]),
|
||||
expected_layers=tuple(item.get("expected_layers") or ()),
|
||||
rows=tuple(item.get("rows") or ()),
|
||||
)
|
||||
for item in items
|
||||
]
|
||||
Reference in New Issue
Block a user