0

使用 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.

又名:epydoc 不理解 cythonized 签名的嵌入方式......

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

4

1 回答 1

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

那成功了。希望这可以帮助一些人。

于 2013-01-31T03:05:41.757 回答