[pypy-commit] pypy py3.5: Return True from inspect.isbuiltin() for functions implemented in C

rlamy pypy.commits at gmail.com
Mon Nov 13 16:10:06 EST 2017


Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: py3.5
Changeset: r93007:06fb68203b17
Date: 2017-11-13 21:09 +0000
http://bitbucket.org/pypy/pypy/changeset/06fb68203b17/

Log:	Return True from inspect.isbuiltin() for functions implemented in C

diff --git a/lib-python/3/inspect.py b/lib-python/3/inspect.py
--- a/lib-python/3/inspect.py
+++ b/lib-python/3/inspect.py
@@ -49,6 +49,10 @@
 import builtins
 from operator import attrgetter
 from collections import namedtuple, OrderedDict
+try:
+    from cpyext import is_cpyext_function as _is_cpyext_function
+except ImportError:
+    _is_cpyext_function = lambda obj: False
 
 # Create constants for the compiler flags in Include/code.h
 # We try to get them from dis to avoid duplication
@@ -262,7 +266,7 @@
         __doc__         documentation string
         __name__        original name of this function or method
         __self__        instance to which a method is bound, or None"""
-    return isinstance(object, types.BuiltinFunctionType)
+    return isinstance(object, types.BuiltinFunctionType) or _is_cpyext_function(object)
 
 def isroutine(object):
     """Return true if the object is any kind of function or method."""


More information about the pypy-commit mailing list