code: def __init__(
      self,
      callback,
      source_desc,
      is_multioutput,
      instances=[],
      *,
      cuda_stream=None,
      use_copy_kernel=None,
      batch=True,
      parallel=False,
      prefetch_queue_depth=None,
      bytes_per_sample_hint=None,
      batch_info=None,
  ):
      self.instances = list(instances)  # we need a copy!
      self.utilized_instances = self.instances
      self.is_multioutput = is_multioutput
      self.callback = callback
      self.source_desc = source_desc
      self._cuda_stream = cuda_stream
      self.use_copy_kernel = use_copy_kernel
      self.batch = batch
      self.batch_info = batch_info
      # Index of a batch within the epoch that will be returned from
      # get_batch or schedule_and_receive call. Contrary to Pipeline's
      # `epoch_idx` it is tracked separately by ExternalSourceGroup due to
      # prefetching of batches in parallel mode.
      self.current_iter = 0
      self.current_sample = 0
      self.parallel = parallel
      self.prefetch_queue_depth = prefetch_queue_depth
      self.bytes_per_sample_hint = bytes_per_sample_hint
      if callback is not None:
          arg_count = _accepted_arg_count(callback)
          if arg_count not in [0, 1]:
              raise TypeError(
                  "External source callback must be a callable with 0 or 1 argument"
              )
          self.accepts_arg = arg_count > 0
  
imports: from nvidia.dali import backend
  from nvidia.dali import tensors
  from nvidia.dali import types
  from nvidia.dali._multiproc.messages import TaskArgs, SampleRange
  import nvidia.dali.types
  from nvidia.dali._utils.external_source_impl import get_callback_from_source, accepted_arg_count, SourceKind
label_desc: Use image node_id 1 to create a new _ExternalSourceGroup object from inherited base classes: object with example: obj = _ExternalSourceGroup(callback, source_desc, is_multioutput, instances)