code: def main(
      test_collection_file: Optional[str] = None,
      output: Optional[str] = None,
  ):
      output = output or os.path.join(
          os.path.dirname(__file__), "test_summary.csv"
      )
  
      tests = read_and_validate_release_test_collection(
          test_collection_file or ["release/release_tests.yaml"]
      )
  
      with open(output, "w") as f:
          writer = csv.DictWriter(
              f, fieldnames=["name", "group", "num_cpus", "num_gpus"]
          )
          writer.writeheader()
  
          for test in tests:
              name = test["name"]
              cpus, gpus = get_test_resources(test)
              group = test["group"]
              writer.writerow(
                  {
                      "name": name,
                      "group": group,
                      "num_cpus": cpus,
                      "num_gpus": gpus,
                  }
              )
  
imports: import csv
  import os
  from typing import Optional
  import click
  from ray_release.buildkite.concurrency import get_test_resources
  from ray_release.config import read_and_validate_release_test_collection
label_desc: Use image node_id 1 for calling a global function with example usage: main(test_collection_file, output) without return types