[issue12776] argparse: type conversion function should be called only once

2014-05-29 Thread paul j3

Changes by paul j3 ajipa...@gmail.com:


--
nosy: +paul.j3

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



[issue12776] argparse: type conversion function should be called only once

2013-03-31 Thread Éric Araujo

Éric Araujo added the comment:

FTR a contributor to #13271 (--help should work even if a type converter fails) 
indicated that it’s fixed by this patch, so it may be good to add a regression 
test.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2012-08-31 Thread R. David Murray

R. David Murray added the comment:

Thanks, Arnaud and Mike.  (And Steven, of course :)

--
nosy: +r.david.murray
resolution:  - fixed
stage:  - committed/rejected
status: open - closed

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2012-08-31 Thread Roundup Robot

Roundup Robot added the comment:

New changeset 1b614921aefa by R David Murray in branch '3.2':
#12776,#11839: call argparse type function only once.
http://hg.python.org/cpython/rev/1b614921aefa

New changeset 74f6d87cd471 by R David Murray in branch 'default':
Merge #12776,#11839: call argparse type function only once.
http://hg.python.org/cpython/rev/74f6d87cd471

New changeset 62b5667ef2f4 by R David Murray in branch '2.7':
#12776,#11839: call argparse type function only once.
http://hg.python.org/cpython/rev/62b5667ef2f4

--
nosy: +python-dev

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2012-07-21 Thread Steven Bethard

Steven Bethard steven.beth...@gmail.com added the comment:

The patch looks good to me. I've updated it for trunk and to include Mike 
Meyer's additional test. All argparse tests pass.

Anyone who's able to commit and backport, please do.

(I should be able to commit myself, but it's now been too long and my SSH key 
seems to no longer work. I'll eventually get this sorted out, but as you may 
have noticed, I don't have much time for argparse these days, so best not to 
wait on me.)

--
Added file: 
http://bugs.python.org/file26467/py3k-argparse-call-type-function-once-v5.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2012-05-02 Thread Mike Meyer

Mike Meyer m...@mired.org added the comment:

I've just verified that this patch also fixes 13824 and 11839.
The attached patchfile adds a test to verify that using a non-existent default 
file fails if you don't specify the argument, and succeeds if you do.

Could someone please apply it?

--
nosy: +Mike.Meyer
Added file: http://bugs.python.org/file25438/fopatch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2012-05-02 Thread Mike Meyer

Mike Meyer m...@mired.org added the comment:

Sorry - got ahead of myself. It doesn't fix 13824. A deeper reading reveals 
that the problem wasn't quite what I thought it on first glance.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2012-03-18 Thread Arnaud Fontaine

Arnaud Fontaine ar...@debian.org added the comment:

Could you please apply this patch? It's been 4 months without reply now...

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2012-01-25 Thread Arnaud Fontaine

Arnaud Fontaine ar...@debian.org added the comment:

ping?

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-12-15 Thread Steven Bethard

Steven Bethard steven.beth...@gmail.com added the comment:

Could you add a test to verify that custom actions are still getting the 
converted values passed to their __call__? I suspect this may not be happening 
under the current patch - if that's the case, you may also need to add 
conversions in _get_values, where the lines look like value = action.default.

Also, action.default == getattr(namespace, action.dest) should probably use 
is instead of ==.

Other than that, the patch looks okay.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-12-15 Thread Arnaud Fontaine

Arnaud Fontaine ar...@debian.org added the comment:

 Could you add  a test to verify that custom  actions are still getting
 the converted values passed to their  __call__? I suspect this may not
 be happening  under the current  patch - if  that's the case,  you may
 also need to add conversions in _get_values, where the lines look like
 value = action.default.

There seems to be already a test for that, namely TestActionUserDefined,
which use type=float  and type=int.  The value is  properly converted to
{int,float} when passed to __call__().  Just in case, I also tested with
a  'type' function  I defined  myself (which  only returns  float()) for
OptionalAction and it's working fine.

 Also,  action.default  ==   getattr(namespace,  action.dest)  should
 probably use is instead of ==.

Good point, it would be much better.  Thanks for the advice. I have just
modified the patch with that.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-12-15 Thread Arnaud Fontaine

Changes by Arnaud Fontaine ar...@debian.org:


