class_docstr: Manages a single kernel in a subprocess on this host.
  
  This version starts kernels with Popen.
docstr: Has a kernel process been started that we are actively managing.
docstr_tok: ["Has","a","kernel","process","been","started","that","we","are","actively","managing","."]
code: def has_kernel(self) -> bool:
      """Has a kernel process been started that we are actively managing."""
      return (
          self.provisioner is not None and self.provisioner.has_process
      )
  
imports: import asyncio
  import functools
  import os
  import re
  import signal
  import sys
  import typing
  import uuid
  import warnings
  from asyncio.futures import Future
  from concurrent.futures import Future
  from contextlib import contextmanager
  from enum import Enum
  import zmq
  from jupyter_core.utils import run_sync
  from traitlets import Any, Bool, Dict, DottedObjectName, Float, Instance, Type, Unicode, default, observe, observe_compat
  from traitlets.utils.importstring import import_item
  from .None import kernelspec
  from .asynchronous import AsyncKernelClient
  from .blocking import BlockingKernelClient
  from .client import KernelClient
  from .connect import ConnectionFileMixin
  from .managerabc import KernelManagerABC
  from .provisioning import KernelProvisionerBase
  from .provisioning import KernelProvisionerFactory
label_desc: Use image node_id 23 for calling the KernelManager obj's underlying member method code with example usage: obj.has_kernel() and returns: unknown