def __post_init__()

in project/paperbench/paperbench/rubric/tasks.py [0:0]


    def __post_init__(self):
        if not isinstance(self.weight, (int, float)):
            raise ValueError("Weight must be a number.")

        if self.weight <= 0:
            raise ValueError("Weight must be a positive number.")

        if self.task_category and self.task_category not in VALID_TASK_CATEGORIES:
            # TODO: bring back error after we finalize all rubrics
            logger.warning(f"Invalid task category: {self.task_category}")
            # raise ValueError(f"Invalid task category: {self.task_category}")

        if not self.is_leaf() and self.task_category:
            raise ValueError(f"Non-leaf node '{self.id}' cannot have a task category.")

        if self.is_leaf() and not self.task_category:
            # TODO: bring back error after we finalize all rubrics
            logger.warning(f"Leaf node '{self.id}' doesn't have a task category.")