Bug report
Bug description:
We can create inspect.Signature with two or more variable parameters, but this will be syntactically incorrect when defining the function manually:
import inspect parameters = [ inspect.Parameter("args", kind=inspect.Parameter.VAR_POSITIONAL), inspect.Parameter("other_args", kind=inspect.Parameter.VAR_POSITIONAL), inspect.Parameter("kwargs", kind=inspect.Parameter.VAR_KEYWORD), inspect.Parameter("other_kwargs", kind=inspect.Parameter.VAR_KEYWORD), ] signature = inspect.Signature(parameters) print(signature)
OUTPUT:
(*args, *other_args, **kwargs, **other_kwargs)
And naturally we get a syntax error when defining a function with such a signature:
def func(*args, *other_args, **kwargs, **other_kwargs): ...
OUTPUT:
File "/home/apostol_fet/inspect_signature.py", line 13
def func(*args, *other_args, **kwargs, **other_kwargs):
^
SyntaxError: * argument may appear only once
Can we add validations for this case in inspect.Signature.__init__?
I would like to send a PR to fix this if it is not intended behavior.
CPython versions tested on:
3.12
Operating systems tested on:
Linux, Windows