##// END OF EJS Templates
Don't assume test case for %time will finish in 0 time....
Don't assume test case for %time will finish in 0 time. Closes gh-2899

File last commit:

r9370:52c32402
r9504:2e9dee88
Show More
kernelmanagerabc.py
226 lines | 5.0 KiB | text/x-python | PythonLexer
/ IPython / kernel / kernelmanagerabc.py
Brian Granger
Creating an ABC for kernel managers and channels.
r9121 """Abstract base classes for kernel manager and channels."""
#-----------------------------------------------------------------------------
# Copyright (C) 2013 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
# Standard library imports.
import abc
#-----------------------------------------------------------------------------
# Channels
#-----------------------------------------------------------------------------
class ChannelABC(object):
"""A base class for all channel ABCs."""
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
def start(self):
pass
@abc.abstractmethod
def stop(self):
pass
@abc.abstractmethod
def is_alive(self):
pass
class ShellChannelABC(ChannelABC):
Brian Granger
Docstring cleanup for kernelmanagers and channels....
r9128 """ShellChannel ABC.
The docstrings for this class can be found in the base implementation:
MinRK
move zmq.KernelManagers into IPython.kernel
r9370 `IPython.kernel.kernelmanager.ShellChannel`
Brian Granger
Creating an ABC for kernel managers and channels.
r9121 """
@abc.abstractproperty
def allow_stdin(self):
pass
@abc.abstractmethod
def execute(self, code, silent=False, store_history=True,
user_variables=None, user_expressions=None, allow_stdin=None):
pass
@abc.abstractmethod
def complete(self, text, line, cursor_pos, block=None):
pass
@abc.abstractmethod
def object_info(self, oname, detail_level=0):
pass
@abc.abstractmethod
def history(self, raw=True, output=False, hist_access_type='range', **kwargs):
pass
@abc.abstractmethod
def kernel_info(self):
pass
@abc.abstractmethod
def shutdown(self, restart=False):
pass
class IOPubChannelABC(ChannelABC):
Brian Granger
Docstring cleanup for kernelmanagers and channels....
r9128 """IOPubChannel ABC.
The docstrings for this class can be found in the base implementation:
Brian Granger
Creating an ABC for kernel managers and channels.
r9121
MinRK
move zmq.KernelManagers into IPython.kernel
r9370 `IPython.kernel.kernelmanager.IOPubChannel`
Brian Granger
Docstring cleanup for kernelmanagers and channels....
r9128 """
Brian Granger
Creating an ABC for kernel managers and channels.
r9121
@abc.abstractmethod
def flush(self, timeout=1.0):
pass
class StdInChannelABC(ChannelABC):
Brian Granger
Docstring cleanup for kernelmanagers and channels....
r9128 """StdInChannel ABC.
The docstrings for this class can be found in the base implementation:
MinRK
move zmq.KernelManagers into IPython.kernel
r9370 `IPython.kernel.kernelmanager.StdInChannel`
Brian Granger
Docstring cleanup for kernelmanagers and channels....
r9128 """
Brian Granger
Creating an ABC for kernel managers and channels.
r9121
@abc.abstractmethod
def input(self, string):
pass
class HBChannelABC(ChannelABC):
Brian Granger
Docstring cleanup for kernelmanagers and channels....
r9128 """HBChannel ABC.
The docstrings for this class can be found in the base implementation:
MinRK
move zmq.KernelManagers into IPython.kernel
r9370 `IPython.kernel.kernelmanager.HBChannel`
Brian Granger
Docstring cleanup for kernelmanagers and channels....
r9128 """
Brian Granger
Creating an ABC for kernel managers and channels.
r9121
@abc.abstractproperty
def time_to_dead(self):
pass
@abc.abstractmethod
def pause(self):
pass
@abc.abstractmethod
def unpause(self):
pass
@abc.abstractmethod
def is_beating(self):
pass
#-----------------------------------------------------------------------------
# Main kernel manager class
#-----------------------------------------------------------------------------
class KernelManagerABC(object):
Brian Granger
Docstring cleanup for kernelmanagers and channels....
r9128 """KernelManager ABC.
The docstrings for this class can be found in the base implementation:
MinRK
move zmq.KernelManagers into IPython.kernel
r9370 `IPython.kernel.kernelmanager.KernelManager`
Brian Granger
Docstring cleanup for kernelmanagers and channels....
r9128 """
Brian Granger
Creating an ABC for kernel managers and channels.
r9121
Brian Granger
Fixing missing metaclass in KernelManagerABC.
r9123 __metaclass__ = abc.ABCMeta
Brian Granger
Creating an ABC for kernel managers and channels.
r9121 @abc.abstractproperty
def kernel(self):
pass
@abc.abstractproperty
def shell_channel_class(self):
pass
@abc.abstractproperty
def iopub_channel_class(self):
pass
@abc.abstractproperty
def hb_channel_class(self):
pass
@abc.abstractproperty
def stdin_channel_class(self):
pass
#--------------------------------------------------------------------------
Brian E. Granger
Final cleanup of kernelmanager...
r9151 # Channel management methods
Brian Granger
Creating an ABC for kernel managers and channels.
r9121 #--------------------------------------------------------------------------
@abc.abstractmethod
def start_channels(self, shell=True, iopub=True, stdin=True, hb=True):
pass
@abc.abstractmethod
def stop_channels(self):
pass
@abc.abstractproperty
def channels_running(self):
pass
@abc.abstractproperty
def shell_channel(self):
pass
@abc.abstractproperty
def iopub_channel(self):
pass
@abc.abstractproperty
def stdin_channel(self):
pass
@abc.abstractproperty
def hb_channel(self):
pass
#--------------------------------------------------------------------------
Brian E. Granger
Final cleanup of kernelmanager...
r9151 # Kernel management
Brian Granger
Creating an ABC for kernel managers and channels.
r9121 #--------------------------------------------------------------------------
@abc.abstractmethod
def start_kernel(self, **kw):
pass
@abc.abstractmethod
def shutdown_kernel(self, now=False, restart=False):
pass
@abc.abstractmethod
def restart_kernel(self, now=False, **kw):
pass
@abc.abstractproperty
def has_kernel(self):
pass
@abc.abstractmethod
def interrupt_kernel(self):
pass
@abc.abstractmethod
def signal_kernel(self, signum):
pass
@abc.abstractproperty
def is_alive(self):
pass
Brian E. Granger
Final cleanup of kernelmanager...
r9151