code: def fit_gp_with_dataset(dataset, kernel_type="se", *args, **kwargs):
      """A wrapper to fit a gp with the given dataset."""
      if kernel_type == "se":
          return fit_se_gp_with_dataset(dataset, *args, **kwargs)
      elif kernel_type == "matern":
          return fit_matern_gp_with_dataset(dataset, *args, **kwargs)
      elif kernel_type == "poly":
          return fit_poly_gp_with_dataset(dataset, *args, **kwargs)
      else:
          raise ValueError("Unknown kernel type %s." % (kernel_type))
  
imports: from __future__ import division
  from argparse import Namespace
  from copy import deepcopy
  import numpy
  from .None import kernel
  from .unittest_euclidean_gp import fit_se_gp_with_dataset, fit_matern_gp_with_dataset, fit_poly_gp_with_dataset
  from .None import euclidean_gp
  from ..utils.base_test_class import BaseTestClass, execute_tests
  from ..utils.general_utils import compute_average_sq_prediction_error
  from ..utils.option_handler import load_options
label_desc: Use image node_id 1 for calling a global function with example usage: fit_gp_with_dataset(dataset, kernel_type) and returns: fit_se_gp_with_dataset, fit_matern_gp_with_dataset, fit_poly_gp_with_dataset