2014-05-05 2 views
1

Так я определить, чтобы сделать такую ​​вещь:Sphinx автодок заменить стандартные: Участники:

Мне нужно

.. automodule:: main 
    :members: 

но с функциональностью

This is my caption 
------------------ 

.. autodata:: CAPTION 

    About my caption 

Итак, мне нужно написать что-то о каждой функции, методе и классе, но вместе с тем мне нужно, чтобы вся новая функция, которую я создал в коде, будет отображаться в документах без редактирования документов. Можно ли это сделать?

ответ

2

Из docs:

членов без строки документации будут исключены, если не дать возможность ЮНДОК-члены флага:

.. automodule:: noodle 
    :members: 
    :undoc-members: 

Кроме того, «Частные» члены (то есть те, названный как _private или __private) будет включен, если задан флажок private-members flag, и будут добавлены «специальные» участники Python (то есть те, которые называются __special__), если указан параметр флага специальных членов:

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

И, наконец! Можно переопределить подпись для явно документированных ГОО объектов (функций, методов, классов) с регулярным синтаксисом, который переопределяет подпись получил от интроспекции:

.. autoclass:: Noodle(type) 

    .. automethod:: eat(persona) 

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

+0

уже читали эту страницу в 10 раз с ногами на голове, а также другие страницы на сфинкс вики + тоннах StackOverflow нитей :) Возможно, я спросил это неправильно, что я хочу do is use: members: (и возможно: undoc-members :), так что, когда я добавляю код в свой проект, он будет отображаться в документации sphinx без моего вмешательства. Но мне также нужно иметь возможность добавлять некоторую информацию к каждому классу/функции/переменной, потому что мне нравится чистый код без комментариев, и в моем проекте почти нет docstrings. – EwanCoder

+0

Кроме того, я только что заметил, что все мои переменные в методах полностью игнорируются сфинксом ... это странно и плохо, потому что у меня есть один класс и множество функций внутри него, которые содержат важные циклы и переменные. – EwanCoder

+0

Если вы, re только тот, кто читает ваш код, а затем отсутствие docstrings, вероятно, хорошо, но на самом деле это плохая практика. Многие программисты сначала читают код и вторую документацию, поэтому подумайте о том, чтобы иметь хотя бы некоторые базовые docstrings, которые, по крайней мере, будут описывать, что делает эта вещь, избегая очевидного, конечно. Кроме того, члены: и: undoc-members: будут делать именно то, что вы хотите. Если это не сработает для вас, у вас проблемы в другом месте, возникают ли ошибки при создании документации?Также Sphinx не будет документировать ваши циклы и другую логику внутри функции, только ее подпись. –

2

Поскольку я искал решение для включения всех модулей, методов, функций, которые у меня есть в документации к документации, я наткнулся на этот вопрос.

Я не уверен в этом, что вы ищете, но решить мою проблему, и он включен здесь для любого, кто мог бы найти полезным Github HyperSpy Repo

Имеет приятный небольшой Баш скрипт, который будет экранировать код и написать правильный

.. automodule 

для каждого модуля там в исходном дереве, надеюсь, что помогает

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