2011-10-24 45 views
28

Pylint拋出一些文件丟失文檔字符串的錯誤。我嘗試向每個類,方法和函數添加文檔字符串,但似乎Pylint還會在文件開頭處檢查文檔是否應該包含文檔字符串。我能以某種方式禁用它嗎?我希望得到一個文檔字符串在類,函數或方法中丟失的通知,但它不應該是文件必須具有文檔字符串的。如何在Pylint的文件級別禁用「丟失文檔字符串」警告?

(有沒有經常發現在一個專有的源文件的開頭的法律術語的一個術語?任何的例子嗎?我不知道它是否是一個好的發佈這樣一個微不足道的問題分開。)

回答

23

Python模塊有一個文檔字符串,解釋模塊做了什麼,它提供了什麼,如何使用這些類是很好的。這與您經常在文件開頭提供版權和許可證信息時看到的意見不同,IMO不應該在文檔字符串中進行(有些甚至認爲它們應該完全消失,參見例如http://hackerboss.com/get-rid-of-templates/

Pylint對於可能出現文檔字符串的不同位置沒有單獨的代碼,因此您只能禁用C0111。問題是,如果你在模塊範圍內禁用它,那麼它將在模塊中的任何地方被禁用(即,你將不會得到任何缺少函數/類/方法docstring的C行。這可能是不好的,你可能想要促成這一pylint issue on github如果你煩惱

所以我的建議是增加小缺失的文檔字符串,說是這樣的:。

""" 
high level support for doing this and that. 
""" 

很快,你會發現有用的東西就擺在那裏,例如提供如何使用模塊的各種類別/功能的例子,這些類別/功能不一定屬於類別/功能的各個文檔字符串(例如,這些類別/功能如何相互作用,或諸如 快速入門指南)。

+3

對於從源代碼中合法(和其他)樣板消失的+1。汽車的每個部件都沒有附加法律通知。通過一切手段創建一個文件,其中包含項目的法律文本。不要將這些副本放到每個文件中。 –

+10

-1開始的文檔「這是模塊foobar」。這個模塊已經是不言而喻的了。如果模塊更改了名稱,重複它是多餘的並且容易過時。只需包含「爲此和那個提供高級支持」部分。 –

+0

@JonathanHartley:同意。我相應地更新了答案的最後部分。 –

6

我在尋找答案,因爲@cerin說,在Django項目中,向創建新應用程序時django自動生成的每個文件中添加模塊文檔都非常繁瑣和多餘。

所以,作爲一個事實,即pylint的不會讓你指定文檔字符串類型的不同解決方法,你可以這樣做:

pylint */*.py --msg-template='{path}: {C}:{line:3d},{column:2d}: {msg}' | grep docstring | grep -v module 

你必須更新MSG-模板,這樣當你grep你仍然會知道文件名。這將返回除模塊以外的所有其他missing-docstring類型。

然後你就可以修復所有這些錯誤,事後只需要運行:

pylint */*.py --disable=missing-docstring 
2

我認爲解決方法是相對容易的,而不禁用此功能。

def kos_root(): 
    """Return the pathname of the KOS root directory.""" 
    global _kos_root 
    if _kos_root: return _kos_root 

您需要做的就是在每個函數中添加三重雙引號字符串。

+0

謝謝。我剛剛發現,甚至單引號的工作 – vikas027

2

問題是問你是否可以禁用「missing module docstring」pylint錯誤。這個問題的答案是否.Pylint目前不允許您區分文檔字符串警告(這非常煩人)。

但是,所有不會丟失,我建議使用flake8所有的python代碼檢查。他們真的有共同的行爲,如果沒有他們,我早就放棄了蟒蛇船。 您可以使用pip - >pip install flake8_docstrings安裝文檔字符串擴展。它使用http://www.pydocstyle.org/en/latest/index.html

然後,您可以只使用--ignore D100開關。例如flake8 file.py --ignore D100

3

現在已經晚了,但我仍然發現它有用。所以分享。 找到了here

您可以添加「--errors只」標誌pylint的禁用警告。

要做到這一點,請進入設置。編輯下面一行:

"python.linting.pylintArgs": []

由於

"python.linting.pylintArgs": ["--errors-only"]

,你是好去!

相關問題