Исключить имена модулей из перекрестной ссылки на классы

Фон

У меня есть проект под названием ciscoconfparse, который задокументирован с помощью Сфинкс; документация по проекту находится здесь.

каталог исходного кода содержит несколько файлов:

  • ciscoconfparse.py содержит классы CiscoConfParse и IOSConfigList
  • models_cisco.py содержит класс с именем IOSCfgLine

Это пример того, как я документирую IOSCfgLine...

.. module:: models_cisco

IOSCfgLine Object
-----------------

.. autoclass:: IOSCfgLine
      :members:
      :inherited-members:

Существующая документация Sphinx содержит отвратительные гиперссылки на классы, включающие как имя файла, так и имя класса; один пример models_cisco.IOSCfgLine.

Пример скриншота документации: введите здесь описание изображения

Вопрос

Как я могу использовать autoclass для документирования классов в различных файлах Python и только видеть имя класса в отображаемой документации вместо имени файла, включенного в класс? Другими словами, я просто хочу видеть гиперссылки на IOSCfgLine вместо models_cisco.IOSCfgLine.


person This    schedule 01.05.2014    source источник


Ответы (1)


Чтобы видеть только само имя в ссылках, вы можете использовать ~ в ссылках:

:class:`~models_cisco.IOSCfgLine`

это будет отображаться как IOSCfgLine вместо models_cisco.IOSCfgLine.


Но поскольку, если я правильно понимаю в вашей кодовой базе, все классы доступны в пространстве имен пакетов верхнего уровня. Таким образом, вы также можете документировать их так (то есть без .. module:: models_cisco, но .. module:: ciscoconfparse).

person joris    schedule 01.05.2014