code: def setup(
      self, constructor, dtype, window_kwargs, function, parallel, cols
  ):
      N = 10**3
      window, kwargs = window_kwargs
      shape = (
          (N, cols)
          if cols is not None and constructor != "Series"
          else N
      )
      arr = (100 * np.random.random(shape)).astype(dtype)
      data = getattr(pd, constructor)(arr)
  
      # Warm the cache
      with warnings.catch_warnings(record=True):
          # Catch parallel=True not being applicable e.g. 1D data
          self.window = getattr(data, window)(**kwargs)
          self.window.apply(
              function,
              raw=True,
              engine="numba",
              engine_kwargs={"parallel": parallel},
          )
  
imports: import warnings
  import numpy
  import pandas
  from .pandas_vb_common import setup
label_desc: Use image node_id 1 for calling the NumbaEngineApply obj's underlying member method code with example usage: obj.setup(constructor, dtype, window_kwargs, function, parallel, cols) without return types