我对Sphinx文档框架有疑问。我正在编写类似熊猫的库,并且有一个.str访问器的类似物,由私有类(例如_StrAccess)实现。
所以我想使用它的方法,例如str.match,文档的str.lower部分。但是我找不到合适的文档该怎么做。
现在它的自动记录为:
class module.column._StrAccess
def match()
def lower()
我希望它是:
accessor module.column.str
def match()
def lower()
签名可以随事件而改变,并且可以修改管道,我已经尝试过了,但是只能得到错误和尴尬的行为。 :)
正确的方法是什么?
好,我已经取得了进步。
我已将以下代码添加到conf.py:
from sphinx.ext.autodoc import ClassDocumenter
class AccessorDocumenter(ClassDocumenter):
def format_name(self) -> str:
result = super().format_name()
if some_logic:
result = update_result()
return result
def setup(app):
app.add_autodocumenter(AccessorDocumenter)
但返回:
class module.column.str
def _StrAccess.match()
def _StrAccess.lower()
'_ StrAccess'前缀是Sphinx添加的,可以用另一个Documenter(MethodDocumenter)删除。
但是这是正确的方法吗? Sphinx文档不太清楚,也没有名称示例(讽刺的是:))。
而且我仍然不知道如何放置'accessor'而不是'class'。