"""Utility functions for CLI arguments.""" import argparse def check_positive(value: str) -> int: """Check input value is a positive integer. Args: value (str): command line parameter Raises: argparse.ArgumentTypeError: received a negative integer argparse.ArgumentTypeError: received a non-integer value Returns: integer: integer version of input value """ try: ivalue = round(float(value)) if ivalue <= 0: raise argparse.ArgumentTypeError(f"""Expected positive integer, got negative integer: {value}""") except ValueError as exc: raise argparse.ArgumentTypeError(f"""Expected positive integer, got: {value}""") from exc return ivalue