New submission from Jason Baker <amnorv...@gmail.com>: This is referring to argparse 1.1 installed under Python 2.6. When I was passing in an nargs flag, I figured that since '+' and '*' are valid options, I should pass in strings. So when I tried passing in the string '1' instead of the integer 1, I got the following error:
>>> import argparse >>> parser = argparse.ArgumentParser() >>> parser.add_argument('foo', nargs='1') _StoreAction(option_strings=[], dest='foo', nargs='1', const=None, default=None, type=None, choices=None, help=None, metavar=None) >>> parser.parse_args() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "build/bdist.macosx-10.6-universal/egg/argparse.py", line 1698, in parse_args File "build/bdist.macosx-10.6-universal/egg/argparse.py", line 1730, in parse_known_args File "build/bdist.macosx-10.6-universal/egg/argparse.py", line 1935, in _parse_known_args File "build/bdist.macosx-10.6-universal/egg/argparse.py", line 1884, in consume_positionals File "build/bdist.macosx-10.6-universal/egg/argparse.py", line 2028, in _match_arguments_partial File "build/bdist.macosx-10.6-universal/egg/argparse.py", line 2169, in _get_nargs_pattern TypeError: can't multiply sequence by non-int of type 'str' Fortunately, I had just added the nargs and knew to correct that. However, if I were to do something like read that value in from a config file and forget to coerce the value from a string to an int, I could see how this could be a giant pain to track down. ---------- components: Library (Lib) messages: 116355 nosy: Jason.Baker priority: normal severity: normal status: open title: Argparse needs better error handling for nargs versions: Python 2.6 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue9849> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com