Automatic notebook backups ========================== While working with notebooks it is very common to... In order to enable backup of notebooks copy the code below into ``${HOME}/.jupyter/jupyter_notebook_config.py``. You will need to restart the Jupyter server for this to take effect. .. code-block:: python from pathlib import Path import io import os _script_exporter = None def post_save(model, os_path, contents_manager, **kwargs): """post-save hook for converting notebooks to .py scripts""" from nbconvert.exporters.script import ScriptExporter if model['type'] != 'notebook': return # only do this for notebooks if os_path.endswith('.py'): return if 'Untitled' in os_path: return # do not convert Untitled notebooks global _script_exporter if _script_exporter is None: _script_exporter = ScriptExporter(parent=contents_manager) log = contents_manager.log p = Path(os_path) for j in range(9): try: f = p.parent / f'{p.stem}.py~{8-j}~' f.rename(p.parent / f'{p.stem}.py~{9-j}~') except: pass f = p.parent / f'{p.stem}.py' try: f.rename(p.parent / f'{p.stem}.py~{1}~') except: pass script, resources = _script_exporter.from_filename(os_path) with io.open(f"{f}", 'w', encoding='utf-8') as f: f.write(script) c.FileContentsManager.post_save_hook = post_save