from enum import Enum from typing import Generic from Quizard import QuizTask, TaskGenerator class TagCategory(str, Enum): TOPIC = "topic" DIFFICULTY = "difficulty" class TopicTag(str, Enum): AVERAGE = "average" VARIANCE = "variance" class MyTaskGenerator(TaskGenerator[TagCategory, TopicTag]): ... class AverageTask(MyTaskGenerator): def generate(self): return QuizTask( "What is an average of 1, 2, 3 and 4?", "2.5", tags=[ (TagCategory.TOPIC, TopicTag.AVERAGE), (TagCategory.TOPIC, TopicTag.VARIANCE), ], ) print(AverageTask().generate())