徐力有*_*徐力有 5 python python-sphinx pybind11
我知道如何通过设置“add_module_names = False”来删除 automodule 指令中函数的模块前缀。 从 sphinx 函数中删除包和模块名称
但是,它无法删除 automodule 指令中 args 的模块前缀。下面是automodule生成的文档。
你可以看到 self arg 的数据类型有一个很长的前缀,比如“PyPhysLeo.data_core”。
data_core 子模块
class BufferDataD 同时管理 CPU 缓冲区和 GPU 缓冲区的类,数据类型为 double
CPU2GPU(自我:PyPhysLeo.data_core.BufferDataD)?没有任何
GPU2CPU(自我:PyPhysLeo.data_core.BufferDataD)?没有任何
分配CPU(自我:PyPhysLeo.data_core.BufferDataD)?没有任何
分配GPU(自我:PyPhysLeo.data_core.BufferDataD)?没有任何
setZeroCPU(self: PyPhysLeo.data_core.BufferDataD) ?没有任何
setZeroGPU(自我:PyPhysLeo.data_core.BufferDataD)?没有任何
大小(自我:PyPhysLeo.data_core.BufferDataD)?整数
pybind11 生成的签名总是又长又乏味(有 self arg,类型可能有很长的模块前缀)。因此,最好的方法是通过py::options options;options.disable_function_signatures();向模块 init 函数添加代码来禁用这些签名。然后你需要在文档字符串的第一行写下你自己的签名,例如
setZeroGPU() -> None\n\n reset GPU buffer data to zero\n\n :return: None\n :rtype: None\nRun Code Online (Sandbox Code Playgroud)\n\nsetZeroGPU() -> None 是签名,位于第一行。
\n\n由于conf.py中的“autodoc_docstring_signature”默认设置为True,sphinx将自动尝试从文档字符串的第一行读取函数签名。最后,你就可以得到这样一个漂亮的文档了。
\n\nsetZeroGPU() \xe2\x86\x92 None\n reset GPU buffer data to zero\n\n \xe8\xbf\x94\xe5\x9b\x9e: None\n \xe8\xbf\x94\xe5\x9b\x9e\xe7\xb1\xbb\xe5\x9e\x8b: None\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1293 次 |
| 最近记录: |