Efficiently design and manage flexible workflows with AiiDA, featuring an interactive GUI, checkpoints, provenance tracking, and remote execution capabilities.
The reason for the bug was that in this line:
https://github.com/aiidateam/aiida-workgraph/blob/8f6260b44595f79471f6ea70e8efe0f0e158cdab/aiida_workgraph/engine/utils.py#L139
iteration was done over all input arguments of the prepare_shell_job_inputs function, using None as the default for the ones that weren't contained in the inputs dictionary passed to the prepare_for_shell_task function of WorkGraph. This would lead to None values being passed explicitly to the arguments of prepare_shell_job_inputs, in particular resolve_command, effectively overriding its default True value.
Inside aiida-shell the check for the absolute path of the executable inside the prepare_code function (see here) would thus be skipped, and the WorkGraph would just fail silently at a later stage. With this PR, only the input arguments that are also contained in the inputs of the prepare_for_shell_task are being explicitly passed, while the rest is left unset.
Originally noted in #348, and fixes #348.
The reason for the bug was that in this line: https://github.com/aiidateam/aiida-workgraph/blob/8f6260b44595f79471f6ea70e8efe0f0e158cdab/aiida_workgraph/engine/utils.py#L139 iteration was done over all input arguments of the
prepare_shell_job_inputs
function, usingNone
as the default for the ones that weren't contained in theinputs
dictionary passed to theprepare_for_shell_task
function of WorkGraph. This would lead toNone
values being passed explicitly to the arguments ofprepare_shell_job_inputs
, in particularresolve_command
, effectively overriding its defaultTrue
value.Inside
aiida-shell
the check for the absolute path of the executable inside theprepare_code
function (see here) would thus be skipped, and the WorkGraph would just fail silently at a later stage. With this PR, only the input arguments that are also contained in theinputs
of theprepare_for_shell_task
are being explicitly passed, while the rest is left unset.