我想使用Jedi为我的pybind11模块提供一个代码完成。绝地评估__signature__
可调用函数的完成情况。有关详细信息,请参见:Jedi struggles with pybind11 modules。但是pybind11目前无法生成它们:Set the text_signature attribute of callables
在pybind11模块加载之后,有没有办法使用python解释器手动设置可调用函数(尤其是函数)的__signature__
?像这样:
pyModule.myFunc.__signature__ = *Do some magic here*
是否有一些工具可以生成python可调用函数的签名?有很多包可以在运行时动态创建函数,而cich也可以创建签名。但这不是我的用例。你知道吗
我没有用绝地来测试这一点,因为看起来要进行可靠的设置和复制需要大量的工作,但也许下面的工作已经可以了。你知道吗
检查可调用签名的规范方法是恰当命名的^{} 函数。它依赖于magic
__annotations__
属性,该属性可以在运行时修改:由于
__signature__
不是一个标准字段,它可能是由绝地生成的,他们在the ticket you linked中的问题描述也暗示他们更愿意直接利用inspect.signature
。你知道吗相关问题 更多 >
编程相关推荐