code: def __iter__(self):
      if not self._shuffle:
          for k in range(self._size):
              yield self._db[k]
      else:
          keys = list(range(self._size))
          self.rng.shuffle(keys)
          for k in keys:
              yield self._db[k]
  
imports: import numpy
  import os
  import six
  from ..utils import logger
  from ..utils.argtools import log_once
  from ..utils.serialize import loads
  from ..utils.develop import create_dummy_class
  from ..utils.loadcaffe import get_caffe_pb
  from ..utils.timer import timed_operation
  from ..utils.utils import get_tqdm
  from .base import DataFlowReentrantGuard, RNGDataFlow
  from .common import MapData
label_desc: Use image node_id 3 for calling the DiskCacheData obj's underlying member method code with example usage: obj.__iter__() without return types