code: def numba_func_pipe(
      shapes,
      dtype,
      device="cpu",
      run_fn=None,
      out_types=None,
      in_types=None,
      outs_ndim=None,
      ins_ndim=None,
      setup_fn=None,
      batch_processing=None,
      blocks=None,
      threads_per_block=None,
  ):
      data = fn.external_source(
          lambda: get_data(shapes, dtype), batch=True, device=device
      )
      return numba_function(
          data,
          run_fn=run_fn,
          out_types=out_types,
          in_types=in_types,
          outs_ndim=outs_ndim,
          ins_ndim=ins_ndim,
          setup_fn=setup_fn,
          batch_processing=batch_processing,
          device=device,
          blocks=blocks,
          threads_per_block=threads_per_block,
      )
  
imports: import numpy
  import os
  from nvidia.dali import pipeline_def
  import nvidia.dali
  import nvidia.dali.fn
  import nvidia.dali.types
  from nose import with_setup
  from test_utils import get_dali_extra_path, to_array, check_numba_compatibility_cpu, check_numba_compatibility_gpu
  from nvidia.dali.plugin.numba.fn.experimental import numba_function
  from numba import cuda
label_desc: Use image node_id 16 for calling a global function with example usage: numba_func_pipe(shapes, dtype, device, run_fn, out_types, in_types, outs_ndim, ins_ndim, setup_fn, batch_processing, blocks, threads_per_block) and returns: numba_function