New submission from Vincent Driessen <nvi...@gmail.com>: **NOTE**: This is a re-post of http://code.google.com/p/argparse/issues/detail?id=47
What steps will reproduce the problem? parser = argparse.ArgumentParser() sub = parser.add_subparsers() sub.add_parser("info") parser.add_argument("paths", "+") parser.parse_args(["foo", "bar"]) What is the expected output? What do you see instead? Expected behavior is that, failing to match one of the subparser inputs ("info"), the parser checks if the argument matches any of the top-level arguments, in this case the 'paths' multi-arg. In other words, it should be possible to make the subparser be optional, such that when the subparser argument fails to retrieve any valid subparser, the remaining args are parsed as if no subparser exists. At present, it does not seem possible to make a subparser be optional at all. Perhaps this could be exposed to the user as: parser.add_subparsers(nargs=argparse.OPTIONAL) or something to that effect. Or, allow a default subparser to be specified. I.e., sub = parser.add_subparsers() info = sub.add_parser("info") main = sub.add_parser("main") sub.default = main I'm sure the point will come up that the current behavior is correct, because given a subparser like "info", a user could easily make a mistake like "myapp ino foo bar" and rather than get a safe error be given something unexpected. For this reason, I think the default behavior is usually going to be correct. BUT, it would still be nice if it could be optional, so that developers could be free to make that call. Sometimes the potential user errors aren't really an issue, and having to explicitly set a subparse arg every time can be a nuissance. ---------- components: Library (Lib) messages: 110231 nosy: nvie priority: normal severity: normal status: open title: optional subparsers type: feature request versions: Python 2.7, Python 3.2, Python 3.3 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue9253> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com