# Created on savesnippets.com ยท https://savesnippets.com/L5fnknI9a0heLU import argparse from typing import Callable def cmd_init(args): print(f"Initializing in {args.path}") def cmd_run(args): print(f"Running with workers={args.workers}, debug={args.debug}") def main(): p = argparse.ArgumentParser(prog="myapp", description="A useful CLI tool") sub = p.add_subparsers(dest="cmd", required=True) pi = sub.add_parser("init", help="Initialize a project") pi.add_argument("path") pi.set_defaults(func=cmd_init) pr = sub.add_parser("run", help="Run the server") pr.add_argument("--workers", type=int, default=4) pr.add_argument("--debug", action="store_true") pr.set_defaults(func=cmd_run) args = p.parse_args() args.func(args) if __name__ == "__main__": main() # myapp init /tmp/proj # myapp run --workers 8 --debug