New submission from Денис Кореневский: Argparse version 1.1 consider ANY unknown argument string containig ' ' (space character) as positional argument. As a result it can use such unknown optional argument as a value of known positional argument.
Demonstration code: import argparse parser = argparse.ArgumentParser() parser.add_argument("--known-optional-arg", "-k", action="store_true") parser.add_argument("known_positional", action="store", type=str) parser.parse_known_args(["--known-optional-arg", "--unknown-optional-arg=with spaces", "known positional arg"]) parser.parse_known_args(["--known-optional-arg", "--unknown-optional-arg=without_spaces", "known positional arg"]) Bugfix is attached to issue and affects ArgumentParser._parse_optional() method body. Sorry, if it is a better way to report (or, possibly, fix) a bug than this place. It is my first python bug report. Thanks. ---------- components: Extension Modules files: argparse.py.patch keywords: patch messages: 227007 nosy: DenKoren priority: normal severity: normal status: open title: Argparse considers unknown optional arguments with spaces as a known positional argument type: behavior versions: Python 2.7 Added file: http://bugs.python.org/file36641/argparse.py.patch _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue22433> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com