self.start_kernel(**kwds) @property def has_kernel(self): return self.kernel is not None def _kill_kernel(self): self.kernel.frontends.remove(self) self.kernel = None def interrupt_kernel(self): raise NotImplementedError("Cannot interrupt in-process kernel.") def signal_kernel(self, signum): raise NotImplementedError("Cannot signal in-process kernel.") @property def is_alive(self): return True #----------------------------------------------------------------------------- # ABC Registration #----------------------------------------------------------------------------- ShellChannelABC.register(InProcessShellChannel) IOPubChannelABC.register(InProcessIOPubChannel) HBChannelABC.register(InProcessHBChannel) StdInChannelABC.register(InProcessStdInChannel) KernelManagerABC.register(InProcessKernelManager)
raise RuntimeError("Cannot signal kernel. No kernel is running!") @property def is_alive(self): """Is the kernel process still running?""" if self.has_kernel: if self.kernel.poll() is None: return True else: return False elif self._hb_channel is not None: # We didn't start the kernel with this KernelManager so we # use the heartbeat. return self._hb_channel.is_beating() else: # no heartbeat and not local, we can't tell if it's running, # so naively return True return True #----------------------------------------------------------------------------- # ABC Registration #----------------------------------------------------------------------------- ShellChannelABC.register(ShellChannel) IOPubChannelABC.register(IOPubChannel) HBChannelABC.register(HBChannel) StdInChannelABC.register(StdInChannel) KernelManagerABC.register(KernelManager)