class_docstr: The IPython Kernel class.
class_docstr_tok: ["The","IPython","Kernel","class","."]
docstr: Handle an is_complete request.
docstr_tok: ["Handle","an","is_complete","request","."]
code: def do_is_complete(self, code):
      """Handle an is_complete request."""
      transformer_manager = getattr(
          self.shell, "input_transformer_manager", None
      )
      if transformer_manager is None:
          # input_splitter attribute is deprecated
          assert self.shell is not None
          transformer_manager = self.shell.input_splitter
      status, indent_spaces = transformer_manager.check_complete(code)
      r = {"status": status}
      if status == "incomplete":
          r["indent"] = " " * indent_spaces
      return r
  
imports: import asyncio
  import builtins
  import getpass
  import os
  import signal
  import sys
  import threading
  import typing
  from contextlib import contextmanager
  from functools import partial
  import comm
  from IPython.core import release
  from IPython.utils.tokenutil import line_at_cursor, token_at_cursor
  from traitlets import Any, Bool, HasTraits, Instance, List, Type, observe, observe_compat
  from zmq.eventloop.zmqstream import ZMQStream
  from .comm.comm import BaseComm
  from .comm.manager import CommManager
  from .compiler import XCachingCompiler
  from .debugger import Debugger, _is_debugpy_available
  from .eventloops import _use_appnope
  from .kernelbase import Kernel
  from .kernelbase import _accepts_parameters
  from .zmqshell import ZMQInteractiveShell
label_desc: Use image node_id 20 for calling the IPythonKernel obj's underlying member method code with example usage: obj.do_is_complete(code) and returns: r