code: def temp_shell_task(cls, inp, mpi_procs=1, 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
          task = cls.from_input(inp, workdir=workdir, manager=manager.to_shell_manager(mpi_procs=mpi_procs))
          task.set_name('temp_shell_task')
          return task
docs: Build a Task with a temporary workdir. The task is executed via the shell with 1 MPI proc.
          Mainly used for invoking Abinit to get important parameters needed to prepare the real task.
  
          Args:
              mpi_procs: Number of MPI processes to use.