Как проанализировать функцию, определенную в модуле расширения Cython CPython

Программы на Python
Ответить
Anonymous
 Как проанализировать функцию, определенную в модуле расширения Cython C

Сообщение Anonymous »

Модуль Inspect Python, похоже, не способен проверять сигнатуры «встроенных» функций, которые включают в себя функции, определенные в модулях расширения C, например, определенные Cython. Есть ли способ получить подпись функции Python, которую вы определили в таком модуле, особенно в Cython? Я хочу найти доступные аргументы ключевых слов.

MWE:

Код: Выделить всё

# mwe.pyx
def example(a, b=None):
pass
и

Код: Выделить всё

import pyximport; pyximport.install()
import mwe
import inspect

inspect.signature(mwe.example)
доходность:

Код: Выделить всё

Traceback (most recent call last):
File "mwe_py.py", line 5, in 
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 
В Python 3.4.5 и Cython 0.24.1

Подробнее здесь: https://stackoverflow.com/questions/460 ... ion-module
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»