@@ -292,11 +292,7 @@ def job(self,
292292 ):
293293 # type: (...) -> Generator[Union[JobBase, CallbackJob], None, None]
294294
295- require_prefix = ""
296- if self .metadata ["cwlVersion" ] == "v1.0" :
297- require_prefix = "http://commonwl.org/cwltool#"
298-
299- workReuse , _ = self .get_requirement (require_prefix + "WorkReuse" )
295+ workReuse , _ = self .get_requirement ("WorkReuse" )
300296 enableReuse = workReuse .get ("enableReuse" , True ) if workReuse else True
301297
302298 jobname = uniquename (runtimeContext .name or shortname (self .tool .get ("id" , "job" )))
@@ -518,10 +514,7 @@ def rm_pending_output_callback(output_callbacks, jobcachepending,
518514 j .tmpdir = builder .tmpdir
519515 j .stagedir = builder .stagedir
520516
521- inplaceUpdateReq , _ = self .get_requirement ("http://commonwl.org/cwltool#InplaceUpdateRequirement" )
522- if not inplaceUpdateReq and self .metadata ["cwlVersion" ] == "v1.1.0-dev1" :
523- inplaceUpdateReq , _ = self .get_requirement ("InplaceUpdateRequirement" )
524-
517+ inplaceUpdateReq , _ = self .get_requirement ("InplaceUpdateRequirement" )
525518 if inplaceUpdateReq is not None :
526519 j .inplace_update = inplaceUpdateReq ["inplaceUpdate" ]
527520 normalizeFilesDirs (j .generatefiles )
@@ -553,16 +546,14 @@ def register_reader(f):
553546 adjustDirObjs (builder .files , register_reader )
554547 adjustDirObjs (builder .bindings , register_reader )
555548
556- timelimit , _ = self .get_requirement (require_prefix + "TimeLimit" )
549+ timelimit , _ = self .get_requirement ("TimeLimit" )
557550 if timelimit is not None :
558551 with SourceLine (timelimit , "timelimit" , validate .ValidationException , debug ):
559552 j .timelimit = builder .do_eval (timelimit ["timelimit" ])
560553 if not isinstance (j .timelimit , int ) or j .timelimit < 0 :
561554 raise Exception ("timelimit must be an integer >= 0, got: %s" % j .timelimit )
562555
563- if self .metadata ["cwlVersion" ] == "v1.0" :
564- j .networkaccess = True
565- networkaccess , _ = self .get_requirement (require_prefix + "NetworkAccess" )
556+ networkaccess , _ = self .get_requirement ("NetworkAccess" )
566557 if networkaccess is not None :
567558 with SourceLine (networkaccess , "networkAccess" , validate .ValidationException , debug ):
568559 j .networkaccess = builder .do_eval (networkaccess ["networkAccess" ])
@@ -711,7 +702,7 @@ def collect_output(self,
711702 rfile = files .copy ()
712703 revmap (rfile )
713704 if files ["class" ] == "Directory" :
714- ll = builder . loadListing or ( binding and binding . get ("loadListing" ))
705+ ll = schema . get ("loadListing" ) or builder . loadListing
715706 if ll and ll != "no_listing" :
716707 get_listing (fs_access , files , (ll == "deep_listing" ))
717708 else :
@@ -762,34 +753,22 @@ def collect_output(self,
762753 primary .setdefault ("secondaryFiles" , [])
763754 pathprefix = primary ["path" ][0 :primary ["path" ].rindex ("/" )+ 1 ]
764755 for sf in aslist (schema ["secondaryFiles" ]):
765- if isinstance (sf , MutableMapping ) and 'pattern' in sf :
766- if 'required' in sf :
767- sf_required = sf ['required' ]
768- else :
769- sf_required = False
770- sf = sf ['pattern' ]
756+ if 'required' in sf :
757+ sf_required = builder .do_eval (sf ['required' ], context = primary )
771758 else :
772759 sf_required = False
773760
774- if isinstance (sf , MutableMapping ) or "$(" in sf or "${" in sf :
775- sfpath = builder .do_eval (sf , context = primary )
776- subst = False
761+ if "$(" in sf ["pattern" ] or "${" in sf ["pattern" ]:
762+ sfpath = builder .do_eval (sf ["pattern" ], context = primary )
777763 else :
778- if sf .endswith ('?' ) and \
779- self .metadata ['cwlVersion' ] in ['v1.1.0-dev1' ]:
780- sf_required = False
781- sf = sf [:- 1 ]
782- sfpath = sf
783- subst = True
764+ sfpath = substitute (primary ["basename" ], sf ["pattern" ])
765+
784766 for sfitem in aslist (sfpath ):
785767 if not sfitem :
786768 continue
787769 if isinstance (sfitem , string_types ):
788- if subst :
789- sfitem = {"path" : substitute (primary ["path" ], sfitem )}
790- else :
791- sfitem = {"path" : pathprefix + sfitem }
792- if not os .path .exists (sfitem ['path' ]) and sf_required :
770+ sfitem = {"path" : pathprefix + sfitem }
771+ if not fs_access .exists (sfitem ['path' ]) and sf_required :
793772 raise WorkflowException (
794773 "Missing required secondary file '%s'" % (
795774 sfitem ["path" ]))
0 commit comments