如何在函数原型中制作epydoc show参数?

时间:2013-01-31 01:13:52

标签: function parameters cython epydoc

使用epydoc,版本3.0.1。

我尝试了这个简单的事情:

def SetNetwork(self, PyLabNetwork net):
    """
    Set the net !!!
    @param self: How long they should think.
    @type self: C{int} or L{PyLabNetwork}
    @param net: How long they should think.
    @type net: C{int} or L{PyLabNetwork}
    """
    self.network = net

跑吧:

epydoc -v -o ./html --name epydoc --css white --docformat epytext cyelp

但是在epydoc生成的html中,方法原型仍然以3个连续的点而不是描述的参数出现:

SetNetwork(...) << ??? NOTHING INSIDE ???

Set the net !!!

Parameters:

        self (int or PyLabNetwork) - How long they should think.
        net (int or PyLabNetwork) - How long they should think.

有什么想法吗? 非常感谢

编辑:对不起,我刚测试了一个完美运行的简单脚本。之前的情况不起作用,因为它是使用Cython编译的共享对象(.so)。它有所作为。源也无法显示。我认为epydoc只是在文档字符串上工作,关于函数原型的解析,但它似乎比那个更复杂......

EDIT2:此外,如果我编译将“embedsignature”cython编译指令传递给“True”,我会得到一些东西 - 这仍然是错误的但我更了解这种现象:

SetNetwork(...)


PyLabNode.SetNetwork(self, PyLabNetwork net)

Set the net !!!

Parameters:

        self (int or PyLabNetwork) - How long they should think.
        net (int or PyLabNetwork) - How long they should think.

Aka:epydoc不会像嵌入它们那样理解cythonized签名...

如果你有更具体的解释,我仍然是你的男人。 感谢

1 个答案:

答案 0 :(得分:0)

知道了。

我删除了cython编译指令,该指令发送了epydoc无法理解的签名:

PyLabNode.SetNetwork(self, PyLabNetwork net)

这有两个缺点:类前缀和类型参数的点分表示法。

并将其替换为一个python,它形成了一个作为文档字符串的第一行,给出:

def SetNetwork(self, PyLabNetwork net):
    """
    SetNetwork(self, net)
    Set the net !!!
    @param self: Handler to this.
    @type self: L{PyLabNode}
    @param net: The network this node belongs to.
    @type net: L{PyLabNetwork}
    """
    self.network = net

这就是诀窍。希望这可以帮助一些人。