标记结束没有空行。但是标记只是评论中的内容

时间:2016-08-04 07:54:09

标签: python python-2.7 python-sphinx

在记录我的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`

如何在不向文档字符串添加任何(可见)文本的情况下解决此问题?

1 个答案:

答案 0 :(得分:1)

jonrsharpe向我指出了正确的方向。

文档字符串必须完全如下:

def func():
    """
    .. deprecated:: 0.1.0
      Please use :func:`func_new`

    """

下一行中有两个空格,.. deprecated必须与起始"""块对齐。它不能与"""

在同一行开头

\n修复我的问题之前,缩进文档字符串并添加.. deprecated