47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
from abc import ABC, abstractmethod
|
|
from typing import Dict, Optional
|
|
from fastapi import UploadFile
|
|
|
|
|
|
class ILevelService(ABC):
|
|
|
|
@abstractmethod
|
|
async def generate_exercises(self, dto):
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def get_level_exam(
|
|
self, number_of_exercises: int = 25, min_timer: int = 25, diagnostic: bool = False
|
|
) -> Dict:
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def get_level_utas(self):
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def get_custom_level(self, data: Dict):
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def upload_level(self, upload: UploadFile, solutions: Optional[UploadFile] = None) -> Dict:
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def gen_multiple_choice(
|
|
self, mc_variant: str, quantity: int, start_id: int = 1 #, *, utas: bool = False, all_exams=None
|
|
):
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def gen_blank_space_text_utas(
|
|
self, quantity: int, start_id: int, size: int, topic: str
|
|
):
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def gen_reading_passage_utas(
|
|
self, start_id, mc_quantity: int, topic: Optional[str] #sa_quantity: int,
|
|
):
|
|
pass
|