code: def _write_ndarrays_cache_to_disk(self):
          
          for h5loc, arrs in self._ndarrays_cache.items():
              title = arrs[0].title
              chunkshape = (self.chunksize,) + arrs[0].shape[1:] if self.chunksize is not\
                                                             None else None
  
              arr = NDArray(np.concatenate(arrs), h5loc=h5loc, title=title)
  
              if h5loc not in self._ndarrays:
                  loc, tabname = os.path.split(h5loc)
                  ndarr = self.h5file.create_earray(
                      loc,
                      tabname,
                      tb.Atom.from_dtype(arr.dtype),
                      (0, ) + arr.shape[1:],
                      chunkshape=chunkshape,
                      title=title,
                      filters=self.filters,
                      createparents=True,
                  )
                  self._ndarrays[h5loc] = ndarr
              else:
                  ndarr = self._ndarrays[h5loc]
  
              idx_table_h5loc = h5loc + '_indices'
              if idx_table_h5loc not in self.indices:
                  self.indices[idx_table_h5loc] = HDF5IndexTable(idx_table_h5loc)
              idx_tab = self.indices[idx_table_h5loc]
  
              for arr_length in (len(a) for a in arrs):
                  idx_tab.append(arr_length)
  
              ndarr.append(arr)
  
          self._ndarrays_cache = defaultdict(list)
docs: Writes all the cached NDArrays to disk and empties the cache