@@ -366,27 +366,26 @@ def collect_output_ports(self, ports, builder, outdir, compute_checksum=True):
366
366
with builder .fs_access .open (custom_output , "r" ) as f :
367
367
ret = json .load (f )
368
368
_logger .debug (u"Raw output from %s: %s" , custom_output , json .dumps (ret , indent = 4 ))
369
+ else :
370
+ for port in ports :
371
+ fragment = shortname (port ["id" ])
372
+ try :
373
+ ret [fragment ] = self .collect_output (port , builder , outdir , compute_checksum )
374
+ except Exception as e :
375
+ _logger .debug (u"Error collecting output for parameter '%s'" % shortname (port ["id" ]), exc_info = e )
376
+ raise WorkflowException (u"Error collecting output for parameter '%s': %s" % (shortname (port ["id" ]), e ))
377
+
378
+ if ret :
369
379
adjustFileObjs (ret ,
370
380
cast (Callable [[Any ], Any ], # known bug in mypy
371
381
# https://github.com/python/mypy/issues/797
372
382
partial (revmap_file , builder , outdir )))
373
383
adjustFileObjs (ret , remove_path )
374
384
adjustDirObjs (ret , remove_path )
375
385
normalizeFilesDirs (ret )
376
- validate .validate_ex (self .names .get_name ("outputs_record_schema" , "" ), ret )
377
- return ret
378
-
379
- for port in ports :
380
- fragment = shortname (port ["id" ])
381
- try :
382
- ret [fragment ] = self .collect_output (port , builder , outdir , compute_checksum )
383
- except Exception as e :
384
- _logger .debug (u"Error collecting output for parameter '%s'" % shortname (port ["id" ]), exc_info = e )
385
- raise WorkflowException (u"Error collecting output for parameter '%s': %s" % (shortname (port ["id" ]), e ))
386
- if ret :
387
- adjustFileObjs (ret , remove_path )
388
- adjustDirObjs (ret , remove_path )
389
- normalizeFilesDirs (ret )
386
+ if compute_checksum :
387
+ adjustFileObjs (ret , partial (compute_checksums , builder .fs_access ))
388
+
390
389
validate .validate_ex (self .names .get_name ("outputs_record_schema" , "" ), ret )
391
390
return ret if ret is not None else {}
392
391
except validate .ValidationException as e :
@@ -491,9 +490,6 @@ def collect_output(self, schema, builder, outdir, compute_checksum=True):
491
490
if not r and optional :
492
491
r = None
493
492
494
- if r and compute_checksum :
495
- adjustFileObjs (r , partial (compute_checksums , builder .fs_access ))
496
-
497
493
if (not r and isinstance (schema ["type" ], dict ) and
498
494
schema ["type" ]["type" ] == "record" ):
499
495
out = {}
0 commit comments