@@ -308,14 +308,15 @@ def save_resultfile(result, cwd, name, rebase=True):
308
308
with indirectory (cwd ):
309
309
# All the magic to fix #2944 resides here:
310
310
for key , old in list (outputs .items ()):
311
- val = rebase_path_traits ( result . outputs . trait ( key ), old , cwd )
312
- if old != val : # Workaround #2968: Reset only changed values
311
+ if isdefined ( old ):
312
+ val = rebase_path_traits ( result . outputs . trait ( key ), old , cwd )
313
313
setattr (result .outputs , key , val )
314
314
savepkl (resultsfile , result )
315
315
finally :
316
316
# Restore resolved paths from the outputs dict no matter what
317
317
for key , val in list (outputs .items ()):
318
- setattr (result .outputs , key , val )
318
+ if isdefined (val ):
319
+ setattr (result .outputs , key , val )
319
320
320
321
321
322
def load_resultfile (path , name , resolve = True ):
@@ -371,8 +372,8 @@ def load_resultfile(path, name, resolve=True):
371
372
372
373
logger .debug ('Resolving paths in outputs loaded from results file.' )
373
374
for trait_name , old in list (outputs .items ()):
374
- value = resolve_path_traits ( result . outputs . trait ( trait_name ), old , path )
375
- if value != old : # Workaround #2968: Reset only changed values
375
+ if isdefined ( old ):
376
+ value = resolve_path_traits ( result . outputs . trait ( trait_name ), old , path )
376
377
setattr (result .outputs , trait_name , value )
377
378
378
379
return result , aggregate , attribute_error
0 commit comments