docs: def get_tempdir():
      """ Get the temporary directory where pyelastix stores its temporary
      files. The directory is specific to the current process and the
      calling thread. Generally, the user does not need this; directories
      are automatically cleaned up. Though Elastix log files are also
      written here.
      """
      tempdir = os.path.join(tempfile.gettempdir(), 'pyelastix')
      
      # Make sure it exists
      if not os.path.isdir(tempdir):
          os.makedirs(tempdir)
      
      # Clean up all directories for which the process no longer exists
      for fname in os.listdir(tempdir):
          dirName = os.path.join(tempdir, fname)
          # Check if is right kind of dir
          if not (os.path.isdir(dirName) and  fname.startswith('id_')):
              continue
          # Get pid and check if its running
          try:
              pid = int(fname.split('_')[1])
          except Exception:
              continue
          if not _is_pid_running(pid):
              _clear_dir(dirName)
      
      # Select dir that included process and thread id
      tid = id(threading.current_thread() if hasattr(threading, 'current_thread')
                                          else threading.currentThread())
      dir = os.path.join(tempdir, 'id_%i_%i' % (os.getpid(), tid))
      if not os.path.isdir(dir):
          os.mkdir(dir)
      return dir