From ce26dc7f8bed3fa7e65bceb1f1663c538416f664 2013-10-20 21:09:01
From: MinRK <benjaminrk@gmail.com>
Date: 2013-10-20 21:09:01
Subject: [PATCH] use itertools.count for incrementing notebook filename
---

diff --git a/IPython/html/services/notebooks/filenbmanager.py b/IPython/html/services/notebooks/filenbmanager.py
index 0324c2c..e87a2cc 100644
--- a/IPython/html/services/notebooks/filenbmanager.py
+++ b/IPython/html/services/notebooks/filenbmanager.py
@@ -17,14 +17,12 @@ Authors:
 # Imports
 #-----------------------------------------------------------------------------
 
-import datetime
 import io
+import itertools
 import os
 import glob
 import shutil
 
-from unicodedata import normalize
-
 from tornado import web
 
 from .nbmanager import NotebookManager
@@ -83,17 +81,14 @@ class FileNotebookManager(NotebookManager):
                  for name in names]
         return names
 
-    def increment_filename(self, basename, path=''):
+    def increment_filename(self, basename, path='', ext='.ipynb'):
         """Return a non-used filename of the form basename<int>."""
         path = path.strip('/')
-        i = 0
-        while True:
-            name = u'%s%i.ipynb' % (basename,i)
+        for i in itertools.count():
+            name = u'{basename}{i}{ext}'.format(basename=basename, i=i, ext=ext)
             os_path = self.get_os_path(name, path)
             if not os.path.isfile(os_path):
                 break
-            else:
-                i = i+1
         return name
 
     def path_exists(self, path):