2017-02-13 23 views
0

Это мой первый раз, когда я использовал Sphinx, и до сих пор я многое выяснил, но есть одно особое предупреждение. Я получаю, что не могу понять, что он мне говорит.sphinx naming special-members

Согласно документации по http://www.sphinx-doc.org/en/stable/ext/autodoc.html, Python «особых» элементов (то есть те, названные как специального) будет включена, если опция флага специальных членов-Дана:

.. autoclass:: my.Class 
    :members: 
    :private-members: 
    :special-members: 

бы документ как «частные», так и «специальные» члены класса. Новое в версии 1.1. Изменено в версии 1.2: Опция теперь может принимать аргументы, т. Е. Специальные элементы для документирования.

Я пытаюсь перечислить __init__ класса в моей документации, но никаких других специальных пользователей, так мой .rst файл следующим образом:

**myClass Class** 
================== 

.. automodule:: python_module.submodule.series.myClass 
    :members: 

    .. autoclass:: myClass 
     :members: 
     :special-members: __init__ 

Я получаю ошибку».rst: 7: ВНИМАНИЕ! : отсутствует атрибут: специальные члены: инициализация в объекте python_module.submodule.series.myClass.myClass

Я использую сфинкс версию 1.5.1 так не должен эту работу, как я передал его имя из специальный член, который я хочу документировать? Ошибка в том, что мне кажется, что я пропускаю что-то ng из моего .py-файла Я вытаскиваю docstrings из. Это так? Я не могу найти никакого упоминания о том, что нужно особому желанию присутствовать в методе, если я хочу это сделать.

+0

'python_module.submodule.series.myClass' не является модулем, это класс. Я думаю, что вы хотите '.. automodule :: python_module.submodule.series'. – mzjn

+0

Приношу свои извинения. На самом деле myClass - это модуль. У меня есть файл myClass.py внутри модуля myClass. Я должен был назвать это лучше. Древовидная структура модулей: python_module-> subodule-> series-> myClass-> myClass.py myClass.py содержит определение класса и методы, используемые этим классом. Вот где __init__ это то, что дает мне проблемы с Sphinx. – boymeetscode

+0

Также, возможно, не связанная проблема? но мой класс docstring повторяется дважды сразу друг за другом. – boymeetscode

ответ

0

Я узнал, что повторение дважды повторяется дважды из-за секции ..автомодуля. Я взял его, и он по-прежнему включает в себя определение всего класса, что делает меня счастливым.

Я до сих пор не могу получить определение __init__, которое будет задокументировано с помощью опции: special-members: option, но это незначительная проблема, так как класс документирован достаточно адекватно. Так что, я думаю, я просто позволю этому предупреждению пнуть меня ... пока.

+0

Я не могу объяснить, почему это не работает для вас с ': special-members:'. Вы можете попробовать другие варианты, описанные здесь: http://stackoverflow.com/a/5599712/407651 – mzjn

 Смежные вопросы

  • Нет связанных вопросов^_^