Cómo introspectar una función definida en un módulo de extensión Cython C
Pythoninspect
El módulo no parece ser capaz de inspeccionar las firmas de las funciones "integradas", que incluyen funciones definidas en los módulos de extensión C, como las definidas por Cython. ¿Hay alguna forma de obtener la firma de una función de Python que haya definido en dicho módulo, y específicamente en Cython? Estoy buscando poder encontrar los argumentos de palabras clave disponibles.
MWE:
# mwe.pyx
def example(a, b=None):
pass
y
import pyximport; pyximport.install()
import mwe
import inspect
inspect.signature(mwe.example)
rendimientos:
Traceback (most recent call last):
File "mwe_py.py", line 5, in <module>
inspect.signature(mwe.example)
File "/nix/store/134l79vxb91w8mhxxkj6kb5llf7dmwpm-python3-3.4.5/lib/python3.4/inspect.py", line 2063, in signature
return _signature_internal(obj)
File "/nix/store/134l79vxb91w8mhxxkj6kb5llf7dmwpm-python3-3.4.5/lib/python3.4/inspect.py", line 1965, in _signature_internal
skip_bound_arg=skip_bound_arg)
File "/nix/store/134l79vxb91w8mhxxkj6kb5llf7dmwpm-python3-3.4.5/lib/python3.4/inspect.py", line 1890, in _signature_from_builtin
raise ValueError("no signature found for builtin {!r}".format(func))
ValueError: no signature found for builtin <built-in function example>
En Python 3.4.5 y Cython 0.24.1