code: def populate_jobset(job, jobset, depth):
      
      jobset.add(job)
      if len(job.dependencies) == 0:
          return jobset
      for j in job.dependencies:
          jobset = populate_jobset(j, jobset, depth+1)
      return jobset
docs: Creates a set of jobs, containing jobs at difference depths of the
      dependency tree, retaining dependencies as strings, not Jobs.