I am using arparse to update a config dict using values specified on the command line. Since i only want to update the values in the config for which a value was explicitly mentioned on the command line.
Therefore i try to identify not-specified arguments by checking for each action if getattr(args, action.dest) == action.default
or equality of the type converted arg. Then i update all my values in the dict for which this is false.
But this of course fails, if i explicitly specify an argument on the command line which is the same as my default argument. Is there a possibility to identify these explicitly mentioned arguments withing argparser or do i have to identify them manually in sys.argv?
Thanks!
Edit:
To make my intentions clearer. I have an argument like the following:
parser.add_argument('--test', default='meaningful_default')
and a config like
config = { 'test' : 'nondefault_val'}
Now i want to update the config only with the explicitly specified arguments. Comparing the args attributes with the default values works as long as i don't specify something like prog.py --test meaningful_default
to update my config again with a value which just happens to be also the default value