Отображение данных словаря в документации Sphinx
У меня есть словарь в исходном коде проекта Python, который описывает значения конфигурации по умолчанию. Словарь довольно длинный. Я хотел бы видеть словарь в документации Sphinx в другом формате, кроме "View source", чтобы люди могли быстро проверить значения по умолчанию.
Предоставляет ли Sphinx опции для форматирования словарных переменных для удобного для чтения формата при использовании с Sphinx autodoc? В настоящее время я использую .. automodule::
для выгрузки всего модуля, и я получаю словарь как один длинный дамп строк в документации (без новой строки, довольно печатной, ничего), будучи в основном нечитаемым.
Ответы
Ответ 1
Это может быть не самое изящное решение (было бы гораздо лучше написать правильную директиву для вывода довольно печатного словаря), но это работает сейчас:
Добавьте настраиваемую директиву exec, указанную здесь здесь, в ваш файл Sphinx.conf, затем в файле .rst, который вы хотите распечатать словарь, выполните следующие действия:
.. exec::
import json
from some_module import some_dictionary
json_obj = json.dumps(some_dictionary, sort_keys=True, indent=4)
print '.. code-block:: JavaScript\n\n %s\n\n' % json_obj
Это будет печатать ваш словарь в кодовом блоке JavaScript в ваших документах (который, как я считаю, является наилучшим способом отображения словарей в документах).
Ответ 2
Если значение словаря не вычислено и читается человеком, как это
FRUITS = {
"Apple": "Red and Delicious",
# note: eating too much orange make your hands orange
"Orange": "A lot of vitamin C"
}
скажем, у вас есть вышеупомянутый dict, определенный в fruit.py, начиная со строки № 15
тогда вы можете сделать:
.. literalinclude:: ../path-to-file/fruit.py
:language: python
:lines: 15-
:linenos:
и вы получите удобочитаемое значение + комментарии и т.д. прямо на документ