code: def temp_shell_task(cls, inp, ddb_node, mpi_procs=1,
                          gkk_node=None, md_node=None, ddk_node=None, workdir=None, manager=None):
          
          # Build a simple manager to run the job in a shell subprocess
          import tempfile
          workdir = tempfile.mkdtemp() if workdir is None else workdir
          if manager is None: manager = TaskManager.from_user_config()
  
          # Construct the task and run it
          return cls(inp, ddb_node,
                     gkk_node=gkk_node, md_node=md_node, ddk_node=ddk_node,
                     workdir=workdir, manager=manager.to_shell_manager(mpi_procs=mpi_procs))
docs: Build a :class:`AnaddbTask` with a temporary workdir. The task is executed via
          the shell with 1 MPI proc. Mainly used for post-processing the DDB files.
  
          Args:
              mpi_procs: Number of MPI processes to use.
              anaddb_input: string with the anaddb variables.
              ddb_node: The node that will produce the DDB file. Accept :class:`Task`, :class:`Work` or filepath.
  
          See `AnaddbInit` for the meaning of the other arguments.