[issue2444] Adding __iter__ to class Values of module optparse
Shawn Morel [EMAIL PROTECTED] added the comment: gpolo: The argument still doesn't hold. As you point out, it's the Values class output from __str__ and other behaviour that is being un- pythonic and leading you to believe it's a dictionary. Adding the __itter__ method would only make this worse. Then someone else would surely ask to have another __*__ method added since dictionaries support it but values don't. The question then is one for optik. Why doesn't values simply inherit from dict and why does it insist on using __setattr__ rather than actually behaving completely like a dictionary. I know I was completely surprised by the following: (opts, args) = parser.parse_args(values={}) print opts {} -- nosy: +shawnmorel __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue2444 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2444] Adding __iter__ to class Values of module optparse
Guilherme Polo [EMAIL PROTECTED] added the comment: I have asked that myself, shawnmore. Why not let Value subclass dict ? __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue2444 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2444] Adding __iter__ to class Values of module optparse
Steven Bethard [EMAIL PROTECTED] added the comment: Subclassing dict seems like a bad idea. The options value returned by .parse_args() is not supposed to be dict-like, it's supposed to be object-like. That is, the natural way of accessing values from it is through dotted attribute access, not dict-indexing access. All the documentation for the module makes this clear. Giving it both attribute access and dict-indexing access would violate TOOWTDI. The One Obvious way to get dict-indexing access from an attribute oriented object is already vars(). __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue2444 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2444] Adding __iter__ to class Values of module optparse
Guilherme Polo [EMAIL PROTECTED] added the comment: Given the disagreement found here, I suggest closing this rfe and moving further discussions to c.l.p. Thanks djc and rhettinger for your support, and, bethard and shawnmorel for your different p.o.v. __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue2444 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2444] Adding __iter__ to class Values of module optparse
Benjamin Peterson [EMAIL PROTECTED] added the comment: Closing on OP's request. -- nosy: +benjamin.peterson resolution: - rejected status: open - closed __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue2444 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2444] Adding __iter__ to class Values of module optparse
djc [EMAIL PROTECTED] added the comment: I'd like this. I had one instance where a number of options where dynamically added to the OptionParser based on loadable modules, so that I wanted to dynamically iterate over the Values returned as well. -- nosy: +djc __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue2444 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2444] Adding __iter__ to class Values of module optparse
Raymond Hettinger [EMAIL PROTECTED] added the comment: This seems to be a reasonable request. -- assignee: - gward nosy: +gward, rhettinger __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue2444 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2444] Adding __iter__ to class Values of module optparse
Changes by Raymond Hettinger [EMAIL PROTECTED]: -- type: - feature request __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue2444 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2444] Adding __iter__ to class Values of module optparse
Steven Bethard [EMAIL PROTECTED] added the comment: Why can't you just iterate over ``vars(opts)``? -- nosy: +bethard __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue2444 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2444] Adding __iter__ to class Values of module optparse
Guilherme Polo [EMAIL PROTECTED] added the comment: I consider iterating over opts to be nicer and more pythonic than using vars(opts), since the latter is just a mask over the ugly opts.__dict__ __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue2444 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2444] Adding __iter__ to class Values of module optparse
Steven Bethard [EMAIL PROTECTED] added the comment: But ``vars()`` is the standard Python mechanism for doing this sort of thing (that is, treating an object like a dictionary). So, while I understand that you find iterating over opts to be nicer, calling it more Pythonic is probably a misuse of the term. ;-) Anyway, I should point out that optparse is maintained separately from the standard library, and any modifications to it usually need to go through the tracker at http://optik.sourceforge.net/ first. __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue2444 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2444] Adding __iter__ to class Values of module optparse
Guilherme Polo [EMAIL PROTECTED] added the comment: There is another reason for considering __iter__ as a more pythonic solution here. If you print opts, it may lead you to believe that it is just a regular dict, while it is not. If you were just able to iterate over it, I think it would be more natural. I know you could check it and then you would know it is not a dict, but I still prefer adding a__iter__ method over using vars here. About optparse being maintained separately.. isn't there someone responsible that possibly checks this bugtracker ? If it is not the case, and if __iter__ is agreed as a good solution, I could send this to its own bugtracker then (if that is the best thing to do). __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue2444 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2444] Adding __iter__ to class Values of module optparse
Steven Bethard [EMAIL PROTECTED] added the comment: My experience in the past has been that the optik/optparse maintainer doesn't often respond to tickets in this tracker, though perhaps that has changed recently. __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue2444 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2444] Adding __iter__ to class Values of module optparse
New submission from Guilherme Polo [EMAIL PROTECTED]: Hi, Doing (opts, args) = parser.parse_args(), supposing parser is an OptionParser instance, gets you an instance of class Values into opts. This patch adds the __iter__ method to the class Values so it is possible to iterate over the options you could have received. This is useful when all your options are required and you don't want to use a lot of if's to check if they are all there (for example). Right now it is possible to do this but you would have to iterate over opts.__dict__, an ugly way as I see. -- components: Library (Lib) files: optparse__iter__.diff keywords: patch messages: 64244 nosy: gpolo severity: normal status: open title: Adding __iter__ to class Values of module optparse versions: Python 2.6 Added file: http://bugs.python.org/file9801/optparse__iter__.diff __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue2444 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2444] Adding __iter__ to class Values of module optparse
Changes by Guilherme Polo [EMAIL PROTECTED]: Added file: http://bugs.python.org/file9802/optparse_py3k__iter__.diff __ Tracker [EMAIL PROTECTED] http://bugs.python.org/issue2444 __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com