solve an assignment¶
You can solve an assignment in 1 or 2 ways:
Using the command line tool.
Using
nbchkr
as a library.
Using the command line tool¶
Given a source assignment main.ipynb
:
$ nbchkr solve --source main.ipynb --output solution.ipynb
This creates solution.ipynb
with relevant cells removed which can
then be distributed to students.
Using nbchkr
as a library¶
All of nbchkr
’s functionality is exposed to the user as a library.
Importing the relevant libraries:
>>> import pathlib
>>> import re
>>> import nbchkr.utils
Reading in the source notebook main.ipynb
and removing relevant cells.
We here use a regex that matches nothing for the solutions (as we want them to
stay in place):
>>> nb_path = pathlib.Path("main.ipynb")
>>> solution_regex = re.compile('$^')
>>> nb_node = nbchkr.utils.read(nb_path=nb_path)
>>> student_nb = nbchkr.utils.remove_cells(nb_node=nb_node, solution_regex=solution_regex)
Writing the assignment notebooks assignment.ipynb
:
>>> output_path = pathlib.Path("solution.ipynb")
>>> nbchkr.utils.write(output_path=output_path, nb_node=nb_node)