Skip to content

Commit 62bf7f0

Browse files
authored
Merge pull request #2920 from oesteban/enh/robuster-inputs-passing
ENH: More verbose description when a faulty results file is loaded
2 parents bb68793 + 4908efc commit 62bf7f0

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

nipype/pipeline/engine/nodes.py

+14-11
Original file line numberDiff line numberDiff line change
@@ -514,32 +514,35 @@ def _get_inputs(self):
514514
logger.debug('input: %s', key)
515515
results_file = info[0]
516516
logger.debug('results file: %s', results_file)
517-
results = loadpkl(results_file)
517+
outputs = loadpkl(results_file).outputs
518+
if outputs is None:
519+
raise RuntimeError("""\
520+
Error populating the input "%s" of node "%s": the results file of the source node \
521+
(%s) does not contain any outputs.""" % (key, self.name, results_file))
518522
output_value = Undefined
519523
if isinstance(info[1], tuple):
520524
output_name = info[1][0]
521-
value = getattr(results.outputs, output_name)
525+
value = getattr(outputs, output_name)
522526
if isdefined(value):
523527
output_value = evaluate_connect_function(
524528
info[1][1], info[1][2], value)
525529
else:
526530
output_name = info[1]
527531
try:
528-
output_value = results.outputs.trait_get()[output_name]
532+
output_value = outputs.trait_get()[output_name]
529533
except AttributeError:
530-
output_value = results.outputs.dictcopy()[output_name]
534+
output_value = outputs.dictcopy()[output_name]
531535
logger.debug('output: %s', output_name)
532536
try:
533537
self.set_input(key, deepcopy(output_value))
534538
except traits.TraitError as e:
535-
msg = [
536-
'Error setting node input:',
537-
'Node: %s' % self.name,
538-
'input: %s' % key,
539+
msg = (
540+
e.args[0], '', 'Error setting node input:',
541+
'Node: %s' % self.name, 'input: %s' % key,
539542
'results_file: %s' % results_file,
540-
'value: %s' % str(output_value)
541-
]
542-
e.args = (e.args[0] + "\n" + '\n'.join(msg), )
543+
'value: %s' % str(output_value),
544+
)
545+
e.args = ('\n'.join(msg), )
543546
raise
544547

545548
# Successfully set inputs

0 commit comments

Comments
 (0)