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