code: def report_csv(obj, job_name, save, fetch):
      """
      Generates a CSV report with the different tasks information
      from a Crossbow run.
      """
      output = obj["output"]
      queue = obj["queue"]
      if fetch:
          queue.fetch()
  
      job = queue.get(job_name)
      report = Report(job)
      if save:
          ReportUtils.write_csv(report)
      else:
          output.write("\n".join([str(row) for row in report.rows]))
  
imports: from datetime import date
  from pathlib import Path
  import time
  import sys
  import click
  from .core import Config, Repo, Queue, Target, Job, CrossbowError
  from .reports import ChatReport, Report, ReportUtils, ConsoleReport, EmailReport, CommentReport
  from ..utils.source import ArrowSources
label_desc: Use image node_id 11 for calling a global function with example usage: report_csv(obj, job_name, save, fetch) without return types