code: def convert_files(
      pt_files: List[Path],
      sf_files: List[Path],
      discard_names: List[str],
  ):
      assert len(pt_files) == len(sf_files)
  
      N = len(pt_files)
      # We do this instead of using tqdm because we want to parse the logs with the launcher
  
      for i, (pt_file, sf_file) in enumerate(zip(pt_files, sf_files)):
          # Skip blacklisted files
          if (
              "arguments" in pt_file.name
              or "args" in pt_file.name
              or "training" in pt_file.name
          ):
              continue
  
          start = datetime.datetime.now()
          convert_file(pt_file, sf_file, discard_names)
          elapsed = datetime.datetime.now() - start
          logger.info(f"Convert: [{i + 1}/{N}] -- Took: {elapsed}")
  
file_path: text-generation-inference/server/text_generation_server/utils/convert.py
imports: import datetime
  import torch
  import os
  from loguru import logger
  from pathlib import Path
  from safetensors.torch import save_file, load_file, _find_shared_tensors, _is_complete
  from typing import List, Dict
  from collections import defaultdict
label_desc: Use image node_id 3 for calling a global function with example usage: convert_files(pt_files, sf_files, discard_names) without return types