##// END OF EJS Templates
Use client.execute in execute preoprocessor
Use client.execute in execute preoprocessor

File last commit:

r19210:a023d9be
r19214:7f6f0893
Show More
kernel_mixins.py
104 lines | 3.2 KiB | text/x-python | PythonLexer
MinRK
pyin -> execute_input
r16567 """Defines a KernelManager that provides signals and slots."""
# Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408
from IPython.external.qt import QtCore
epatters
BUG: QtKernelManagerMixin does not define PyQt4-safe signals.
r8456 from IPython.utils.traitlets import HasTraits, Type
Thomas Kluyver
Use explicit relative imports...
r13347 from .util import MetaQObjectHasTraits, SuperQObject
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408
class ChannelQObject(SuperQObject):
# Emitted when the channel is started.
started = QtCore.Signal()
# Emitted when the channel is stopped.
stopped = QtCore.Signal()
Thomas Kluyver
Merge Qt*ChannelMixin up into QtInProcess*Channel classes
r19210 # Emitted when any message is received.
message_received = QtCore.Signal(object)
#---------------------------------------------------------------------------
# Channel interface
#---------------------------------------------------------------------------
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408 def start(self):
""" Reimplemented to emit signal.
"""
super(ChannelQObject, self).start()
self.started.emit()
def stop(self):
""" Reimplemented to emit signal.
"""
super(ChannelQObject, self).stop()
self.stopped.emit()
#---------------------------------------------------------------------------
epatters
REFACTOR: Terminology change: 'embedded' -> 'in-process'.
r8471 # InProcessChannel interface
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408 #---------------------------------------------------------------------------
def call_handlers_later(self, *args, **kwds):
""" Call the message handlers later.
"""
do_later = lambda: self.call_handlers(*args, **kwds)
QtCore.QTimer.singleShot(0, do_later)
def process_events(self):
""" Process any pending GUI events.
"""
QtCore.QCoreApplication.instance().processEvents()
class QtHBChannelMixin(ChannelQObject):
# Emitted when the kernel has died.
kernel_died = QtCore.Signal(object)
def call_handlers(self, since_last_heartbeat):
""" Reimplemented to emit signals instead of making callbacks.
"""
self.kernel_died.emit(since_last_heartbeat)
Thomas Kluyver
Fixes for metaclass syntax
r13359 class QtKernelRestarterMixin(MetaQObjectHasTraits('NewBase', (HasTraits, SuperQObject), {})):
MinRK
add QtKernelManager with restarter
r10308
_timer = None
Thomas Kluyver
Fixes for metaclass syntax
r13359 class QtKernelManagerMixin(MetaQObjectHasTraits('NewBase', (HasTraits, SuperQObject), {})):
MinRK
add QtKernelManager with restarter
r10308 """ A KernelClient that provides signals and slots.
"""
kernel_restarted = QtCore.Signal()
Thomas Kluyver
Fixes for metaclass syntax
r13359 class QtKernelClientMixin(MetaQObjectHasTraits('NewBase', (HasTraits, SuperQObject), {})):
MinRK
update Qt to use KernelClient
r10288 """ A KernelClient that provides signals and slots.
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408 """
MinRK
update Qt to use KernelClient
r10288 # Emitted when the kernel client has started listening.
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408 started_channels = QtCore.Signal()
MinRK
update Qt to use KernelClient
r10288 # Emitted when the kernel client has stopped listening.
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408 stopped_channels = QtCore.Signal()
#---------------------------------------------------------------------------
MinRK
update Qt to use KernelClient
r10288 # 'KernelClient' interface
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408 #---------------------------------------------------------------------------
#------ Channel management -------------------------------------------------
def start_channels(self, *args, **kw):
""" Reimplemented to emit signal.
"""
MinRK
update Qt to use KernelClient
r10288 super(QtKernelClientMixin, self).start_channels(*args, **kw)
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408 self.started_channels.emit()
def stop_channels(self):
""" Reimplemented to emit signal.
"""
MinRK
update Qt to use KernelClient
r10288 super(QtKernelClientMixin, self).stop_channels()
epatters
Refactor kernel managers in preparation for the EmbeddedKernel.
r8408 self.stopped_channels.emit()