автосуммарные и динамические методы sphinx

Я нашел много способов использования setattr() для создания динамически генерируемых методов и атрибутов класса. Я также использую sphinx для создания документации, и это просто фантастика.

Проблема в том, что я не могу использовать функцию автоматического суммирования sphinx, если атрибуты и методы являются динамическими. Есть ли умный способ сделать это? Динамические методы и атрибуты создаются при инициализации.


person alex    schedule 11.01.2012    source источник
comment
Вы устанавливаете свойство __doc__ динамических методов?   -  person jterrace    schedule 11.01.2012
comment
да, поэтому их документация работает при использовании команды help(), но sphinx не включает их в автокласс, потому что методы генерируются до инициализации класса.   -  person alex    schedule 14.01.2012


Ответы (1)


Попробуйте это (это немного странно):

  1. Создайте экземпляр своего класса в файле conf.py.
  2. Используйте событие autodoc-process-docstring, чтобы запустите обработчик (который вам нужно будет написать), чтобы скопировать элементы __doc__ для различных динамических методов из экземпляра, созданного вами в 1), в вывод для класса.

Это не простое решение, и не легкое, и, черт возьми, может быть, даже невозможное, но оно просто может сработать, если вы сможете понять, как заставить все происходить в нужное время.

person Kevin Horn    schedule 07.12.2012