File size: 1,419 Bytes
d187930
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1437ca9
d187930
1437ca9
 
d187930
 
 
 
 
 
 
 
 
 
 
 
 
 
30b8f34
d187930
 
 
 
30b8f34
 
 
 
 
 
d187930
30b8f34
d187930
 
30b8f34
 
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from __future__ import annotations

import os
from functools import lru_cache

from src.envs import PROJECT_ROOT

TASK_README_DIRS = {
    "ruaime": "ruAIME",
    "t_math": "tmath",
    "luzitania": "luzitania",
    "mmred": "mmred",
}


def _readme_search_roots() -> list[str]:
    """Resolve README roots; prefer local MERA_Reason/datasets, then optional overrides."""
    roots = []
    # Local copies shipped with the leaderboard (kept in sync with dataset releases).
    roots.append(os.path.join(PROJECT_ROOT, "datasets"))
    env_root = os.environ.get("MERA_DATASETS_DIR")
    if env_root:
        roots.append(env_root)
    sibling = os.path.join(
        os.path.dirname(PROJECT_ROOT),
        "reasoning",
        "MERA",
        "datasets",
    )
    roots.append(sibling)
    return roots


@lru_cache(maxsize=None)
def _load_readme(task_name: str) -> str:
    folder = TASK_README_DIRS.get(task_name)
    if not folder:
        return f"*Unknown dataset: `{task_name}`*"

    for filename in ("README_ru.md", "README.md"):
        for root in _readme_search_roots():
            path = os.path.join(root, folder, filename)
            if os.path.isfile(path):
                with open(path, encoding="utf-8") as f:
                    return f.read().strip()

    return f"*README not found for `{task_name}`.*"


def get_dataset_readme_markdown(task_name: str) -> str:
    return _load_readme(task_name)