File size: 847 Bytes
d8394f9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import csv
import io

_VALID_DIFFICULTIES = {"easy", "medium", "hard"}


def parse_csv_questions(text: str) -> list[dict]:
    """
    Parse CSV text into question dicts.
    Expected columns: question_text, difficulty
    Returns list of {"question_text": str, "difficulty": str}.
    Skips rows where question_text is empty.
    Defaults difficulty to 'medium' if missing or invalid.
    """
    reader = csv.DictReader(io.StringIO(text))
    rows = []
    for row in reader:
        question_text = (row.get("question_text") or "").strip()
        difficulty = (row.get("difficulty") or "medium").strip().lower()
        if not question_text:
            continue
        if difficulty not in _VALID_DIFFICULTIES:
            difficulty = "medium"
        rows.append({"question_text": question_text, "difficulty": difficulty})
    return rows