class_docstr: The KernelHook can be used to interact with remote jupyter kernel.
  
  Takes kernel host/ip from connection and refers to jupyter kernel ports and session_key
   from ``extra`` field.
  
  :param kernel_conn_id: connection that has kernel host/ip
code: def __init__(
      self, kernel_conn_id: str = default_conn_name, *args, **kwargs
  ) -> None:
      super().__init__(*args, **kwargs)
      self.kernel_conn = self.get_connection(kernel_conn_id)
      register_remote_kernel_engine()
  
imports: from __future__ import annotations
  from typing import TYPE_CHECKING
  from jupyter_client import AsyncKernelManager
  from papermill.clientwrap import PapermillNotebookClient
  from papermill.engines import NBClientEngine
  from papermill.utils import merge_kwargs, remove_args
  from traitlets import Unicode
  from airflow.hooks.base import BaseHook
label_desc: Use image node_id 1 to create a new KernelHook object from inherited base classes: BaseHook with example: obj = KernelHook(kernel_conn_id)