Sphinx с autodo c «Двойное описание объекта» Предупреждение при группировании членов в отдельные файлы - PullRequest
1 голос
/ 22 апреля 2020

У меня есть несколько функций в модуле, которые я хотел бы разбить на две группы в моей документации. У меня есть три файла:

my_mod.rst

my_mod
======
.. automodule:: my_mod
   :no-members:

.. toctree::
   :maxdepth: 1

   my_mod/group1
   my_mod/group2

group1.rst

group1
======

.. automodule:: my_mod
   :members: add, subtract

group2.rst

group2
======

.. automodule:: my_mod
   :members: multiply, divide

Я должен использовать .. automodule:: my_mod в каждом. В my_mod.rst он отображает строку документации модуля, а в других файлах идентифицирует :members:, который я хочу отобразить. Однако это приводит к нескольким ошибкам при создании файлов HTML, например:

/pathto/my_mymod.rst:2: WARNING: duplicate object description of my_mod, other instance in my_mod/group1, use :noindex: for one of them

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

Могу ли я избежать этих сообщений об ошибках, не теряя функциональности? Кроме того, похоже, что это работает, как я и надеялся (за исключением сообщений об ошибках), но есть ли потенциальные ловушки при обращении к одному и тому же модулю несколько раз?

1 Ответ

2 голосов
/ 23 апреля 2020

Альтернативой является использование autofunction.

group1
======

.. currentmodule:: my_mod

.. autofunction:: add
.. autofunction:: subtract

и

group2
======

.. currentmodule:: my_mod

.. autofunction:: multiply
.. autofunction:: divide
...