class_docstr: This class contains various properties and methods for the data source, which are utilized by py:class:`DataIterator`.
  
  Args:
      shuffle (bool):
           Indicates whether the dataset is shuffled or not.
      rng (None or :obj:`numpy.random.RandomState`): Numpy random number
          generator.
class_docstr_tok: ["This","class","contains","various","properties","and","methods","for","the","data","source",",","which","are","utilized","by","py",":","class",":","`","DataIterator","`",".","Args",":","shuffle","(","bool",")",":","Indicates","whether","the","dataset","is","shuffled","or","not",".","rng","(","None","or",":","obj",":","`","numpy.random.RandomState","`",")",":","Numpy","random","number","generator","."]
docstr: position
  
  Data position in current epoch.
  
  Returns:
      int: Data position
docstr_tok: ["position","Data","position","in","current","epoch",".","Returns",":","int",":","Data","position"]
code: def position(self):
      """position
  
      Data position in current epoch.
  
      Returns:
          int: Data position
      """
      return self._position
  
imports: import warnings
  from collections import OrderedDict
  from contextlib import closing
  from multiprocessing import Queue
  from multiprocessing.pool import ThreadPool
  from shutil import rmtree
  import abc
  import atexit
  import warnings
  import h5py
  import csv
  import numpy
  import os
  import six
  import tempfile
  import threading
  from nnabla.config import nnabla_config
  from nnabla.logger import logger
  from nnabla.utils.progress import progress
  from nnabla.utils.communicator_util import single_or_rankzero
  from .data_source_loader import FileReader
label_desc: Use image node_id 12 for calling the DataSource obj's underlying member method code with example usage: obj.position() and returns: self