code: def setup_coverage(config, kernel, floc, output_loc=None):
      
  
      language = kernel.language
      if language.startswith('python'):
          # Get the pytest-cov coverage object
          cov = get_cov(config)
          if cov:
              # If present, copy the data file location used by pytest-cov
              data_file = os.path.abspath(cov.config.data_file)
          else:
              # Fall back on output_loc and current dir if not
              data_file = os.path.abspath(os.path.join(output_loc or os.getcwd(), '.coverage'))
  
          # Get options from pytest-cov's command line arguments:
          source = config.option.cov_source
          config_file = config.option.cov_config
          if isinstance(config_file, str) and os.path.isfile(config_file):
              config_file = os.path.abspath(config_file)
  
          # Copy the suffix of plugin if available
          suffix = _make_suffix(cov)
          if suffix is True:
              # Cannot merge data with autogen suffix, so turn off warning
              # for missing data in pytest-cov collector
              cov._warn_no_data = False
  
          # Build setup command and execute in kernel:
          cmd = _python_setup % (data_file, source, config_file, suffix)
          msg_id = kernel.kc.execute(cmd, stop_on_error=False)
          kernel.await_idle(msg_id, 60)  # A minute should be plenty to enable coverage
      else:
          config.warn(
              'C1',
              'Coverage currently not supported for language "%s".' % language,
              floc)
          return
docs: Start coverage reporting in kernel.
  
      Currently supported kernel languages are:
       - Python