code: def main() -> None:
      parser = argparse.ArgumentParser(
          description="Format files with usort.",
          fromfile_prefix_chars="@",
      )
      parser.add_argument(
          "filenames",
          nargs="+",
          help="paths to lint",
      )
      args = parser.parse_args()
  
      with concurrent.futures.ThreadPoolExecutor(
          max_workers=os.cpu_count(),
          thread_name_prefix="Thread",
      ) as executor:
          futures = {
              executor.submit(check_file, filename): filename
              for filename in args.filenames
          }
          for future in concurrent.futures.as_completed(futures):
              try:
                  for lint_message in future.result():
                      print(
                          json.dumps(lint_message._asdict()), flush=True
                      )
              except Exception:
                  raise RuntimeError(f"Failed at {futures[future]}")
  
file_path: torchrec/tools/lint/usort_linter.py
imports: import argparse
  import concurrent.futures
  import json
  import os
  import subprocess
  from typing import List
  from usort import config, usort
  from utils import as_posix, LintMessage, LintSeverity
label_desc: Use image node_id 2 for calling a global function with example usage: main() without return types