Как исключить определенные методы в коде Python из Doxygen? - PullRequest
0 голосов
/ 28 сентября 2018

Я хочу создать документацию по Doxygen из кода Python, но я хочу исключить некоторые методы из класса.

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

ENABLE_PREPROCESSING   = YES

PREDEFINED             = DOXYGEN_SHOULD_SKIP_THIS

и в коде, который я сделал

#ifndef DOXYGEN_SHOULD_SKIP_THIS
def log(text):
    ....
    ...
#endif /* DOXYGEN_SHOULD_SKIP_THIS */

, чтобы исключить метод log из документации, я снова запустил doxygen, нобез ожидаемого результата.Документация для log все еще находится в документации ...

Что я делаю не так?Как правильно исключить метод из документирования или появления в графах вызывающих / калильных?

Ответы [ 2 ]

0 голосов
/ 19 января 2019

Вы можете попытаться получить свой результат, используя фильтры (см. filters4Doxygen ) в качестве препроцессора.

Вы должны создать собственный фильтр для Pyton (используйте в качестве примера BATdoxFilter.bat(sh)): Фильтр «исключить» будет определен в bin / rgx / excpt.RGX с использованием регулярного выражения:

## rule 1, /*skip*/.../*endskip*/  is destroid
regex1=(?mis)/\\*skip(.)*?endskip\\*/
replacement1=

примечание: я не проверял регулярное выражение, поэтому, возможно, некоторая настройка может бытьтребуется: см. https://github.com/msillano/regexfilter/blob/master/README.pdf

Надеюсь, что это может помочь.

С уважением, мс

0 голосов
/ 28 сентября 2018

Упомянутая документация немного устарела (начиная с версии 1.3.5, т.е. с 2004 года; в настоящее время у нас есть версия 1.8.14).Пожалуйста, всегда используйте официальную документацию по адресу http://www.doxygen.nl.

Предварительная обработка не выполняется для всех языков, она не выполняется для Python (насколько я знаю, python не имеет функций предварительной обработки.)

текущая документация гласит:

18.5 Как сделать так, чтобы doxygen игнорировал какой-либо фрагмент кода?

Новый и самый простой способ - добавить один блок комментариев с командой \cond в начале и один комментарий.блокировать командой \endcond в конце фрагмента кода, который следует игнорировать.Это должно быть в том же файле, конечно.Но вы также можете использовать препроцессор doxygen для этого: если вы поместите

#ifndef DOXYGEN_SHOULD_SKIP_THIS
/* code that must be skipped by doxygen */
#endif /* DOXYGEN_SHOULD_SKIP_THIS */

вокруг блоков, которые должны быть скрыты, и поместите:

PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS

в файле конфигурации, тогда все блоки должны бытьпропущенный doxygen, если ENABLE_PREPROCESSING установлен на YES.

Рабочий пример:

def log_shown(text):
    pass

##\cond
def log_not_shown(text):
    pass
##\endcond

Обратите внимание, что из-за отсутствия документации в примере вы должны установитьэлементы конфигурации EXTRACT... до YES.

Для \cond и \endcond см. документацию, также посмотрите настройки конфигурации: ENABLED_SECTIONS

...