Spaces:
Sleeping
Sleeping
File size: 1,113 Bytes
5db30ac | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | from __future__ import annotations
import json
from typing import Iterator
from elbench.loaders.base import BaseLoader
from elbench.loaders.normalizer import RecordNormalizer
from elbench.registry import ResolvedRegistryItem
from elbench.schemas.evaluation import RawRecord, Sample
class JsonlLoader(BaseLoader):
def __init__(self) -> None:
self._normalizer = RecordNormalizer()
def iter_raw_records(self, item: ResolvedRegistryItem) -> Iterator[RawRecord]:
with item.path.open("r", encoding="utf-8") as handle:
for row_index, line in enumerate(handle, start=1):
if not line.strip():
continue
yield RawRecord(
source_path=str(item.path),
source_file=item.entry.canonical_name,
row_index=row_index,
record=json.loads(line),
)
def iter_samples(self, item: ResolvedRegistryItem) -> Iterator[Sample]:
for raw_record in self.iter_raw_records(item):
yield self._normalizer.normalize(item, raw_record)
|