web-dev-qa-db-ja.com

Pylintで特定の1行を無視することは可能ですか?

ヘッダーに次の行があります。

import config.logging_settings

これは実際に私のpythonロギング設定を変更しますが、pylintはそれが未使用のインポートであると考えています。一般的にunused-import警告を削除したくないので、この特定の1行だけを無視することは可能ですか?

このプロジェクトに.pylintrcを付けても構いませんので、構成ファイルの変更に対する回答は受け入れられます。

そうでなければ、このようなものも高く評価されます:

import config.logging_settings # pylint: disable-this-line-in-some-way
95
The Unfun Cat

Pylintメッセージコントロールは Pylintマニュアル で文書化されています:

特定のメッセージをローカルで無効にすることはできますか?

はい、この機能はPylint 0.11で追加されました。これは以下を追加することで実行できます
#pylint: disable=some-message,another-one
目的のブロックレベルまたは目的のコード行の最後

メッセージコードまたはシンボル名を使用できます。

マニュアルには もあります。

wiki があり、すべてのpylintメッセージとそのコードを文書化しています。

140
jomo
import config.logging_settings # pylint: disable=W0611

これは単純で、その行に固有のものです。

Sthenaultが親切に指摘したように、より読みやすい形式を使用できます。

import config.logging_settings # pylint: disable=unused-import
39
The Unfun Cat

あなたが探しているのは...

import config.logging_settings  # @UnusedImport

他のフォーマット警告が表示されないように、コメントの前の二重スペースに注意してください。

また、IDE(使用している場合)に応じて、おそらく正しい無視ルールを追加するオプションがあります(たとえばEclipseで Ctrl1 カーソルが警告の上にある間、@UnusedImportが自動的に提案されます

5
Basic

https://github.com/PyCQA/pylint/tree/master/pylint/checkers のファイルをチェックアウトします。これらのファイルをCtrl + F-ingするか、Github検索機能を使用するよりも、メッセージからエラー名を取得するより良い方法を見つけていません。

メッセージが「No name ... in module ...」の場合、検索を使用します。

No name %r in module %r repo:PyCQA/pylint/tree/master path:/pylint/checkers

または、結果を減らすには:

"No name %r in module %r" repo:PyCQA/pylint/tree/master path:/pylint/checkers

Githubには以下が表示されます。

"E0611": (
    "No name %r in module %r",
    "no-name-in-module",
    "Used when a name cannot be found in a module.",

その後、次のことができます。

from collections import Sequence # pylint: disable=no-name-in-module
3
loxaxs