##// END OF EJS Templates
two-process interactive shell progress...
two-process interactive shell progress * execute payloads (e.g. page/pinfo output) are displayed and paged. * aborted replies don't crash frontend. * intermediate iopub is displayed as it comes * wait for kernel to start before printing first prompt. This gets the right number on the first prompt, and also avoids the log output from being drawn after the first prompt. * protect most of the interact block from keyboard interrupts, which could cause weird errors if ctrl-C was held for a while. * separate restart/wait prompt when kernel dies.

File last commit:

r5390:c82649ea
r5616:7431cd60
Show More
payload.py
41 lines | 1.2 KiB | text/x-python | PythonLexer
Brian Granger
Adding payload module.
r2807 # -*- coding: utf-8 -*-
"""Payload system for IPython.
Authors:
* Fernando Perez
* Brian Granger
"""
#-----------------------------------------------------------------------------
Matthias BUSSONNIER
update copyright to 2011/20xx-2011...
r5390 # Copyright (C) 2008-2011 The IPython Development Team
Brian Granger
Adding payload module.
r2807 #
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
from IPython.config.configurable import Configurable
Brian Granger
Fixing imports and syntax errors.
r2812 from IPython.utils.traitlets import List
Brian Granger
Adding payload module.
r2807
#-----------------------------------------------------------------------------
# Main payload class
#-----------------------------------------------------------------------------
class PayloadManager(Configurable):
Brian Granger
Fixing imports and syntax errors.
r2812 _payload = List([])
Brian Granger
Adding payload module.
r2807
Brian Granger
Fixing imports and syntax errors.
r2812 def write_payload(self, data):
if not isinstance(data, dict):
raise TypeError('Each payload write must be a dict, got: %r' % data)
Brian Granger
First working draft of new payload system.
r2814 self._payload.append(data)
Brian Granger
Adding payload module.
r2807
def read_payload(self):
return self._payload
Brian Granger
First working draft of new payload system.
r2814
def clear_payload(self):
self._payload = []