2015-02-24 33 views
0

我正在設計過濾器設計GUI,並希望在QTextBrowser中顯示來自Python的scipy.signal的文檔,需要HTML格式。我覺得應該docutils的爲我做的工作,我想使用docutils將scipy docstrings(reST)轉換爲HTML

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 project找到。

回答

0

您可以使用textwrap.dedent來,作爲文檔所說的那樣:

從每一行中文本刪除任何共同的前導空格。

例如(從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 
+0

感謝 - 這真是太棒了!還有一個我不知道的Python模塊......並且抱歉沒有足夠的聲望來投票給你。 – Chipmuenk 2015-02-24 14:48:21