Source code for grader_convert.preprocessors.checkcellmetadata
import traceback
from typing import Dict, Tuple
from nbformat.notebooknode import NotebookNode
from grader_convert.nbgraderformat import MetadataValidator, ValidationError
from grader_convert.preprocessors.base import NbGraderPreprocessor
[docs]class CheckCellMetadata(NbGraderPreprocessor):
"""A preprocessor for checking that grade ids are unique."""
[docs] def preprocess(
self, nb: NotebookNode, resources: Dict
) -> Tuple[NotebookNode, Dict]:
try:
MetadataValidator().validate_nb(nb)
except ValidationError as e:
self.log.error(traceback.format_exc())
msg = "Notebook failed to validate: " + e.message
self.log.error(msg)
raise ValidationError(msg)
return nb, resources