Kentlo's picture
Sync from GitHub 37f011465a0aa2abdfdd94d8bd5f31cfe932c669
28677d8 verified
Raw
History Blame Contribute Delete
911 Bytes
"""JSON-based content loader for lessons, quizzes, and practice tasks.
New content lives in cert_study_app/content/{track}/{type}.json.
Returns raw dicts — callers convert to dataclass types.
"""
from __future__ import annotations
import json
from pathlib import Path
CONTENT_DIR = Path(__file__).parent
def _load(track_id: str, filename: str) -> list[dict]:
path = CONTENT_DIR / track_id / filename
if not path.exists():
return []
try:
data = json.loads(path.read_text(encoding="utf-8"))
return data if isinstance(data, list) else []
except Exception:
return []
def load_lesson_dicts(track_id: str) -> list[dict]:
return _load(track_id, "lessons.json")
def load_quiz_dicts(track_id: str) -> list[dict]:
return _load(track_id, "quizzes.json")
def load_practice_dicts(track_id: str) -> list[dict]:
return _load(track_id, "practices.json")