diff options
author | Benjamin Peterson <benjamin@python.org> | 2010-03-21 21:16:24 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2010-03-21 21:16:24 (GMT) |
commit | afcee8b78d92a02263ce1eb1015d0933d3e4e377 (patch) | |
tree | 28e7e2bdf79e2725682e86df05abfe009894bbac | |
parent | f3b7a25a218b76a8b31e49e592e3bda9ca2e1f13 (diff) | |
download | cpython-afcee8b78d92a02263ce1eb1015d0933d3e4e377.zip cpython-afcee8b78d92a02263ce1eb1015d0933d3e4e377.tar.gz cpython-afcee8b78d92a02263ce1eb1015d0933d3e4e377.tar.bz2 |
count keyword only arguments as part of the total
-rw-r--r-- | Lib/test/test_extcall.py | 6 | ||||
-rw-r--r-- | Python/ceval.c | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py index a5af50b..cf882a5 100644 --- a/Lib/test/test_extcall.py +++ b/Lib/test/test_extcall.py @@ -280,6 +280,12 @@ The number of arguments passed in includes keywords: Traceback (most recent call last): ... TypeError: f() takes exactly 1 argument (5 given) + >>> def f(a, *, kw): + ... pass + >>> f(6, 4, kw=4) + Traceback (most recent call last): + ... + TypeError: f() takes exactly 2 arguments (3 given) """ import sys diff --git a/Python/ceval.c b/Python/ceval.c index 22c6155..0bd785b 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -3078,8 +3078,8 @@ PyEval_EvalCodeEx(PyCodeObject *co, PyObject *globals, PyObject *locals, "argument%s (%d given)", co->co_name, defcount ? "at most" : "exactly", - co->co_argcount, - co->co_argcount == 1 ? "" : "s", + total_args, + total_args == 1 ? "" : "s", argcount + kwcount); goto fail; } |