@catch_nb_assignment<EOL><INDENT>def save(self, **kwargs):<DEDENT>
if self.output_path:<EOL><INDENT>write_ipynb(self.nb, self.output_path)<EOL><DEDENT>
Saves the wrapped notebook state.

If an output path is known, this triggers a save of the wrapped
notebook state to the provided path.

Can be used outside of cell state changes if execution is taking
a long time to conclude but the notebook object should be synced.

For example, you may want to save the notebook every 10 minutes when running
a 5 hour cell execution to capture output messages in the notebook.