##// END OF EJS Templates
actually send only one kernel_info request...
actually send only one kernel_info request store the Future for the initial request, allowing subsequent requests to wait on the same pending reply. Previously, any incoming requests that arrived while waiting for the first reply would send their own request.

File last commit:

r16587:7f1fdd0c
r18563:0b2c2392
Show More
channelsabc.py
113 lines | 2.3 KiB | text/x-python | PythonLexer
MinRK
split KernelManager into KernelManager + KernelClient
r10285 """Abstract base classes for kernel client channels"""
MinRK
remove user_variables...
r16570 # Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
MinRK
split KernelManager into KernelManager + KernelClient
r10285
import abc
Thomas Kluyver
Fixes for metaclass syntax
r13359 from IPython.utils.py3compat import with_metaclass
MinRK
split KernelManager into KernelManager + KernelClient
r10285
Thomas Kluyver
Fixes for metaclass syntax
r13359 class ChannelABC(with_metaclass(abc.ABCMeta, object)):
MinRK
split KernelManager into KernelManager + KernelClient
r10285 """A base class for all channel ABCs."""
@abc.abstractmethod
def start(self):
pass
@abc.abstractmethod
def stop(self):
pass
@abc.abstractmethod
def is_alive(self):
pass
class ShellChannelABC(ChannelABC):
"""ShellChannel ABC.
The docstrings for this class can be found in the base implementation:
`IPython.kernel.channels.ShellChannel`
"""
@abc.abstractproperty
def allow_stdin(self):
pass
@abc.abstractmethod
def execute(self, code, silent=False, store_history=True,
MinRK
remove user_variables...
r16570 user_expressions=None, allow_stdin=None):
MinRK
split KernelManager into KernelManager + KernelClient
r10285 pass
@abc.abstractmethod
def complete(self, text, line, cursor_pos, block=None):
pass
@abc.abstractmethod
MinRK
s/object_info_request/inspect_request
r16587 def inspect(self, oname, detail_level=0):
MinRK
split KernelManager into KernelManager + KernelClient
r10285 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):
"""IOPubChannel ABC.
The docstrings for this class can be found in the base implementation:
`IPython.kernel.channels.IOPubChannel`
"""
@abc.abstractmethod
def flush(self, timeout=1.0):
pass
class StdInChannelABC(ChannelABC):
"""StdInChannel ABC.
The docstrings for this class can be found in the base implementation:
`IPython.kernel.channels.StdInChannel`
"""
@abc.abstractmethod
def input(self, string):
pass
class HBChannelABC(ChannelABC):
"""HBChannel ABC.
The docstrings for this class can be found in the base implementation:
`IPython.kernel.channels.HBChannel`
"""
@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