New submission from Benjamin Peterson <benja...@python.org>: After completing #12265, it was pointed out to me that the error message is still not perfect:
>>> def f(a, b, c=3, d=4, e=6, f=3, g=32): pass ... >>> f(1, f=4, d=90) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: f() takes from 2 to 7 positional arguments but 3 were given Here is a new patch. Some samples: >>> def f(a): pass ... >>> f() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: f() missing 1 required positional argument: 'a' >>> def f(a, b): pass ... >>> f() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: f() missing 2 required positional arguments: 'a' and 'b' >>> def f(a, b, c): pass ... >>> f() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: f() missing 3 required positional arguments: 'a', 'b', and 'c >>> def f(a, b, c, d): pass >>> f() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: f() missing 4 required positional arguments: 'a', 'b', 'c', and 'd' Same with kwonly: >>> def f(*, w): pass ... >>> f() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: f() missing 1 required keyword-only argument: 'w' >>> def f(*, a, b, c, d, e): pass ... >>> f() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: f() missing 5 required keyword-only arguments: 'a', 'b', 'c', 'd', and 'e' For too many positional arguments, the old (new) error is retained: >>> def f(a): pass ... >>> f(1, 2, 3) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: f() takes 1 positional argument but 3 were given >>> f(3, 4, 5) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: f() takes from 1 to 2 positional arguments but 3 were given ---------- components: Interpreter Core files: argerror.patch keywords: patch messages: 138563 nosy: benjamin.peterson priority: normal severity: normal stage: patch review status: open title: more argument error improving type: feature request versions: Python 3.3 Added file: http://bugs.python.org/file22399/argerror.patch _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue12356> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com