Quizard/modules/task/factory/__init__.py
2025-04-23 01:46:29 +03:00

22 lines
573 B
Python

import uuid
from abc import ABC, abstractmethod
from typing import Generic, runtime_checkable
from option import Option
from modules.task import QTask
from modules.task.factory.metadata import QTaskFactoryMetadata
from modules.utils.types import A, C, Q, V
class QTaskFactory(ABC, Generic[C, V, Q, A]):
id: uuid.UUID
metadata: QTaskFactoryMetadata[C, V]
default_tasks_to_generate: Option[int] = Option[int].maybe(None)
@abstractmethod
def generate(self) -> QTask[C, V, Q, A]: ...
def get_id(self) -> uuid.UUID:
return self.metadata.id