code: def get_iterable_from_callback(
      source_desc: SourceDescription, is_batched
  ):
      """Transform callback that doesn't accept arguments into iterable"""
      print("get_iterable_from_callback")
      first = source_desc.source()
      dtype, shape = _inspect_data(first, is_batched)
  
      class CallableIterator:
          first_value = first
  
          def __init__(self):
              self.source = source_desc.source
  
          def __iter__(self):
              return self
  
          def __next__(self):
              if CallableIterator.first_value is not None:
                  result = CallableIterator.first_value
                  CallableIterator.first_value = None
              else:
                  result = self.source()
              if is_batched:
                  return batch_to_numpy(
                      result,
                      _tf_batch_error_msg,
                      non_uniform_str=_tf_uniform_error_msg,
                  )
              else:
                  return sample_to_numpy(result, _tf_sample_error_msg)
  
      return CallableIterator, dtype, shape
  
imports: from enum import Enum
  from nvidia.dali import types
  from nvidia.dali import tensors
  import inspect
  import functools
label_desc: Use image node_id 13 for calling a global function with example usage: get_iterable_from_callback(source_desc, is_batched) and returns: CallableIterator,  dtype,  shape, self, batch_to_numpy, sample_to_numpy