Skip to content

Commit ee6431f

Browse files
committed
FIX: Identify collapsing traits and wrap in list
1 parent 69dce12 commit ee6431f

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

nipype/pipeline/engine/utils.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,12 +233,25 @@ def write_report(node, report_type=None, is_mapnode=False):
233233
return
234234

235235

236+
def _protect_collapses(hastraits):
237+
raw = hastraits.trait_get()
238+
cloned = hastraits.clone_traits().trait_get()
239+
240+
for key in raw:
241+
val = raw[key]
242+
c = cloned[key]
243+
if c != val and hasattr(val, '__getitem__') and c == val[0]:
244+
raw[key] = [val]
245+
246+
return raw
247+
248+
236249
def save_resultfile(result, cwd, name):
237250
"""Save a result pklz file to ``cwd``"""
238251
resultsfile = os.path.join(cwd, 'result_%s.pklz' % name)
239252
if result.outputs:
240253
try:
241-
outputs = result.outputs.trait_get()
254+
outputs = _protect_collapses(result.outputs)
242255
except AttributeError:
243256
outputs = result.outputs.dictcopy() # outputs was a bunch
244257
result.outputs.set(**modify_paths(outputs, relative=True, basedir=cwd))

0 commit comments

Comments
 (0)