ai-interview-mentor / backend /utils /csv_parser.py
samar m
feat: add CSV question parser utility with unit tests
d8394f9
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