code: def iterate(self, update=True):
      if self._batch_size is None:
          yield list(self._inputs) + list(self._extra_inputs)
      else:
          for itr in range(self.number_batches):
              batch_start = itr * self._batch_size
              batch_end = (itr + 1) * self._batch_size
              batch_ids = self._ids[batch_start:batch_end]
              batch = [d[batch_ids] for d in self._inputs]
              yield list(batch) + list(self._extra_inputs)
          if update:
              self.update()
  
imports: import numpy
label_desc: Use image node_id 3 for calling the BatchDataset obj's underlying member method code with example usage: obj.iterate(update) without return types