Coverage for e2xgrader/preprocessors/filtercellsbyid.py: 100%

13 statements  

« prev     ^ index     » next       coverage.py v7.4.2, created at 2024-03-14 13:22 +0100

1from nbgrader.preprocessors import NbGraderPreprocessor 

2 

3 

4class FilterCellsById(NbGraderPreprocessor): 

5 def filter_cells(self, cells, keyword): 

6 new_cells = [] 

7 for cell in cells: 

8 metadata = cell["metadata"] 

9 if ( 

10 ("nbgrader" in metadata) 

11 and ("grade_id" in metadata["nbgrader"]) 

12 and (keyword in cell["metadata"]["nbgrader"]["grade_id"]) 

13 ): 

14 new_cells.append(cell) 

15 return new_cells 

16 

17 def preprocess(self, nb, resources): 

18 if "keyword" in resources: 

19 nb.cells = self.filter_cells(nb.cells, resources["keyword"]) 

20 return nb, resources