如何在Sphinx autodoc中重命名类

问题描述 投票:0回答:1

我对Sphinx文档框架有疑问。我正在编写类似熊猫的库,并且有一个.str访问器的类似物,由私有类(例如_StrAccess)实现。

所以我想使用它的方法,例如str.match,文档的str.lower部分。但是我找不到合适的文档该怎么做。

现在它的自动记录为:

class module.column._StrAccess

def match()

def lower()

我希望它是:

accessor module.column.str

def match()

def lower()

签名可以随事件而改变,并且可以修改管道,我已经尝试过了,但是只能得到错误和尴尬的行为。 :)

正确的方法是什么?

python-sphinx autodoc
1个回答
0
投票

好,我已经取得了进步。

我已将以下代码添加到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'。

© www.soinside.com 2019 - 2024. All rights reserved.