code: def transform(self, Y):
          r
          check_is_fitted(self, 'X_fit_')
  
          n_samples_x, n_features = self.X_fit_.shape
  
          Y = numpy.asarray(Y)
          if Y.shape[1] != n_features:
              raise ValueError('expected array with %d features, but got %d' % (n_features, Y.shape[1]))
  
          n_samples_y = Y.shape[0]
  
          mat = numpy.zeros((n_samples_y, n_samples_x), dtype=float)
  
          continuous_ordinal_kernel_with_ranges(Y[:, self._numeric_columns].astype(numpy.float64),
                                                self.X_fit_[:, self._numeric_columns].astype(numpy.float64),
                                                self._numeric_ranges, mat)
  
          if len(self._nominal_columns) > 0:
              _nominal_kernel(Y[:, self._nominal_columns],
                              self.X_fit_[:, self._nominal_columns],
                              mat)
  
          mat /= n_features
  
          return mat
docs: r"""Compute all pairwise distances between `self.X_fit_` and `Y`.
  
          Parameters
          ----------
          y : array-like, shape = (n_samples_y, n_features)
  
          Returns
          -------
          kernel : ndarray, shape = (n_samples_y, n_samples_X_fit\_)
              Kernel matrix. Values are normalized to lie within [0, 1].