web-dev-qa-db-ja.com

Pylintのファイルレベルで「missing docstring」警告を無効にするにはどうすればよいですか?

Pylintは、一部のファイルにdocstringがないというエラーをスローします。各クラス、メソッド、関数にdocstringsを追加しようとしましたが、Pylintはファイルの先頭にdocstringがあるかどうかもチェックしているようです。何とかこれを無効にできますか? docstringがクラス、関数、またはメソッド内で欠落していることを通知したいのですが、ファイルにdocstringがあることは必須ではありません。

(プロプライエタリのソースファイルの冒頭によく見られる法律用語の用語はありますか?例はありますか?そのような些細な質問を個別に投稿してもいいかどうかわかりません。)

57

Pythonモジュールがdocstringを持ち、モジュールが何をするのか、何を提供するのか、クラスの使用方法の例を説明するのはいいことです。これはよく見られるコメントとは異なります。 IMOがdocstringに入ってはいけない著作権とライセンス情報を提供するファイルの先頭(それらは完全に消えるべきだと主張する人もいます。たとえば、 http://hackerboss.com/get-rid-ofを参照してください。 -templates /

Pylintには、docstringが発生する可能性のあるさまざまな場所に個別のコードがないため、できることはC0111を無効にすることだけです。問題は、モジュールスコープでこれを無効にすると、モジュール内のすべての場所で無効になることです(つまり、欠落している関数/クラス/メソッドのdocstringのC行が表示されないことです。これに貢献するには githubのpylintの問題 気になったら。

したがって、私が提案するのは、そのような小さな欠落したdocstringを追加して、次のようなことを言うことです:

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

すぐに、クラス/関数の個々のdocstringsに必ずしも属しないモジュールのさまざまなクラス/関数の使用例(これらの方法など)対話、またはクイックスタートガイドのようなもの)。

57
gurney alex

遅いですが、それでも私はそれが便利だと感じました。共有します。これを見つけました here

警告を無効にするために、pylintに「--errors-only」フラグを追加できます。

これを行うには、設定に移動します。次の行を編集します。

"python.linting.pylintArgs": []

なので

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

そして、あなたは行ってもいいです!

29
Nilesh Kevlani

@cerinが言ったように、Djangoプロジェクトでは、Django =新しいアプリの作成時に自動的に生成されます。

そのため、pylintではdocstring型の違いを指定できないという事実の回避策として、次のようにできます。

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

Grepを実行してもファイル名がわかるように、msg-templateを更新する必要があります。これは、モジュールを除く他のすべての行方不明のdocstring型を返します。

その後、これらのエラーをすべて修正し、その後実行するだけです:

pylint */*.py --disable=missing-docstring
9
mattsl

いいえ。Pylintでは現在、doc-string警告を区別できません。

ただし、すべてのpythonコードチェックとdoc-string拡張機能を使用してこの警告を無視することができます。

Pipを使用してdoc-string拡張機能をインストールします(内部的には pydocstyle を使用します)。

pip install flake8_docstrings

その後、単に--ignore D100スイッチ。例えば ​​flake8 file.py --ignore D100

8
henryJack

この機能を無効にしなくても、修正は比較的簡単だと思います。

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

必要なことは、すべての関数に三重の二重引用符文字列を追加することだけです。

7