Napoleon 过度转义参数名称中的尾随下划线,导致未知目标名称错误

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

我现在正好遇到了本期中描述的问题:https://github.com/sphinx-doc/sphinx/issues/7734。该期还提供了 MWE。

我的问题是修复程序似乎没有默认激活。在源代码中,我发现配置中名为

strip_signature_backslash
的设置必须设置为 True 才能激活修复。

我已经尝试过:

napoleon_strip_signature_backslash = True
autodoc_strip_signature_backslash = True
strip_signature_backslash = True

全部位于conf.py的底部,但似乎没有一个激活此设置。我已经用谷歌搜索了大约一个小时,但我找不到任何关于如何设置它的文档。该设置也出现在

ext/autodoc/__init__.py
directives/__init__.py
中,但正如我所说,我不知道如何设置它。

有什么建议吗?

python python-sphinx autodoc sphinx-napoleon
2个回答
0
投票

我实际上想通了尝试创建一个合适的 MWE。导致错误的原因实际上不是这里指出的问题https://github.com/sphinx-doc/sphinx/issues/7734,而是我在文档中写了未转义的反斜杠。

但是我注意到,即使没有抛出错误,默认配置也会删除名称以 _ 结尾的函数参数。

例如

def f(self, p_):
    """
    Args:
        p_: hei

    Returns:
    """
    pass

呈现为 rendered such that p has no trailing underscore

为了解决这个问题,您实际上必须在

strip_signature_backslash = True
文件的底部设置
conf.py
。它激活拉请求中指出的修复。

如果没有这个错误,我可能永远不会注意到这一点。

再次感谢您这么快回复我@mzjn 和@steve-piercy


0
投票

我遇到了类似的问题,并使用此处的解决方案解决了它: https://stackoverflow.com/a/64123276/14801243

“使用反斜杠转义下划线。”

from\_: str
© www.soinside.com 2019 - 2024. All rights reserved.