diff --git a/Lib/inspect.py b/Lib/inspect.py index c3fecb8b8cb..00728206019 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -2323,6 +2323,14 @@ class Signature: format(arg=param_name)) from None else: + if param.kind == _POSITIONAL_ONLY: + # This should never happen in case of a properly built + # Signature object (but let's have this check here + # to ensure correct behaviour just in case) + raise TypeError('{arg!r} parameter is positional only, ' + 'but was passed as a keyword'. \ + format(arg=param.name)) + arguments[param_name] = arg_val if kwargs: