Pylint拋出一些文件丟失文檔字符串的錯誤。我嘗試向每個類,方法和函數添加文檔字符串,但似乎Pylint還會在文件開頭處檢查文檔是否應該包含文檔字符串。我能以某種方式禁用它嗎?我希望得到一個文檔字符串在類,函數或方法中丟失的通知,但它不應該是文件必須具有文檔字符串的。如何在Pylint的文件級別禁用「丟失文檔字符串」警告?
(有沒有經常發現在一個專有的源文件的開頭的法律術語的一個術語?任何的例子嗎?我不知道它是否是一個好的發佈這樣一個微不足道的問題分開。)
Pylint拋出一些文件丟失文檔字符串的錯誤。我嘗試向每個類,方法和函數添加文檔字符串,但似乎Pylint還會在文件開頭處檢查文檔是否應該包含文檔字符串。我能以某種方式禁用它嗎?我希望得到一個文檔字符串在類,函數或方法中丟失的通知,但它不應該是文件必須具有文檔字符串的。如何在Pylint的文件級別禁用「丟失文檔字符串」警告?
(有沒有經常發現在一個專有的源文件的開頭的法律術語的一個術語?任何的例子嗎?我不知道它是否是一個好的發佈這樣一個微不足道的問題分開。)
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.
"""
很快,你會發現有用的東西就擺在那裏,例如提供如何使用模塊的各種類別/功能的例子,這些類別/功能不一定屬於類別/功能的各個文檔字符串(例如,這些類別/功能如何相互作用,或諸如 快速入門指南)。
我在尋找答案,因爲@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
我認爲解決方法是相對容易的,而不禁用此功能。
def kos_root():
"""Return the pathname of the KOS root directory."""
global _kos_root
if _kos_root: return _kos_root
您需要做的就是在每個函數中添加三重雙引號字符串。
謝謝。我剛剛發現,甚至單引號的工作 – vikas027
問題是問你是否可以禁用「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
現在已經晚了,但我仍然發現它有用。所以分享。 找到了here。
您可以添加「--errors只」標誌pylint的禁用警告。
要做到這一點,請進入設置。編輯下面一行:
"python.linting.pylintArgs": []
由於
"python.linting.pylintArgs": ["--errors-only"]
,你是好去!
對於從源代碼中合法(和其他)樣板消失的+1。汽車的每個部件都沒有附加法律通知。通過一切手段創建一個文件,其中包含項目的法律文本。不要將這些副本放到每個文件中。 –
-1開始的文檔「這是模塊foobar」。這個模塊已經是不言而喻的了。如果模塊更改了名稱,重複它是多餘的並且容易過時。只需包含「爲此和那個提供高級支持」部分。 –
@JonathanHartley:同意。我相應地更新了答案的最後部分。 –