Как заставить параметры 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

Но в html, создаваемом epydoc, прототип методов по-прежнему отображается с 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.

Любая идея? большое спасибо

РЕДАКТИРОВАТЬ: Извините, я только что протестировал простой скрипт, который отлично работает. Предыдущий случай не работал, потому что это общий объект (.so), скомпилированный с Cython. Это имеет значение. Источник также не может быть отображен. Я думал, что epydoc работает только над строками документации, в том что касается разбора прототипа функций, но это выглядит немного сложнее, чем это...

РЕДАКТИРОВАТЬ 2: Более того, если я скомпилирую, передав директиву компиляции "embedsignature" в "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 не понимает цитонизированные подписи так, как они встроены...

Если у вас есть более конкретные объяснения, я все еще ваш мужчина. Спасибо

1 ответ

Решение

Понял.

Я удалил директиву компиляции Cython, которая отправляла подписи, которые epydoc не мог понять, например:

PyLabNode.SetNetwork(self, PyLabNetwork net)

Это имеет два недостатка: пунктирная запись префикса класса и типизированного параметра.

И заменил его на правильно сформированный питон в качестве самой первой строки строки документа, давая:

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

Это добилось цели. Надеюсь, что это может помочь некоторым людям.

Другие вопросы по тегам