python-script-example - Example Python Script

#!/usr/bin/env python3
DESCRIPTION="""
Description description description description. Description description description description.
Description description description description.
"""
ARGS= [
    {"name": "-f", "name2": "--flag", "action": "store_true", "help": "Flag desc."},
    {"name": "-m", "name2": "--metric-optional", "type": int, "default": 10, "help": "Metric desc."},
    {"name": "arg_1_multi_choice", "choices": ["choice1", "choice2"], "help": "Arg 1 desc."},
    {"name": "arg_2_number", "nargs": "?", "type": int, "default": 1, "help": "Arg 2 desc."},
    {"name": "arg_3_string", "nargs": "?", "type": str, "default": "la la", "help": "Arg 3 desc."}
]
AUTHOR="mjnurse.github.io - 2026"

HELP_LINE="Example Python Script"
WEB_DESC_LINE="Example Python Script"

import argparse
from argparse import RawDescriptionHelpFormatter

def main():
    parser = argparse.ArgumentParser(
        description="description:" + DESCRIPTION.replace("\n", "\n  ")[:-2],
        epilog="author:\n  " + AUTHOR,
        formatter_class=RawDescriptionHelpFormatter )
    for arg in ARGS:
        names = [arg["name"]] + ([arg["name2"]] if "name2" in arg else [])
        kwargs = {k: v for k, v in arg.items() if k not in ("name", "name2") and v is not None}
        parser.add_argument(*names, **kwargs)
    args = parser.parse_args()
    print(args)


if __name__ == "__main__":
    main()