Added file: 
http://bugs.python.org/file23972/py2.7-argparse-call-type-function-once-v4.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-12-15 Thread Arnaud Fontaine

Changes by Arnaud Fontaine ar...@debian.org:


Added file: 
http://bugs.python.org/file23973/py3k-argparse-call-type-function-once-v4.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-11-24 Thread flying sheep

flying sheep flying-sh...@web.de added the comment:

this is annoying:

i’m creating a reindentation script that reindents any valid python script. the 
user can specify if, and how many spaces he/she wants to use per indentation 
level. `0` or leaving the option out means “one tab per level”.

if the argument is given, appended code works as intended. but in the default 
case, the code fails for any of the two default values i tried.

i would expect that one of the default values works: either `0`, if the default 
value *is* converted via the `type` function, or `\t` if the default value 
bypasses it.

it seems that argparse applies the `type` function to the default instantly, 
and then to the argument (be it the already-converted default or a passed 
option).

this breaks `type` functions which aren’t reflexive for values from their 
result set, i.e.: `t(x) = y = t(y) = y` must be true for all `x` that the 
function can handle

--
nosy: +flying sheep
Added file: http://bugs.python.org/file23767/argparse_test.py

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-11-24 Thread Arnaud Fontaine

Arnaud Fontaine ar...@debian.org added the comment:

Does the patch I attached fix your issue?

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-11-24 Thread flying sheep

flying sheep flying-sh...@web.de added the comment:

i don’t know, since i get python from the ubuntu repositories, sorry.

in which python release will this patch first be integrated?

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-11-24 Thread Arnaud Fontaine

Arnaud Fontaine ar...@debian.org added the comment:

