在记录我的python代码时,我有一个装饰器来标记已弃用的函数,它们也会更新docstring。如果函数有文档,但没有sphinx投诉并且deprecated
的文档看起来不正确,这样可以正常工作。
我已将问题缩小到等效代码:
def func():
""".. deprecated:: 0.1.0
Please use :func:`func_new`
"""
这些是我尝试过的所有变化都没有成功:
def func():
""".. deprecated:: 0.1.0
Please use :func:`func_new`
"""
def func():
"""
.. deprecated:: 0.1.0
Please use :func:`func_new`
"""
在这种情况下,Sphinx抱怨WARNING: Explicit markup ends without a blank line; unexpected unindent.
。无论我在末尾有多少空行,或者行前面有一些空格。
如果文档没问题,我不关心警告,而不是生成
Module.func():
Deprecated since version 0.1.0: Please use :func:`func_new`
输出
Module.func():
Deprecated since version 0.1.0.
Please use :func:`func_new`
如何在不向文档字符串添加任何(可见)文本的情况下解决此问题?
答案 0 :(得分:1)
文档字符串必须完全如下:
def func():
"""
.. deprecated:: 0.1.0
Please use :func:`func_new`
"""
下一行中有两个空格,.. deprecated
必须与起始"""
块对齐。它不能与"""
。
在\n
修复我的问题之前,缩进文档字符串并添加.. deprecated
。