Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork34.1k
Closed
Description
Bug report
Bug description:
We can createinspect.Signature with two or more variable parameters, but this will be syntactically incorrect when defining the function manually:
importinspectparameters= [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:
deffunc(*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 onceCan we add validations for this case ininspect.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
Linked PRs
Metadata
Metadata
Assignees
Labels
Projects
Status
Done