##// END OF EJS Templates
safe_execfile_ipy optionally raises exception in user code
Tianhui Michael Li -
Show More
@@ -2664,7 +2664,7 b' class InteractiveShell(SingletonConfigurable):'
2664 # tb offset is 2 because we wrap execfile
2664 # tb offset is 2 because we wrap execfile
2665 self.showtraceback(tb_offset=2)
2665 self.showtraceback(tb_offset=2)
2666
2666
2667 def safe_execfile_ipy(self, fname, shell_futures=False):
2667 def safe_execfile_ipy(self, fname, raise_exceptions=False, shell_futures=False):
2668 """Like safe_execfile, but for .ipy or .ipynb files with IPython syntax.
2668 """Like safe_execfile, but for .ipy or .ipynb files with IPython syntax.
2669
2669
2670 Parameters
2670 Parameters
@@ -2672,6 +2672,8 b' class InteractiveShell(SingletonConfigurable):'
2672 fname : str
2672 fname : str
2673 The name of the file to execute. The filename must have a
2673 The name of the file to execute. The filename must have a
2674 .ipy or .ipynb extension.
2674 .ipy or .ipynb extension.
2675 raise_exceptions : bool (False)
2676 If True raise exceptions everywhere. Meant for testing.
2675 shell_futures : bool (False)
2677 shell_futures : bool (False)
2676 If True, the code will share future statements with the interactive
2678 If True, the code will share future statements with the interactive
2677 shell. It will both be affected by previous __future__ imports, and
2679 shell. It will both be affected by previous __future__ imports, and
@@ -2711,12 +2713,13 b' class InteractiveShell(SingletonConfigurable):'
2711 with prepended_to_syspath(dname):
2713 with prepended_to_syspath(dname):
2712 try:
2714 try:
2713 for cell in get_cells():
2715 for cell in get_cells():
2714 # self.run_cell currently captures all exceptions
2715 # raised in user code. It would be nice if there were
2716 # versions of run_cell that did raise, so
2717 # we could catch the errors.
2718 result = self.run_cell(cell, silent=True, shell_futures=shell_futures)
2716 result = self.run_cell(cell, silent=True, shell_futures=shell_futures)
2719 if not result.success:
2717 if not result.success and raise_exceptions:
2718 if result.error_before_exec is not None:
2719 raise result.error_before_exec
2720 else:
2721 raise result.error_in_exec
2722 elif not result.success:
2720 break
2723 break
2721 except:
2724 except:
2722 self.showtraceback()
2725 self.showtraceback()
General Comments 0
You need to be logged in to leave comments. Login now