52 lines
1.1 KiB
Python
52 lines
1.1 KiB
Python
|
"""Abstract base classes for kernel client channels"""
|
||
|
# Copyright (c) Jupyter Development Team.
|
||
|
# Distributed under the terms of the Modified BSD License.
|
||
|
import abc
|
||
|
|
||
|
|
||
|
class ChannelABC(metaclass=abc.ABCMeta):
|
||
|
"""A base class for all channel ABCs."""
|
||
|
|
||
|
@abc.abstractmethod
|
||
|
def start(self) -> None:
|
||
|
"""Start the channel."""
|
||
|
pass
|
||
|
|
||
|
@abc.abstractmethod
|
||
|
def stop(self) -> None:
|
||
|
"""Stop the channel."""
|
||
|
pass
|
||
|
|
||
|
@abc.abstractmethod
|
||
|
def is_alive(self) -> bool:
|
||
|
"""Test whether the channel is alive."""
|
||
|
pass
|
||
|
|
||
|
|
||
|
class HBChannelABC(ChannelABC):
|
||
|
"""HBChannel ABC.
|
||
|
|
||
|
The docstrings for this class can be found in the base implementation:
|
||
|
|
||
|
`jupyter_client.channels.HBChannel`
|
||
|
"""
|
||
|
|
||
|
@abc.abstractproperty
|
||
|
def time_to_dead(self) -> float:
|
||
|
pass
|
||
|
|
||
|
@abc.abstractmethod
|
||
|
def pause(self) -> None:
|
||
|
"""Pause the heartbeat channel."""
|
||
|
pass
|
||
|
|
||
|
@abc.abstractmethod
|
||
|
def unpause(self) -> None:
|
||
|
"""Unpause the heartbeat channel."""
|
||
|
pass
|
||
|
|
||
|
@abc.abstractmethod
|
||
|
def is_beating(self) -> bool:
|
||
|
"""Test whether the channel is beating."""
|
||
|
pass
|