Coverage for e2xgrader/graders/base.py: 82%
11 statements
« prev ^ index » next coverage.py v7.4.2, created at 2024-03-14 13:22 +0100
« prev ^ index » next coverage.py v7.4.2, created at 2024-03-14 13:22 +0100
1from logging import Logger
2from typing import Optional, Tuple
4from nbformat.notebooknode import NotebookNode
5from nbgrader.utils import compute_checksum, is_solution
6from traitlets.config import LoggingConfigurable
9class BaseGrader(LoggingConfigurable):
10 def cell_changed(self, cell: NotebookNode):
11 return not (
12 is_solution(cell)
13 and "checksum" in cell.metadata.nbgrader
14 and cell.metadata.nbgrader["checksum"] == compute_checksum(cell)
15 )
17 def determine_grade(
18 self, cell: NotebookNode, log: Logger = None
19 ) -> Tuple[Optional[float], float]:
20 max_points = float(cell.metadata["nbgrader"]["points"])
21 return None, max_points