docstr: From https://github.com/kuenishi/machi-py/blob/master/machi/machi.py
  
  Index entry format:
  0       8       16      24  28  32bytes
  +-------+-------+-------+---+---+
  |gen    |offset |length |crc|st |
  +-------+-------+-------+---+---+
  Indices are appended to index files. Number of max entries per index
  file is to be preset.
code: def append(self, data):
      """
      From https://github.com/kuenishi/machi-py/blob/master/machi/machi.py
  
      Index entry format:
      0       8       16      24  28  32bytes
      +-------+-------+-------+---+---+
      |gen    |offset |length |crc|st |
      +-------+-------+-------+---+---+
      Indices are appended to index files. Number of max entries per index
      file is to be preset.
      """
      if self.is_full():
          raise RuntimeError("Already chunk written full")
  
      if self.do_pickle:
          data = pickle.dumps(data)
  
      self.dfp.write(data)
      self.dfp.flush()
      crc = binascii.crc32(data)
      length = len(data)
      index = pack(
          self.index_format, self.gen, self.offset, length, crc, 0
      )
      self.ifp.write(index)
      self.ifp.flush()
  
      self.offset += length
      self.full = self.chunksize < self.offset
      if self.is_full():
          self.close()
  
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 _ChunkWriter obj's underlying member method code with example usage: obj.append(data) without return types