class_docstr: Base class of snapshot writers.
  
  :class:`~chainer.training.extensions.Snapshot` invokes ``__call__`` of this
  class every time when taking a snapshot.
  This class determines how the actual saving function will be invoked.
  
  .. seealso::
  
      - :meth:`chainer.training.extensions.snapshot`
code: def save(self, filename, outdir, target, savefun, **kwds):
      prefix = "tmp" + filename
      with utils.tempdir(prefix=prefix, dir=outdir) as tmpdir:
          tmppath = os.path.join(tmpdir, filename)
          savefun(tmppath, target)
          shutil.move(tmppath, os.path.join(outdir, filename))
  
      self._post_save()
  
imports: import multiprocessing
  import os
  import shutil
  import threading
  from six.moves import queue
  from chainer.serializers import npz
  from chainer import utils
label_desc: Use image node_id 5 for calling the Writer obj's underlying member method code with example usage: obj.save(filename, outdir, target, savefun) without return types