##// END OF EJS Templates
Merge pull request #9519 from Carreau/last-result...
Thomas Kluyver -
r22450:bb2c7ec4 merge
parent child Browse files
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."""
@@ -425,6 +429,8 b' class InteractiveShell(SingletonConfigurable):'
425 # Tracks any GUI loop loaded for pylab
429 # Tracks any GUI loop loaded for pylab
426 pylab_gui_select = None
430 pylab_gui_select = None
427
431
432 last_execution_succeeded = Bool(True, help='Did last executed command succeeded')
433
428 def __init__(self, ipython_dir=None, profile_dir=None,
434 def __init__(self, ipython_dir=None, profile_dir=None,
429 user_module=None, user_ns=None,
435 user_module=None, user_ns=None,
430 custom_exceptions=((), None), **kwargs):
436 custom_exceptions=((), None), **kwargs):
@@ -2601,6 +2607,7 b' class InteractiveShell(SingletonConfigurable):'
2601 result = ExecutionResult()
2607 result = ExecutionResult()
2602
2608
2603 if (not raw_cell) or raw_cell.isspace():
2609 if (not raw_cell) or raw_cell.isspace():
2610 self.last_execution_succeeded = True
2604 return result
2611 return result
2605
2612
2606 if silent:
2613 if silent:
@@ -2611,6 +2618,7 b' class InteractiveShell(SingletonConfigurable):'
2611
2618
2612 def error_before_exec(value):
2619 def error_before_exec(value):
2613 result.error_before_exec = value
2620 result.error_before_exec = value
2621 self.last_execution_succeeded = False
2614 return result
2622 return result
2615
2623
2616 self.events.trigger('pre_execute')
2624 self.events.trigger('pre_execute')
@@ -2697,8 +2705,10 b' class InteractiveShell(SingletonConfigurable):'
2697
2705
2698 # Execute the user code
2706 # Execute the user code
2699 interactivity = "none" if silent else self.ast_node_interactivity
2707 interactivity = "none" if silent else self.ast_node_interactivity
2700 self.run_ast_nodes(code_ast.body, cell_name,
2708 has_raised = self.run_ast_nodes(code_ast.body, cell_name,
2701 interactivity=interactivity, compiler=compiler, result=result)
2709 interactivity=interactivity, compiler=compiler, result=result)
2710
2711 self.last_execution_succeeded = not has_raised
2702
2712
2703 # Reset this so later displayed values do not modify the
2713 # Reset this so later displayed values do not modify the
2704 # ExecutionResult
2714 # ExecutionResult
General Comments 0
You need to be logged in to leave comments. Login now