##// END OF EJS Templates
Keep a reference to last execution result on the shell....
Matthias Bussonnier -
Show More
@@ -166,6 +166,10 b' class ExecutionResult(object):'
166 if self.error_in_exec is not None:
166 if self.error_in_exec is not None:
167 raise self.error_in_exec
167 raise self.error_in_exec
168
168
169 def __repr__(self):
170 return '<%s object at %x, execution_count=%s error_before_exec=%s error_in_exec=%s result=%s>' %\
171 (self.__class__.__qualname__, id(self), self.execution_count, self.error_before_exec, self.error_in_exec, repr(self.result))
172
169
173
170 class InteractiveShell(SingletonConfigurable):
174 class InteractiveShell(SingletonConfigurable):
171 """An enhanced, interactive shell for Python."""
175 """An enhanced, interactive shell for Python."""
@@ -434,6 +438,8 b' class InteractiveShell(SingletonConfigurable):'
434 # Tracks any GUI loop loaded for pylab
438 # Tracks any GUI loop loaded for pylab
435 pylab_gui_select = None
439 pylab_gui_select = None
436
440
441 last_execution_succeeded = Bool(True, help='Did last executed command succeeded')
442
437 def __init__(self, ipython_dir=None, profile_dir=None,
443 def __init__(self, ipython_dir=None, profile_dir=None,
438 user_module=None, user_ns=None,
444 user_module=None, user_ns=None,
439 custom_exceptions=((), None), **kwargs):
445 custom_exceptions=((), None), **kwargs):
@@ -2607,6 +2613,7 b' class InteractiveShell(SingletonConfigurable):'
2607 result = ExecutionResult()
2613 result = ExecutionResult()
2608
2614
2609 if (not raw_cell) or raw_cell.isspace():
2615 if (not raw_cell) or raw_cell.isspace():
2616 self.last_execution_succeeded = True
2610 return result
2617 return result
2611
2618
2612 if silent:
2619 if silent:
@@ -2617,6 +2624,7 b' class InteractiveShell(SingletonConfigurable):'
2617
2624
2618 def error_before_exec(value):
2625 def error_before_exec(value):
2619 result.error_before_exec = value
2626 result.error_before_exec = value
2627 self.last_execution_succeeded = False
2620 return result
2628 return result
2621
2629
2622 self.events.trigger('pre_execute')
2630 self.events.trigger('pre_execute')
@@ -2703,8 +2711,10 b' class InteractiveShell(SingletonConfigurable):'
2703
2711
2704 # Execute the user code
2712 # Execute the user code
2705 interactivity = "none" if silent else self.ast_node_interactivity
2713 interactivity = "none" if silent else self.ast_node_interactivity
2706 self.run_ast_nodes(code_ast.body, cell_name,
2714 has_raised = self.run_ast_nodes(code_ast.body, cell_name,
2707 interactivity=interactivity, compiler=compiler, result=result)
2715 interactivity=interactivity, compiler=compiler, result=result)
2716
2717 self.last_execution_succeeded = not has_raised
2708
2718
2709 # Reset this so later displayed values do not modify the
2719 # Reset this so later displayed values do not modify the
2710 # ExecutionResult
2720 # ExecutionResult
General Comments 0
You need to be logged in to leave comments. Login now