Because of how complicated the command line options can become, it might be worth implementing a method to read in a yaml file. Loading a file creates a dictionary. The keyword can be the same as the argparse dest which would make the dictionary identical to the args dict, which could then be used the same. There might need to be a few extra checks to make sure there is valid input in the yaml file.