code: def save(self, **kwargs):
          
          if self.output_path:
              write_ipynb(self.nb, self.output_path)
docs: 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.