0

我正在设计一个过滤器设计 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
----------

我认为原因是该方法的整个文档字符串是缩进的,导致无效的 reST 标记。有没有一种简单的方法来减少文档字符串或告诉 publish_string 忽略一定数量的前导空格?

完整的代码可以在pyFDA 项目中找到。

4

1 回答 1

0

textwrap.dedent正如文档所说,您可以使用:

从text的每一行中删除任何常见的前导空格。

例如(来自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
于 2015-02-24T10:20:23.803 回答