docs: def _save( self, fn ):
          """Persist the notebook to the given file.
  
          :param fn: the file name"""
  
          # create JSON object
          j = json.dumps({ 'description': self.description(),
                           'pending': self._pending,
                           'results': self._results },
                         indent = 4,
                         cls = MetadataEncoder)
  
          # write to file
          with open(fn, 'w') as f:
              f.write(j)