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