2016-08-04 88 views
0

当记录我的Python代码时,我有一个装饰器来标记函数弃用,也更新文档字符串。这工作正常,如果该函数有文档,但当它不狮身人面像抱怨和文档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` 

    """ 

在这种情况下,狮身人面像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

这里的问题不是第二行是只缩进两个空格,它抛出了整个docstring的缩进?如果缩进另外两个空格(即“Please”之前),会发生什么?你认为这是狮身人面像还是装饰者(你没有真正展示过)的问题? – jonrsharpe

+0

@jonrsharpe我用更多的例子更新了这个问题。我没有发布装饰器,因为它是无关紧要的,因为创建的文档字符串与我发布的完全相同。文档字符串正在被正确修改(我可以看到创建的文档中的更改)。 – RedX

回答

0

jonrsharpe指出我与正确的方向与我的名字。

文档字符串必须正好是这样的:在未来的行

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

    """ 

两个空格,并.. deprecated必须开始"""块对齐。它不能在"""的同一行中启动。

降低文档字符串并在.. deprecated之前添加\n解决了我的问题。