import csv import os import random class QuestionLoaderLocal: def __init__(self, file_path, question_count): """ Initializes the QuestionLoader with a base path for local files. :param base_path: The base path where the question files are located. """ self.base_path = "candidate_assesment/data" self.question_count = question_count self.file_path = file_path def fetch_questions(self): """ Fetches the questions for the given technology from the local file system. :param technology: The technology (e.g., Python, Django) to fetch questions for. :return: A list of dictionaries, where each dictionary represents a question. :raises: Exception if the file cannot be fetched or read. """ # file_path = os.path.join(BASE_DIR, "questions", technology, "questions.csv") if not os.path.exists(self.file_path): return [] # raise FileNotFoundError(f"No questions found for technology") try: questions = [] # Read and parse the CSV file with open(self.file_path, mode="r", encoding="utf-8") as file: csv_reader = csv.DictReader(file) for row in csv_reader: questions.append({ "question": row["question"], "option1": row["option1"], "option2": row["option2"], "option3": row["option3"], "option4": row["option4"], "answer": row["answer"], "difficulty": row["difficulty"].lower() }) # Randomly select 20 questions sampled_questions = random.sample(questions, min(self.question_count, len(questions))) return sampled_questions except Exception as e: raise RuntimeError(f"Failed to fetch questions: {str(e)}")