Как включить функцию Python в качестве исходного кода - PullRequest
0 голосов
/ 08 октября 2019

Sphinx отлично подходит для связи с конкретными объектами Python.

Например, запись

:func:`foo.bar`

будет напрямую ссылаться на функцию bar в foo.py. Мне нужна та же функциональность, но вместо того, чтобы создавать кликабельную ссылку, я хочу, чтобы вместо нее был код bar().

Директива .. code-block:: language требует, чтобы вы вручную писали код, который хотитеДобавлять. Но я хочу сослаться на код, который уже существует во внешних проектах Sphinx, используя intersphinx , а не писать код сам. :mod:, :func: и другие только создают ссылки, но не включают в себя исходный код.

Также есть .. literalinclude:: filename, но в моем случае я не могу использовать его, потому что функция происходит извнепроект Sphinx (он связан с использованием intersphinx и не является частью реального проекта). Даже если .. literalinclude:: filename может каким-то образом работать с кросс-проектами, я думаю, что мне все равно нужно будет использовать :lines: для фильтрации каждой функции, что было бы огромной болью для отслеживания.

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

1 Ответ

1 голос
/ 24 октября 2019

Никто не ответил, поэтому я сделал свой: https://github.com/ColinKennedy/sphinx-code-include

...