56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
"""Defines a KernelManager that provides signals and slots."""
|
|
|
|
# Copyright (c) Jupyter Development Team.
|
|
# Distributed under the terms of the Modified BSD License.
|
|
|
|
from qtpy import QtCore
|
|
|
|
from traitlets import HasTraits, Type
|
|
from .util import MetaQObjectHasTraits, SuperQObject
|
|
from .comms import CommManager
|
|
|
|
|
|
class QtKernelRestarterMixin(MetaQObjectHasTraits('NewBase', (HasTraits, SuperQObject), {})):
|
|
|
|
_timer = None
|
|
|
|
|
|
class QtKernelManagerMixin(MetaQObjectHasTraits('NewBase', (HasTraits, SuperQObject), {})):
|
|
""" A KernelClient that provides signals and slots.
|
|
"""
|
|
|
|
kernel_restarted = QtCore.Signal()
|
|
|
|
|
|
class QtKernelClientMixin(MetaQObjectHasTraits('NewBase', (HasTraits, SuperQObject), {})):
|
|
""" A KernelClient that provides signals and slots.
|
|
"""
|
|
|
|
# Emitted when the kernel client has started listening.
|
|
started_channels = QtCore.Signal()
|
|
|
|
# Emitted when the kernel client has stopped listening.
|
|
stopped_channels = QtCore.Signal()
|
|
|
|
#---------------------------------------------------------------------------
|
|
# 'KernelClient' interface
|
|
#---------------------------------------------------------------------------
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super(QtKernelClientMixin, self).__init__(*args, **kwargs)
|
|
self.comm_manager = None
|
|
#------ Channel management -------------------------------------------------
|
|
|
|
def start_channels(self, *args, **kw):
|
|
""" Reimplemented to emit signal.
|
|
"""
|
|
super(QtKernelClientMixin, self).start_channels(*args, **kw)
|
|
self.started_channels.emit()
|
|
self.comm_manager = CommManager(parent=self, kernel_client=self)
|
|
|
|
def stop_channels(self):
|
|
""" Reimplemented to emit signal.
|
|
"""
|
|
super(QtKernelClientMixin, self).stop_channels()
|
|
self.stopped_channels.emit()
|
|
self.comm_manager = None
|