def from_dict()

in project/paperbench/paperbench/judge/judge.py [0:0]


    def from_dict(cls, data: dict) -> "GradedTaskNode":
        try:
            sub_tasks = [cls.from_dict(task) for task in data["sub_tasks"]]
            task = cls(
                id=data["id"],
                requirements=data["requirements"],
                weight=data["weight"],
                sub_tasks=sub_tasks,
                task_category=data["task_category"],
                score=data["score"],
                valid_score=data["valid_score"],
                explanation=data["explanation"],
                judge_metadata=(data["judge_metadata"] if "judge_metadata" in data else None),
            )
        except KeyError as e:
            raise ValueError(f"Missing required field in task data: {e}")
        return task