Stefan Behnel added the comment:

>>> inspect.isbuiltin() returns False
>> Are you absolutely sure about this?
> Yes.

Oh, well...

isbuiltin(cyfunction) *does* return False. However, 
ismethoddescriptor(cyfunction) returns True, because Cython's functions bind as 
methods and thus have a "__get__()" (but no __set__()). Therefore, 
_signature_is_builtin(cyfunction) returns True, and the 
Signature.from_builtin(cyfunction) code path is taken and fails.

So, once again:

If the intention is to test that a callable has a "__text_signature__", then 
the code should test for the existance of "__text_signature__". It should *not* 
try to test for types that may or may not have such an attribute, and then just 
fail if it surprisingly does not find it.

----------
status: closed -> open

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue17159>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to