class_docstr: White kernel implementation.
code: def _call(
      self,
      X: np.ndarray,
      Y: np.ndarray | None = None,
      eval_gradient: bool = False,
      active: np.ndarray | None = None,
  ) -> np.ndarray | tuple[np.ndarray, np.ndarray]:
      X = np.atleast_2d(X)
  
      if Y is not None and eval_gradient:
          raise ValueError(
              "Gradient can only be evaluated when Y is None."
          )
  
      if Y is None:
          K = self.noise_level * np.eye(X.shape[0])
  
          if active is not None:
              K = K * active
  
          if eval_gradient:
              if not self.hyperparameter_noise_level.fixed:
                  return (
                      K,
                      self.noise_level
                      * np.eye(X.shape[0])[:, :, np.newaxis],
                  )
              else:
                  return K, np.empty((X.shape[0], X.shape[0], 0))
          else:
              return K
      else:
          return np.zeros((X.shape[0], Y.shape[0]))
  
file_path: SMAC3/smac/model/gaussian_process/kernels/white_kernel.py
imports: from __future__ import annotations
  import numpy
  import sklearn.gaussian_process.kernels
  from smac.model.gaussian_process.kernels.base_kernels import AbstractKernel
  from smac.model.gaussian_process.priors.abstract_prior import AbstractPrior
label_desc: Use image node_id 2 for calling the WhiteKernel obj's underlying member method code with example usage: obj._call(X, Y, eval_gradient, active) and returns: np, K, K,  unknown, K,  np