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