consider making the --action options into subparsers in the argparse library. With each subparser, you can then specify the specific parameters relevant to that action. If there are parameters shared by all, that can be placed into a parent parser that each subparser adopts.
If you want an example, this is done nicely in seqmagick here, in which we don't actually require a flag for the --action verb. It's like git commit, etc.
as suggested by Namita (thanks!)
consider making the --action options into subparsers in the argparse library. With each subparser, you can then specify the specific parameters relevant to that action. If there are parameters shared by all, that can be placed into a parent parser that each subparser adopts.