@@ -249,14 +249,15 @@ def save_resultfile(result, cwd, name, rebase=True):
249
249
with indirectory (cwd ):
250
250
# All the magic to fix #2944 resides here:
251
251
for key , old in list (outputs .items ()):
252
- val = rebase_path_traits ( result . outputs . trait ( key ), old , cwd )
253
- if old != val : # Workaround #2968: Reset only changed values
252
+ if isdefined ( old ):
253
+ val = rebase_path_traits ( result . outputs . trait ( key ), old , cwd )
254
254
setattr (result .outputs , key , val )
255
255
savepkl (resultsfile , result )
256
256
finally :
257
257
# Restore resolved paths from the outputs dict no matter what
258
258
for key , val in list (outputs .items ()):
259
- setattr (result .outputs , key , val )
259
+ if isdefined (val ):
260
+ setattr (result .outputs , key , val )
260
261
261
262
262
263
def load_resultfile (results_file , resolve = True ):
@@ -306,9 +307,9 @@ def load_resultfile(results_file, resolve=True):
306
307
307
308
logger .debug ('Resolving paths in outputs loaded from results file.' )
308
309
for trait_name , old in list (outputs .items ()):
309
- value = resolve_path_traits ( result . outputs . trait ( trait_name ), old ,
310
- results_file . parent )
311
- if value != old : # Workaround #2968: Reset only changed values
310
+ if isdefined ( old ):
311
+ value = resolve_path_traits ( result . outputs . trait ( trait_name ), old ,
312
+ results_file . parent )
312
313
setattr (result .outputs , trait_name , value )
313
314
314
315
return result , aggregate , attribute_error
0 commit comments