Issue 30149: inspect.signature() doesn't support partialmethod without explicit self parameter (original) (raw)
import functools, inspect class A: ... f = functools.partialmethod((lambda self, x, y, *args: ...), 1) ... inspect.signature(A.f) <Signature (self, y, *args)> class A: ... f = functools.partialmethod((lambda *args: ...), 1) ... inspect.signature(A.f) Traceback (most recent call last): File "", line 1, in File "/home/serhiy/py/cpython/Lib/inspect.py", line 3007, in signature return Signature.from_callable(obj, follow_wrapped=follow_wrapped) File "/home/serhiy/py/cpython/Lib/inspect.py", line 2757, in from_callable follow_wrapper_chains=follow_wrapped) File "/home/serhiy/py/cpython/Lib/inspect.py", line 2227, in _signature_from_callable return sig.replace(parameters=new_params) File "/home/serhiy/py/cpython/Lib/inspect.py", line 2780, in replace return_annotation=return_annotation) File "/home/serhiy/py/cpython/Lib/inspect.py", line 2725, in init raise ValueError(msg) ValueError: duplicate parameter name: 'args'