Как предотвратить выполнение кода в ipython при сбое автозагрузки?

В ipython я включил автозагрузку в своем файле конфигурации. Обычно это подбирает любые изменения в моем коде, и ipython будет выполнять недавно скомпилированную версию. Однако, если в коде есть синтаксическая ошибка, вместо этого я получаю старую версию. Иногда не очевидно, что это произошло, что очень сбивает с толку. Как я могу предотвратить повторный запуск кода при возникновении ошибки во время автозагрузки? В качестве альтернативы, как я могу сделать более очевидным, что такая ошибка произошла?

Пример: рассмотрим этот скрипт

from __future__ import print_function def do(): for i in xrange(50): print('lines that obscure the view') print() print('Old version') 

Я вызываю это с помощью

 In [1]: import junk In [2]: junk.do() 

который генерирует

 ... lines that obscure the view lines that obscure the view Old version 

Теперь измените это на следующее:

 from __future__ import print_function def do(): for i in xrange(50): print('lines that obscure the view') print() # print('Old version') a = 3 * print('New version') 

При повторном запуске кода автозагрузка будет генерировать синтаксическую ошибку, тогда ipython будет быстро генерировать вывод, который прокручивает ошибку с экрана.

 ... lines that obscure the view lines that obscure the view Old version 

Я использую python 2.7.12 и ipython 5.1.0.