[issue21805] Argparse Revert config_file defaults

d0n report at bugs.python.org
Thu Jun 19 05:49:54 CEST 2014


New submission from d0n:

Hi,

first of all I want to thank you (bethard) for your great work and efforts on developing argparse which is a great tool of versatile use in mostly all of my programs. 
I've faced a specific problem while implementing argparse which I have not been able to fix by the functions supplied through argparse or its functions. And here we are getting to it:

---
Lets assume I have a configuration file which sets the argparser argument of "verbose" to True. Further we assume I would have done that by reading a configuration file into an python-dictionary (maybe via ConfigParser or sth. like that) and passing it to the function "set_defaults" of the class "ArgumentParser" from argparse. 

So far so good - now I have my default set. But now my "verbose" switch still is setting the value for "verbose" to True (or False) regardless of the actual state. So, I do not want to set my value for "verbose" to True and neither I want it to set to False (or None) i want it to be set to the opposite value it has till now


{code}

def opposite(bool):
  if bool is True:
    return False
  elif bool is False:
    return True

from argparse import ArgumentParser
parser = ArgumentParser()
parser.set_defaults(**config_defaults)
parser.add_argument('-V', '--verbose', dest='vrb', action='store_const', const=opposite(config_defaults['verbose']), help='switch on/off verbosity')

{/code}


In that case I would be glad to just set my action to 'store_opposite' (or sth. like that).

I am sorry if I have missed something here or was misguiding somehow.

Best regards,
d0n

----------
components: Extension Modules
messages: 220960
nosy: bethard, d0n
priority: normal
severity: normal
status: open
title: Argparse Revert config_file defaults
type: enhancement
versions: Python 3.5

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue21805>
_______________________________________


More information about the Python-bugs-list mailing list