class_docstr: Describes a batch or sub-batch of work in sample mode that consists of SampleInfo
  instances with consecutive indices. It denotes range of samples within given `iteration`
  of given `epoch_idx`, optionally specifying a slice/sub-range of the sample range.
  It does not support spanning over multiple batches. Used to avoid linear dependency of the task
  description size on the batch size.
code: def __init__(
      self,
      sample_start,
      sample_end,
      iteration,
      epoch_idx,
      *,
      slice_start=0,
      slice_end=None,
  ):
      self.sample_start = (
          sample_start  # idx in epoch of first sample in batch
      )
      self.sample_end = (
          sample_end  # idx in epoch of one past last sample in batch
      )
      self.iteration = iteration  # index of a batch within epoch
      self.epoch_idx = epoch_idx
      if slice_end is None:
          slice_end = sample_end - sample_start
      assert (
          slice_start >= 0 and slice_start <= sample_end - sample_start
      )
      assert (
          slice_end >= slice_start
          and slice_end <= sample_end - sample_start
      )
      # idx of first sample in slice (in a batch not an epoch)
      self.slice_start = slice_start
      # idx of one past last sample in slice (in a batch not an epoch)
      self.slice_end = slice_end
  
imports: from typing import Optional
  from nvidia.dali.types import SampleInfo
  from nvidia.dali._multiproc.struct_message import Structure
label_desc: Use image node_id 1 to create a new SampleRange object  with example: obj = SampleRange(sample_start, sample_end, iteration, epoch_idx)