code: def makeJob(tool, jobobj, step_inputs, runtime_context):
      
  
      if tool.tool["class"] == "Workflow":
          wfjob = CWLWorkflow(tool, jobobj, runtime_context)
          followOn = ResolveIndirect(wfjob.rv())
          wfjob.addFollowOn(followOn)
          return (wfjob, followOn)
      else:
          # get_requirement
          resourceReq, _ = tool.get_requirement("ResourceRequirement")
          if resourceReq:
              for req in ("coresMin", "coresMax", "ramMin", "ramMax",
                          "tmpdirMin", "tmpdirMax", "outdirMin", "outdirMax"):
                  r = resourceReq.get(req)
                  if isinstance(r, string_types) and ("$(" in r or "${" in r):
                      # Found a dynamic resource requirement so use a job wrapper
                      job = CWLJobWrapper(tool, jobobj, runtime_context)
                      return (job, job)
          job = CWLJob(tool, jobobj, runtime_context)
          return (job, job)
docs: Create the correct Toil Job object for the CWL tool (workflow, job, or job
      wrapper for dynamic resource requirements.)