我正在设计一个过滤器设计GUI,并希望在QTextBrowser中显示来自Python的scipy.signal的文档字符串,需要HTML格式。我认为docutils应该为我做的工作,我尝试了
from docutils.core import publish_string
from scipy.signal import remez
self.txtFiltInfoBox.append(publish_string(remez.__doc__,
writer_name='html'))
其中txtFiltInfoBox是QTextBrowser实例。但是,publish_string会在文档字符串中遇到的第一个标题(“参数”)上发生阻塞:
docutils.utils.SystemMessage: <string>:10: (SEVERE/4) Unexpected section title.
Parameters
----------
我认为原因是方法的整个docstring是缩进的,导致reST标记无效。是否有一种简单的方法可以使用docstring或告诉publish_string忽略一定数量的前导空格?
完整代码可在pyFDA project找到。
答案 0 :(得分:0)
您可以使用textwrap.dedent
,就像文档所说的那样:
从 text 中的每一行删除任何常见的前导空格。
例如(来自a similar question on CodeReview):
>>> import textwrap
>>> print(textwrap.dedent(
"""
Usage examples:
Test deployment:
$ fab [noinput] test deploy
Staging deployment:
$ fab [noinput] staging deploy
Production deployment:
$ fab [noinput] production deploy
"""
))
Usage examples:
Test deployment:
$ fab [noinput] test deploy
Staging deployment:
$ fab [noinput] staging deploy
Production deployment:
$ fab [noinput] production deploy