code: def read_chunk(self, gen, do_unpickle=True):
      datafile = os.path.join(
          self.datadir, _DATA_FILENAME_FORMAT.format(gen)
      )
  
      indices = self.read_chunk_index(gen)
      with self.fs.open(datafile, "rb") as dfp:
          # TODO: inefficient; chunked read
          cdata = dfp.read()
  
      for index in indices:
          g, o, l, c, _ = index
          data = cdata[o : o + l]
          crc = binascii.crc32(data)
          assert crc == c
          if do_unpickle:
              data = pickle.loads(data)
          yield data
  
imports: import binascii
  import collections
  import os
  import pickle
  from datetime import datetime
  from struct import calcsize, pack, unpack
  from pfrl.collections.random_access_queue import RandomAccessQueue
label_desc: Use image node_id 3 for calling the _ChunkReader obj's underlying member method code with example usage: obj.read_chunk(gen, do_unpickle) without return types