class_docstr: A class for managing multiple kernels.
class_docstr_tok: ["A","class","for","managing","multiple","kernels","."]
docstr: Start a new kernel.
  
  The caller can pick a kernel_id by passing one in as a keyword arg,
  otherwise one will be picked using a uuid.
  
  The kernel ID for the newly started kernel is returned.
code: def start_kernel(self, kernel_name=None, **kwargs):
      """Start a new kernel.
  
      The caller can pick a kernel_id by passing one in as a keyword arg,
      otherwise one will be picked using a uuid.
  
      The kernel ID for the newly started kernel is returned.
      """
      kernel_id = kwargs.pop("kernel_id", unicode_type(uuid.uuid4()))
      if kernel_id in self:
          raise DuplicateKernelError(
              "Kernel already exists: %s" % kernel_id
          )
  
      if kernel_name is None:
          kernel_name = self.default_kernel_name
      # kernel_manager_factory is the constructor for the KernelManager
      # subclass we are using. It can be configured as any Configurable,
      # including things like its transport and ip.
      constructor_kwargs = {}
      if self.kernel_spec_manager:
          constructor_kwargs[
              "kernel_spec_manager"
          ] = self.kernel_spec_manager
      km = self.kernel_manager_factory(
          connection_file=os.path.join(
              self.connection_dir, "kernel-%s.json" % kernel_id
          ),
          parent=self,
          log=self.log,
          kernel_name=kernel_name,
          **constructor_kwargs,
      )
      km.start_kernel(**kwargs)
      self._kernels[kernel_id] = km
      return kernel_id
  
imports: from __future__ import absolute_import
  import os
  import uuid
  import zmq
  from traitlets.config.configurable import LoggingConfigurable
  from ipython_genutils.importstring import import_item
  from traitlets import Any, Bool, Dict, DottedObjectName, Instance, Unicode, default, observe
  from ipython_genutils.py3compat import unicode_type
  from .kernelspec import NATIVE_KERNEL_NAME, KernelSpecManager
label_desc: Use image node_id 9 for calling the MultiKernelManager obj's underlying member method code with example usage: obj.start_kernel(kernel_name) and returns: kernel_id