code: def main(argv: List[str]) -> None:
      args = parse_args(argv)
      input_dir_labels_and_dense = args.input_dir_labels_and_dense
      input_dir_sparse = args.input_dir_sparse
      output_dir_full_set = args.output_dir_full_set
      output_dir_shuffled = args.output_dir_shuffled
  
      # Count num rows in each day file.
      rows_per_file = Manager().dict()
  
      # Adjust the number of processes here if <24 processes available to run
      # simultaneously.
      processes = [
          Process(
              target=count_rows,
              name="count_rows:day%i" % i,
              args=(rows_per_file, input_dir_labels_and_dense, i),
          )
          for i in range(0, DAYS - 1)
      ]
  
      for process in processes:
          process.start()
      for process in processes:
          process.join()
  
      BinaryCriteoUtils.shuffle(
          input_dir_labels_and_dense,
          input_dir_sparse,
          output_dir_shuffled,
          rows_per_file,
          output_dir_full_set,
          random_seed=args.random_seed,
          days=DAYS,
      )
  
file_path: torchrec/torchrec/datasets/scripts/shuffle_preproc_criteo.py
imports: import argparse
  import os
  import sys
  from multiprocessing import Manager, Process
  from typing import List
  import numpy
  from torchrec.datasets.criteo import BinaryCriteoUtils
label_desc: Use image node_id 3 for calling a global function with example usage: main(argv) without return types