让Pycco将doctests识别为代码吗?

时间:2015-01-05 21:56:31

标签: python docco

有没有办法让Pycco将doctests识别为代码并正确渲染它们?

E.g。以下函数的文档字符串

def fib(i):
    """ Fibonacci number

    >>> fib(10)
    55
    """
    if i < 2:
        return i
    else:
        return fib(i-1) + fib(i-2)

在Pycco中呈现如下

Fibonacci number

           fib(10) 5

显然,>>>被解释为缩进,代码突出显示未生效。这似乎是一个常见的用例。在某个地方有一个我不知道的插件吗?

1 个答案:

答案 0 :(得分:1)

Python并不介意doctest套件是否与文档字符串的其余部分相比缩进了额外的四个字符,只要它内部一致,因此以下内容将通过测试(在2.7中测试) .9和3.4.2):

def test():
    """Doctest test

    The following are doctests:

        >>> test()
        'foo'

    That went well.

    """
    return 'foo'

if __name__ == "__main__":
    import doctest
    doctest.testmod(verbose=True)

这个额外的缩进将被解释为pycco的代码块,就像在SO上的Markdown一样。上面的测试用HTML呈现如下:

Screen grab of rendered pycco HTML