File size: 1,071 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
33
from __future__ import annotations

from elbench.loaders.base import BaseLoader
from elbench.loaders.basic_education_yaml_loader import BasicEducationYamlLoader
from elbench.loaders.jsonl_loader import JsonlLoader
from elbench.loaders.general_capability_loader import (
    AIMEJsonlLoader,
    CEvalJsonlLoader,
    IFEvalJsonlLoader,
    MATH500JsonlLoader,
    MMLUProJsonlLoader,
)
from elbench.loaders.xlsx_loader import XlsxLoader


class LoaderFactory:
    _LOADERS: dict[str, type[BaseLoader]] = {
        "basic_education_yaml": BasicEducationYamlLoader,
        "jsonl": JsonlLoader,
        "aime_jsonl": AIMEJsonlLoader,
        "ceval_jsonl": CEvalJsonlLoader,
        "ifeval_jsonl": IFEvalJsonlLoader,
        "math_500_jsonl": MATH500JsonlLoader,
        "mmlu_pro_jsonl": MMLUProJsonlLoader,
        "xlsx": XlsxLoader,
    }

    @classmethod
    def create(cls, loader_name: str) -> BaseLoader:
        if loader_name not in cls._LOADERS:
            raise ValueError(f"Unsupported loader: {loader_name}")
        return cls._LOADERS[loader_name]()