class_docstr: Mixin for user-defined rolling-window Terms.
  
  Implements `_compute` in terms of a user-defined `compute` function, which
  is mapped over the input windows.
  
  Used by CustomFactor, CustomFilter, CustomClassifier, etc.
code: def __new__(
      cls,
      inputs=NotSpecified,
      outputs=NotSpecified,
      window_length=NotSpecified,
      mask=NotSpecified,
      dtype=NotSpecified,
      missing_value=NotSpecified,
      ndim=NotSpecified,
      **kwargs,
  ):
      unexpected_keys = set(kwargs) - set(cls.params)
      if unexpected_keys:
          raise TypeError(
              "{termname} received unexpected keyword "
              "arguments {unexpected}".format(
                  termname=cls.__name__,
                  unexpected={k: kwargs[k] for k in unexpected_keys},
              )
          )
  
      return super(CustomTermMixin, cls).__new__(
          cls,
          inputs=inputs,
          outputs=outputs,
          window_length=window_length,
          mask=mask,
          dtype=dtype,
          missing_value=missing_value,
          ndim=ndim,
          **kwargs,
      )
  
imports: from textwrap import dedent
  from numpy import array, full, recarray, vstack
  from pandas import NaT
  from catalyst.errors import WindowLengthNotPositive, UnsupportedDataType, NoFurtherDataError
  from catalyst.utils.control_flow import nullctx
  from catalyst.utils.input_validation import expect_types
  from catalyst.utils.sharedoc import format_docstring, PIPELINE_ALIAS_NAME_DOC, PIPELINE_DOWNSAMPLING_FREQUENCY_DOC
  from catalyst.utils.pandas_utils import nearest_unequal_elements
  from .downsample_helpers import select_sampling_indices, expect_downsample_frequency
  from .sentinels import NotSpecified
  from .term import Term
label_desc: Use image node_id 1 for calling the CustomTermMixin obj's underlying member method code with example usage: obj.__new__(cls, inputs, outputs, window_length, mask, dtype, missing_value, ndim) and returns: super