code: def _kernel_dirs_default(self):
      dirs = jupyter_path("kernels")
      # At some point, we should stop adding .ipython/kernels to the path,
      # but the cost to keeping it is very small.
      try:
          from IPython.paths import get_ipython_dir
      except ImportError:
          try:
              from IPython.utils.path import get_ipython_dir
          except ImportError:
              # no IPython, no ipython dir
              get_ipython_dir = None
      if get_ipython_dir is not None:
          dirs.append(os.path.join(get_ipython_dir(), "kernels"))
      return dirs
  
imports: import errno
  import io
  import json
  import os
  import re
  import shutil
  import warnings
  from ipython_genutils.py3compat import PY3
  from traitlets import HasTraits, List, Unicode, Dict, Set, Bool, Type, CaselessStrEnum
  from traitlets.config import LoggingConfigurable
  from jupyter_core.paths import jupyter_data_dir, jupyter_path, SYSTEM_JUPYTER_PATH
label_desc: Use image node_id 3 for calling the KernelSpecManager obj's underlying member method code with example usage: obj._kernel_dirs_default() and returns: dirs