code: def _new_connection_file(self):
      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]
          cf = os.path.join(self.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 uuid
  import warnings
  from traitlets.config.application import boolean_flag
  from ipython_genutils.path import filefind
  from traitlets import Dict, List, Unicode, CUnicode, CBool, Any
  from jupyter_core.application import base_flags, base_aliases
  from .blocking import BlockingKernelClient
  from .restarter import KernelRestarter
  from .None import KernelManager, tunnel_to_kernel, find_connection_file, connect
  from .kernelspec import NoSuchKernel
  from .session import Session
  from .localinterfaces import localhost
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