On Python 3.9
>>> import inspect
>>> inspect.signature(bytes.hex)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.9/inspect.py", line 3118, in signature
return Signature.from_callable(obj, follow_wrapped=follow_wrapped)
File "/usr/lib/python3.9/inspect.py", line 2867, in from_callable
return _signature_from_callable(obj, sigcls=cls,
File "/usr/lib/python3.9/inspect.py", line 2322, in _signature_from_callable
return _signature_from_builtin(sigcls, obj,
File "/usr/lib/python3.9/inspect.py", line 2135, in _signature_from_builtin
return _signature_fromstr(cls, func, s, skip_bound_arg)
File "/usr/lib/python3.9/inspect.py", line 2005, in _signature_fromstr
raise ValueError("{!r} builtin has invalid signature".format(obj))
ValueError: <method 'hex' of 'bytes' objects> builtin has invalid signature
This is also true for memoryview.hex and bytearray.hex . This happens because
>>> bytes.hex.__text_signature__
'($self, /, sep=<unrepresentable>, bytes_per_sep=1)'
when it would make more sense for it to return
'($self, /, sep='', bytes_per_sep=1)'
or at least sep=None
|