Source code for catalyst.utils.argparse

from typing import Optional  # isort:skip
import argparse


[docs]def boolean_flag( parser: argparse.ArgumentParser, name: str, default: Optional[bool] = False, help: str = None, shorthand: str = None, ) -> None: """ Add a boolean flag to a parser inplace. Args: parser (argparse.ArgumentParser): parser to add the flag to name (str): argument name --<name> will enable the flag, while --no-<name> will disable it default (bool, optional): default value of the flag help (str): help string for the flag shorthand (str): shorthand string for the argument Examples: >>> parser = argparse.ArgumentParser() >>> boolean_flag( >>> parser, "flag", default=False, help="some flag", shorthand="f" >>> ) """ dest = name.replace("-", "_") names = ["--" + name] if shorthand is not None: names.append("-" + shorthand) parser.add_argument( *names, action="store_true", default=default, dest=dest, help=help ) parser.add_argument("--no-" + name, action="store_false", dest=dest)