It would definitely help if you could apply the patch for Python 2.7 manually 
on your local installation (after making a backup of course). You can just 
download the patch for Python 2.7 then (only the first part of the patch can be 
applied, the second part is for the test so it doesn't matter):

# cd /usr/lib/python2.7/
# patch -b -p2 -i /PATH/TO/THE/PATCH

Thanks much.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-11-24 Thread Éric Araujo

Éric Araujo mer...@netwok.org added the comment:

Mucking with your installed Python is probably a bad idea, and it may also be 
an old version (compared to the current development version which has seen 
hundreds of changes) where testing the patch would not give useful results.  
Please see the devguide.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-11-24 Thread Arnaud Fontaine

Arnaud Fontaine ar...@debian.org added the comment:

I have had a look at the issue more closely and my initial patch was not 
completely right as it didn't work properly with argparse_test.py despite all 
tests passing.

Therefore, I have amended my patch to not check whether action.default was a 
basestring which didn't make sense at all, but check instead if action.default 
is None (action.default default value is None if not given to add_argument as 
far as I understand). I also added a test for the issue reported above as it 
was missing and ran patchcheck to make sure everything was fine. All the tests 
(include argparse_test.py) passes without problem.

Could you please apply them? Many thanks.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-11-24 Thread Arnaud Fontaine

Changes by Arnaud Fontaine ar...@debian.org:


Added file: 
http://bugs.python.org/file23775/py2.7-argparse-call-type-function-once-v3.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-11-24 Thread Arnaud Fontaine

Changes by Arnaud Fontaine ar...@debian.org:


Added file: 
http://bugs.python.org/file23776/py3k-argparse-call-type-function-once-v3.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-11-24 Thread Arnaud Fontaine

Arnaud Fontaine ar...@debian.org added the comment:

BTW, about argparse_test, the default should be either '0' or 0 but not '\t' 
AFAIK because even the default value is converted using the given type 
function. It fails even with the last 2.7 version but it works well with my 
patch...

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-09-30 Thread Arnaud Fontaine

Arnaud Fontaine ar...@debian.org added the comment:

Any news about applying these patches?

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-08-21 Thread Éric Araujo

Éric Araujo mer...@netwok.org added the comment:

Thanks for the patch.  I commented on the code review site, you should have 
received an email.

--
nosy: +eric.araujo
versions: +Python 3.3

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-08-21 Thread Arnaud Fontaine

Arnaud Fontaine ar...@debian.org added the comment:

Thanks for the review. Sorry to send that here instead of the review page, but 
I get an error when replying: Invalid XSRF token..

 This looks good, especially if all existing tests still pass as you report, 
 but
 I wonder about one thing: you have removed the part where the conversion
 function was applied to the default value, so I expected you to edit the other
 line were the conversion function was already called, but that’s not the 
 case. 
 Am I misunderstanding something?

Yes, sorry, I should have perhaps explained it in further details... Here are 
some examples:

* Example test case 1:

parser = argparse.ArgumentParser()
parser.add_argument('--foo', type=type_foo_func, default='foo')
parser.parse_args('--foo bar'.split())

= Before the patch, type function is called in parse_known_args() for the 
default given in add_argument(), and then in _parse_known_args() for '--foo 
bar' given in parse_args above, whereas type function should have been called 
only for the second one.

* Example test case 2:

parser = argparse.ArgumentParser()
parser.add_argument('--foo', type=type_foo_func)
parser.parse_args('--foo bar'.split())

= This was already working well before my patch.

* Example test case 3:

parser = argparse.ArgumentParser()
parser.add_argument('--foo', type=type_foo_func, default='foo')
parser.parse_args('')

= type_foo_func is called after parsing arguments (none in this case) in my 
patch.

Therefore, my patch just moves the function type call after parsing the 
arguments (given to parse_args()) instead of before, only and only if it was 
not previously given in parse_args().

 http://bugs.python.org/review/12776/diff/3181/9898#newcode1985
 Lib/argparse.py:1985: if hasattr(namespace, action.dest) and \
 It is recommended to use parens to group multi-line statements, backslashes 
 are
 error-prone.

I have just updated the patch on the bug report. Thanks.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-08-21 Thread Arnaud Fontaine

Changes by Arnaud Fontaine ar...@debian.org:


Removed file: 
http://bugs.python.org/file22927/py2.7-argparse-call-type-function-once.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-08-21 Thread Arnaud Fontaine

Changes by Arnaud Fontaine ar...@debian.org:


Removed file: 
http://bugs.python.org/file22928/py3k-argparse-call-type-function-once.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-08-21 Thread Arnaud Fontaine

Changes by Arnaud Fontaine ar...@debian.org:


Added file: 
http://bugs.python.org/file22978/py2.7-argparse-call-type-function-once.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-08-21 Thread Arnaud Fontaine

Changes by Arnaud Fontaine ar...@debian.org:


Added file: 
http://bugs.python.org/file22979/py3k-argparse-call-type-function-once.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-08-18 Thread Arnaud Fontaine

New submission from Arnaud Fontaine ar...@debian.org:

When specifying a function to be called in type keyword argument of 
add_argument(), the function is actually called twice (when a default value is 
set and then when the argument is given).

While this may not be a problem in most cases (such as converting to an int for 
example), it is an issue for example when trying to open a file whose filename 
is given as a default value but is not accessible for whatever reason because 
the first call will fail whereas only the second should be done. I know this 
may sound like a twisted example but the type function should not be called 
twice anyhow IMHO.

I tested with Python 2.7 and 3.2 from Debian packages only but the bug seems to 
be present in py3k and 2.7 hg branches as well.

I have attached a small script showing the issue and two patches (for 2.7 and 
tip (py3k) hg branches), including an additional test case. All argparse tests 
pass well with 2.7 and 3.2. Hope that's ok.

--
components: Library (Lib)
files: example-argparse-type-function-called-twice.py
messages: 142306
nosy: arnau
priority: normal
severity: normal
status: open
title: argparse: type conversion function should be called only once
type: behavior
versions: Python 2.7, Python 3.2
Added file: 
http://bugs.python.org/file22926/example-argparse-type-function-called-twice.py

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-08-18 Thread Arnaud Fontaine

Changes by Arnaud Fontaine ar...@debian.org:


--
keywords: +patch
Added file: 
http://bugs.python.org/file22927/py2.7-argparse-call-type-function-once.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-08-18 Thread Arnaud Fontaine

Changes by Arnaud Fontaine ar...@debian.org:


Added file: 
http://bugs.python.org/file22928/py3k-argparse-call-type-function-once.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12776] argparse: type conversion function should be called only once

2011-08-18 Thread Ned Deily

Changes by Ned Deily n...@acm.org:


--
nosy: +bethard

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue12776
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com