| import sys | |
| import os | |
| sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) | |
| sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) | |
| from typing import Dict, Type | |
| from server.tasks.task_easy import EasyTask | |
| from server.tasks.task_medium import MediumTask | |
| from server.tasks.task_hard import HardTask | |
| from server.tasks.base import BaseTask | |
| TASK_REGISTRY: Dict[str, Type[BaseTask]] = { | |
| "easy": EasyTask, | |
| "medium": MediumTask, | |
| "hard": HardTask, | |
| } | |
| def get_task(name: str) -> BaseTask: | |
| if name not in TASK_REGISTRY: | |
| raise ValueError( | |
| f"Unknown task '{name}'. Valid options: {list(TASK_REGISTRY.keys())}" | |
| ) | |
| return TASK_REGISTRY[name]() | |