Python/Doctest - документирование сложных строк
Я студент, работающий над заданием, где я должен документировать все внутренние функции. Мои функции используют сложные строки и также возвращают сложные строки, поэтому я понятия не имею, как это сделать. Например, моя функция "ProcessImports()" может принимать строку:
%@import
blahblah
%@
И вернуться:
\begin{shadedquoteBlueBar}
\fontsize{9pt}{9pt}
\begin{Verbatim}
blahblah}
\end{Verbatim}
\end{shadedquoteBlueBar}
\noindent
Как бы я обойти это? Я не видел примеров использования doctest, которые не возвращают классы / структуры или числа или другие простые представления (например, "\n" не работает).
Вот функция ProcessImports (): http://pastebin.com/3JjnyKjK
Любая помощь будет оценена!
Изменить: может хотеть проигнорировать попытку doctest наверху. Это просто я пытаюсь бездельничать, чтобы выяснить, смогу ли я заставить это работать, и терпеть неудачи в этом.
1 ответ
В следующем примере показан один успешный подход; имейте в виду, что doctest просто должен выглядеть как сеанс переводчика:
from textwrap import dedent
def function(s):
"""Testing doctests.
>>> print function('''%@import
... blahblah
... %@''')
<BLANKLINE>
\\begin{shadedquoteBlueBar}
\\fontsize{9pt}{9pt}
\\begin{Verbatim}
blahblah}
\\end{Verbatim}
\\end{shadedquoteBlueBar}
\\noindent
"""
s = dedent(r"""
\begin{shadedquoteBlueBar}
\fontsize{9pt}{9pt}
\begin{Verbatim}
blahblah}
\end{Verbatim}
\end{shadedquoteBlueBar}
\noindent""")
return s
Обратите внимание на продолжение символов ...
на входе в функцию внутри строки документации.