File size: 719 Bytes
1c03487
 
0092607
 
1c03487
0092607
1c03487
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0092607
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
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]()