class_docstr: Standalone IPython debugger.
docstr: Repeatedly issue a prompt, accept input, parse an initial prefix
  off the received input, and dispatch to action methods, passing them
  the remainder of the line as argument.
  
  override the same methods from cmd.Cmd to provide prompt toolkit replacement.
docstr_tok: ["Repeatedly","issue","a","prompt",",","accept","input",",","parse","an","initial","prefix","off","the","received","input",",","and","dispatch","to","action","methods",",","passing","them","the","remainder","of","the","line","as","argument",".","override","the","same","methods","from","cmd.Cmd","to","provide","prompt","toolkit","replacement","."]
code: def cmdloop(self, intro=None):
      """Repeatedly issue a prompt, accept input, parse an initial prefix
      off the received input, and dispatch to action methods, passing them
      the remainder of the line as argument.
  
      override the same methods from cmd.Cmd to provide prompt toolkit replacement.
      """
      if not self.use_rawinput:
          raise ValueError(
              "Sorry ipdb does not support use_rawinput=False"
          )
  
      # In order to make sure that prompt, which uses asyncio doesn't
      # interfere with applications in which it's used, we always run the
      # prompt itself in a different thread (we can't start an event loop
      # within an event loop). This new thread won't have any event loop
      # running, and here we run our prompt-loop.
      self.preloop()
  
      try:
          if intro is not None:
              self.intro = intro
          if self.intro:
              print(self.intro, file=self.stdout)
          stop = None
          while not stop:
              if self.cmdqueue:
                  line = self.cmdqueue.pop(0)
              else:
                  self._ptcomp.ipy_completer.namespace = (
                      self.curframe_locals
                  )
                  self._ptcomp.ipy_completer.global_namespace = (
                      self.curframe.f_globals
                  )
  
                  # Run the prompt in a different thread.
                  if not _use_simple_prompt:
                      try:
                          line = self.thread_executor.submit(
                              self._prompt
                          ).result()
                      except EOFError:
                          line = "EOF"
                  else:
                      line = input("ipdb> ")
  
              line = self.precmd(line)
              stop = self.onecmd(line)
              stop = self.postcmd(stop, line)
          self.postloop()
      except Exception:
          raise
  
imports: import asyncio
  import os
  import sys
  from IPython.core.debugger import Pdb
  from IPython.core.completer import IPCompleter
  from .ptutils import IPythonPTCompleter
  from .shortcuts import create_ipython_shortcuts
  from .None import embed
  from pathlib import Path
  from pygments.token import Token
  from prompt_toolkit.application import create_app_session
  from prompt_toolkit.shortcuts.prompt import PromptSession
  from prompt_toolkit.enums import EditingMode
  from prompt_toolkit.formatted_text import PygmentsTokens
  from prompt_toolkit.history import InMemoryHistory, FileHistory
  from concurrent.futures import ThreadPoolExecutor
  from prompt_toolkit import __version__
label_desc: Use image node_id 4 for calling the TerminalPdb obj's underlying member method code with example usage: obj.cmdloop(intro) without return types