I try to limit the dependencies I bring in but these days I prefer to use click[1] instead of argparse, it's got more batteries included, specifically for me a more composable cli and an overall better experience around the parameters. I do miss being able to have default values for optional arguments, but only if the arg is actually supplied (e.g. -j for max parallelism, -j <n> to specify, nothing for no parallelism).
[1] https://palletsprojects.com/p/click/