code: def __call__(self, sample_info):
      if sample_info.iteration >= self.epoch_size:
          raise StopIteration
      return np.array(
          [
              sample_info.idx_in_epoch,
              sample_info.idx_in_batch,
              sample_info.iteration,
              sample_info.epoch_idx,
          ],
          dtype=np.int32,
      )
  
imports: import random
  import nvidia.dali.fn
  import nvidia.dali.ops
  import nvidia.dali.types
  import numpy
  from nvidia.dali import Pipeline, pipeline_def
  from test_utils import check_batch
  from nose_utils import raises, assert_warns, assert_raises
  from nvidia.dali.types import DALIDataType
  from numpy.random import default_rng
label_desc: Use image node_id 2 for calling the SampleCb obj's underlying member method code with example usage: obj.__call__(sample_info) and returns: np