File size: 911 Bytes
d2213a5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
27
28
29
30
31
32
"""Базовый класс для всех генераторов задач"""

from abc import ABC, abstractmethod
from typing import List, Dict, Any
from models.task import Task


class BaseTaskGenerator(ABC):
    """Абстрактный базовый класс для генераторов задач"""

    def __init__(self, complexity: str = 'medium'):
        self.complexity = complexity

    @abstractmethod
    def generate(self) -> Task:
        """
        Генерация одной задачи

        Возвращает:
            Task: объект задачи с вопросом, ответом и решением
        """
        pass

    @abstractmethod
    def get_type(self) -> str:
        """
        Возвращает тип задачи

        Возвращает:
            str: идентификатор типа задачи
        """
        pass