code: def add_scheduler_args(
      parent_parser: ArgumentParser,
  ) -> ArgumentParser:
      """Extends existing argparse with default LR scheduler args.
  
      Args:
          parent_parser (ArgumentParser): Custom CLI parser that will be extended.
  
      Returns:
          ArgumentParser: Parser extended by LR Scheduler arguments.
      """
      parser = ArgumentParser(
          parents=[parent_parser],
          add_help=False,
          conflict_handler="resolve",
      )
      parser.add_argument(
          "--warmup_steps",
          type=int,
          required=False,
          default=None,
          help="Number of warmup steps",
      )
      parser.add_argument(
          "--warmup_ratio",
          type=float,
          required=False,
          default=None,
          help="Number of warmup steps as a percentage of total training steps",
      )
      parser.add_argument(
          "--hold_steps",
          type=int,
          required=False,
          default=None,
          help="Number of hold LR steps",
      )
      parser.add_argument(
          "--hold_ratio",
          type=float,
          required=False,
          default=None,
          help="Number of hold LR steps as a percentage of total training steps",
      )
      parser.add_argument(
          "--min_lr",
          type=float,
          required=False,
          default=0.0,
          help="Minimum learning rate",
      )
      parser.add_argument(
          "--last_epoch",
          type=int,
          required=False,
          default=-1,
          help="Last epoch id. -1 indicates training from scratch",
      )
      return parser
  
imports: from argparse import ArgumentParser
  from typing import Any, Dict, List, Optional, Union
label_desc: Use image node_id 2 for calling a global function with example usage: add_scheduler_args(parent_parser) and returns: parser