Документирование публичных глобальных функций с помощью epydoc

У меня есть модуль, содержащий несколько глобальных функций и глобальную переменную. Переменная и некоторые функции следуют "частному" соглашению об именах для Python, с основным подчеркиванием для имени. Другие функции должны быть общедоступными и не имеют основного подчеркивания.

Я объявил __all__ со списком имен моих публичных функций в начале моего файла.

При попытке сгенерировать документацию для этого модуля с помощью epydoc, epydoc рассматривает все в модуле как личное. И, так как я использую --no-private флаг, это означает, что выходные данные показывают только документацию по самому модулю, а не элементы модуля или их отдельную документацию.

Если я не использую --no-private пометка с epydoc, все документируется. Но я не хочу личных вещей там. Вот кикер: если я закомментирую __all__ , epydoc правильно документирует только публичные элементы моего модуля.

Я относительный новичок в Python, но, насколько я понимаю, __all__ предназначена для того, чтобы избежать неприятностей, когда вы импортируете другие модули, а затем другие модули импортируют ваши, а также для того, чтобы пытаться держать все под контролем, когда все технически открыто, если вы знаете название того, что вы пытаетесь доступ. Опуская __all__ может привести к плохим вещам ™, или так мне сказали. В то же время, epydoc заявляет, что это право __all__ для решения, что является публичным, а что нет.

Это то, что я использую epydoc неправильно, предполагая неправильно об использовании __all__ в моем коде или ошибка в epydoc? (Я уже исправил одну ошибку обработки ошибок в epydoc, которая, по-видимому, вызвана более новыми версиями документов.)

1 ответ

Решение

Эта проблема исчезает при использовании epydoc для документирования более одного файла. Кажется, это ошибка в epydoc, но ее легко обойти, если у вас есть фактический пакет для документа, а не один модуль.

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