code: def apply_one_kernel_one_sample(
      x, n_timestamps, weight, length, bias, dilation, padding
  ):
      """Apply one kernel to one time series.
  
      Parameters
      ----------
      x : array, shape = (n_timestamps,)
          One time series.
  
      n_timestamps : int
          Number of timestamps.
  
      weights : array, shape = (length,)
          Weights of the kernel. Zero padding values are added.
  
      length : int
          Length of the kernel.
  
      bias : int
          Bias of the kernel.
  
      dilation : int
          Dilation of the kernel.
  
      padding : int
          Padding of the kernel.
  
      Returns
      -------
      x_new : array, shape = (2,)
          Extracted features using the kernel.
  
      """
      # Compute padded x
      n_conv = n_timestamps - ((length - 1) * dilation) + (2 * padding)
      if padding > 0:
          x_pad = np.zeros(n_timestamps + 2 * padding)
          x_pad[padding:-padding] = x
      else:
          x_pad = x
  
      # Compute the convolutions
      x_conv = np.zeros(n_conv)
      for i in prange(n_conv):
          for j in prange(length):
              x_conv[i] += weight[j] * x_pad[i + (j * dilation)]
      x_conv += bias
  
      # Return the features: maximum and proportion of positive values
      return np.max(x_conv), np.mean(x_conv > 0)
  
file_path: pyts/pyts/transformation/rocket.py
imports: from numba import njit, prange
  import numpy
  from sklearn.base import BaseEstimator
  from sklearn.utils.validation import check_array, check_is_fitted, check_random_state
  from ..base import UnivariateTransformerMixin
label_desc: Use image node_id 2 for calling a global function with example usage: apply_one_kernel_one_sample(x, n_timestamps, weight, length, bias, dilation, padding) and returns: np,  np