class_docstr: The base Jupyter console application.
class_docstr_tok: ["The","base","Jupyter","console","application","."]
code: def _new_connection_file(self) -> str:
      cf = ""
      while not cf:
          # we don't need a 128b id to distinguish kernels, use more readable
          # 48b node segment (12 hex chars).  Users running more than 32k simultaneous
          # kernels can subclass.
          ident = str(uuid.uuid4()).split("-")[-1]
          runtime_dir = self.runtime_dir  # type:ignore[attr-defined]
          cf = os.path.join(runtime_dir, "kernel-%s.json" % ident)
          # only keep if it's actually new.  Protect against unlikely collision
          # in 48b random search space
          cf = cf if not os.path.exists(cf) else ""
      return cf
  
imports: import atexit
  import os
  import signal
  import sys
  import typing
  import uuid
  import warnings
  from jupyter_core.application import base_aliases, base_flags
  from traitlets import CBool, CUnicode, Dict, List, Type, Unicode
  from traitlets.config.application import boolean_flag
  from .None import KernelManager, connect, find_connection_file, tunnel_to_kernel
  from .blocking import BlockingKernelClient
  from .connect import KernelConnectionInfo
  from .kernelspec import NoSuchKernel
  from .localinterfaces import localhost
  from .restarter import KernelRestarter
  from .session import Session
  from .utils import _filefind
label_desc: Use image node_id 5 for calling the JupyterConsoleApp obj's underlying member method code with example usage: obj._new_connection_file() and returns: cf