diff --git a/IPython/frontend/html/notebook/notebookmanager.py b/IPython/frontend/html/notebook/notebookmanager.py index bc8ec4a..ea6da86 100644 --- a/IPython/frontend/html/notebook/notebookmanager.py +++ b/IPython/frontend/html/notebook/notebookmanager.py @@ -26,7 +26,7 @@ from tornado import web from IPython.config.configurable import LoggingConfigurable from IPython.nbformat import current -from IPython.utils.traitlets import Unicode, List, Dict, Bool +from IPython.utils.traitlets import Unicode, List, Dict, Bool, TraitError #----------------------------------------------------------------------------- # Classes @@ -37,6 +37,16 @@ class NotebookManager(LoggingConfigurable): notebook_dir = Unicode(os.getcwdu(), config=True, help=""" The directory to use for notebooks. """) + def _notebook_dir_changed(self, name, old, new): + """do a bit of validation of the notebook dir""" + if os.path.exists(new) and not os.path.isdir(new): + raise TraitError("notebook dir %r is not a directory" % new) + if not os.path.exists(new): + self.log.info("Creating notebook dir %s", new) + try: + os.mkdir(new) + except: + raise TraitError("Couldn't create notebook dir %r" % new) save_script = Bool(False, config=True, help="""Automatically create a Python script when saving the notebook.