[issue25035] Getter/setter for argparse keys

2016-12-11 Thread Raymond Hettinger

Changes by Raymond Hettinger :


--
assignee:  -> docs@python
components: +Documentation -Library (Lib)
nosy: +bethard, docs@python
versions: +Python 3.7 -Python 3.4

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue25035] Getter/setter for argparse keys

2016-12-10 Thread paul j3

paul j3 added the comment:

Yes, the information that `add_argument` returns a Action object is missing 
from the documentation.  It might be useful addition.

The documentation has many faults.  It isn't basic enough to be a tutorial, but 
many first time users use it as such, and get confused by its complexity.  But 
it also is not a formal reference document. And the automatic 'help(argparse)' 
isn't much better.

A regular user does not need to use the Action object directly.  But as a 
developer I often test argparse in an interactive shell (IPython), and the 
'out' line shows a 'str' of the object (as a summary of its attributes).  So 
assigning that object to a variable is just as natural to me as saving the 
parser object returned by argparse.ArgumentParser, or the group object returned 
by parser.add_argument_group.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue25035] Getter/setter for argparse keys

2015-09-10 Thread Sworddragon

Sworddragon added the comment:

In this case probably all is fine then. But there is a minor thing I noticed 
from one of your previous posts: You said parser.add_argument returns an Action 
object but I noticed that this is not mentioned on "16.4.3. The add_argument() 
method". Is it maybe mentioned somewhere else or probably just missing?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue25035] Getter/setter for argparse keys

2015-09-09 Thread R. David Murray

R. David Murray added the comment:

Can you provide some specific use cases, please?

--
nosy: +r.david.murray

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue25035] Getter/setter for argparse keys

2015-09-09 Thread paul j3

paul j3 added the comment:

`get_default` and `set_defaults` are parser methods, and do more than set or 
get a particular Action attribute.  'Set' for example changes both the 
'parser._defaults' attribute, and a 'action.default' attribute.  Defaults are 
complex and can be defined in at least 3 different ways.

'choices' (and other things like 'required', 'nargs', even 'default') is an 
attribute of a specific Action (argument object).  You normally only set these 
in one way, as parameters of the `add_argument` method.

'action.default' and 'action.choices' are 'public' attributes.  
'parser._defaults' is a 'private' attribute.  A setter method is the right way 
to change a 'private' attribute (if needed).  It usually isn't need for a 
'public' one.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue25035] Getter/setter for argparse keys

2015-09-09 Thread Sworddragon

Sworddragon added the comment:

I'm actually not fully sure why you are telling me this all, especially in this 
specific way.

But I would also go the other way, by removing ArgumentParser.get_default and 
ArgumentParser.set_defaults if we think the current ways of getting/setting are 
enough. Mainly I think consistence is the important here.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue25035] Getter/setter for argparse keys

2015-09-09 Thread paul j3

paul j3 added the comment:

`parser.set_defaults` lets you set a default for any `dest`.  It does not have 
to be connected with an argument.  See what the docs say about using it to set 
an action linked to a subparser.

`arg1 = parser.add_argument(...)` returns an `Action` object.  The parser 
collects these objects in its lists, but you can also save a reference to it 
yourself.

I'd suggest doing this in an interactive shell, and see for yourself the 
attributes of this object.  Simply doing a 'print' on the object shows a number 
of the attributes (but not all).  It is possible to view, and in some cases, 
even modify these attributes directly.

`args.choices` gives you access to the `choices` attribute.

I don't think there's a need for getter/setter methods for Action attributes.  
The attributes are accessible by normal Python object approaches.

p.s. Another forum for asking argparse how-to questions is Stackoverflow.  Just 
tag it 'argparse'.

--
nosy: +paul.j3

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue25035] Getter/setter for argparse keys

2015-09-09 Thread Sworddragon

Sworddragon added the comment:

I was myself in the case where I needed the values of the choices key of 2 
specific arguments. Currently I'm solving this by storing them in variables but 
probably it could be cleaner by using a getter.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue25035] Getter/setter for argparse keys

2015-09-08 Thread Sworddragon

New submission from Sworddragon:

On making a look at the argparse documentation to figure out if I can get the 
value of the choices key of a specific argument after argument parsing or if I 
have to implement it myself I noticed that there is a getter/setter for the 
default key (ArgumentParser.get_default and ArgumentParser.set_defaults) but 
not for the other keys. Maybe this could also be implemented for the other 
keys, probably as a generic function that takes as an extra argument the 
requested key.

--
components: Library (Lib)
messages: 250263
nosy: Sworddragon
priority: normal
severity: normal
status: open
title: Getter/setter for argparse keys
type: enhancement
versions: Python 3.4

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com