Я пытаюсь документировать свой код на Python с помощью Sphinx, но обнаружил проблему с документированием некоторых данных, созданных с помощью exec
;У меня есть таблица с именами и значениями, которые мне нужно создать.
Итак, в своем коде я написал что-то вроде:
my_vars = [{'name': 'var1', 'value': 'first'},
{'name': 'var2', 'value': 'second'}]
for var in my_vars:
exec("{var[name]} = '{var[value]}'".format(var=var))
Проблема в Sphinx: поскольку я хотел бы сохранить только исходный код, который я использовал autodata
, соответствующие строкииз моего .rst
файла:
.. autodata:: mymodule.var1
.. autodata:: mymodule.var2
, который при сборке дал мне это:
mymodule.var1 = 'first'
str(string[, encoding[, errors]]) -> str
Create a new string object from the given encoded string.
encoding defaults to the current default string encoding.
errors can be ‘strict’, ‘replace’ or ‘ignore’ and defaults to ‘strict’.
mymodule.var2 = 'second'
str(string[, encoding[, errors]]) -> str
Create a new string object from the given encoded string.
encoding defaults to the current default string encoding.
errors can be ‘strict’, ‘replace’ or ‘ignore’ and defaults to ‘strict’.
Я думаю, что autodata идет в var1.__doc__
для строки документа и там нашел str.__doc__
(это сообщение показывалось ранее).
Я действительно не знаю, что делать, и я ищу способ не показывать эту уродливую строку документа (но все еще поддерживаю mymodule.var1 = 'first'
).
Или, может быть, даже лучший способ показать мой собственный документ, например: var1 is this.
(но я не знаю, где его разместить).