From 0bdca1488ac227fbceed4d735474fb628fc8e6d5 2013-10-18 02:39:06 From: MinRK Date: 2013-10-18 02:39:06 Subject: [PATCH] allow specifying destination in copy_notebook --- diff --git a/IPython/html/services/notebooks/nbmanager.py b/IPython/html/services/notebooks/nbmanager.py index caabebf..568c6a5 100644 --- a/IPython/html/services/notebooks/nbmanager.py +++ b/IPython/html/services/notebooks/nbmanager.py @@ -131,14 +131,18 @@ class NotebookManager(LoggingConfigurable): model = self.save_notebook_model(model, model['name'], model['path']) return model - def copy_notebook(self, name, path=''): - """Copy an existing notebook and return its new model.""" + def copy_notebook(self, from_name, to_name=None, path=''): + """Copy an existing notebook and return its new model. + + If to_name not specified, increment `from_name-Copy#.ipynb`. + """ path = path.strip('/') - model = self.get_notebook_model(name, path) - name = os.path.splitext(name)[0] + '-Copy' - name = self.increment_filename(name, path) - model['name'] = name - model = self.save_notebook_model(model, name, path) + model = self.get_notebook_model(from_name, path) + if not to_name: + base = os.path.splitext(from_name)[0] + '-Copy' + to_name = self.increment_filename(base, path) + model['name'] = to_name + model = self.save_notebook_model(model, to_name, path) return model # Checkpoint-related