114

ビルドシステム内でPylintを使用しています。

コードベース内に使い捨てコードを含むPythonパッケージがあり、モジュールのすべての警告を一時的に無効にして、これらの不要なメッセージで他の開発者を悩ませないようにしたいと思います。pylint: disableモジュールのすべての警告に簡単な方法はありますか?

4

5 に答える 5

158

Pylint FAQから:

Pylint <0.25の場合、追加

# pylint: disable-all

モジュールの最初に。

Pylint 0.26.1以降では、そのディレクティブの名前が次のように変更されました

# pylint: skip-file

(ただし、最初のバージョンは下位互換性のために保持されます)。

無視されるモジュールを見つけやすくするために、情報レベルのメッセージI0013が発行されます。Pylintの最近のバージョンでは、古い構文を使用すると、追加のI0014メッセージが発行されます。

于 2012-04-20T00:02:39.643 に答える
42

Pylintには、メッセージ用の5つの「カテゴリ」があります(私は知っています)。

これらのカテゴリは以前は非常に明白でしたが、番号が付けられたPylintメッセージは現在名前に置き換えられています。たとえば、C0302はになりtoo-many-linesました。しかし、「C」はそれtoo-many-linesコンベンションメッセージであることを示しています。多くのシステム(Syntasticなど)はすべてを警告またはエラーとして分類しているように見えるため、コンベンションメッセージは警告として表示されることが多いため、これは混乱を招きます。ただし、Pylintレポートは依然としてこれらのカテゴリに分類されているため、確実にサポートされています。

あなたの質問は特に警告に言及しており、すべてのPylint警告メッセージ名は「W」で始まります。

これを突き止めるのは少し難しかったですが、この答えが最終的に答えにつながりました。Pylintは、メッセージのカテゴリ全体の無効化を引き続きサポートします。したがって、すべての警告を無効にするには、次のようにします。

disable=W

これは、コマンドラインで使用できます。

$ pylint --disable=W myfile.py

または、 pylintrcファイルに入れることができます。

[MESSAGES CONTROL]
disable=W

注:disablercファイルにすでにオプションがある場合は、このリストに「W」を追加する必要があります。

または、コードにインラインで配置することもできます。この場合、コードが配置されているスコープで機能します。

# pylint: disable=W

ファイル全体で無効にするには、ファイルの一番上に配置するのが最適です。trailing-newlinesただし、ファイルの一番上でも、警告メッセージが表示されていることがわかりました(技術的には通常の警告ですが、これに到達しています)。

私の場合、昔から誰かが書いた図書館がありました。それはうまく機能したので、現代のPythonの慣習などについて心配する必要はありませんでした。私が本当に気にかけたのは、コードを壊す可能性のあるエラーだけでした。

私の解決策は、最初の行に次のPylintコマンドを配置するだけで、この1つのファイルのすべての警告規則、およびリファクタリングメッセージを無効にすることでした。

# pylint: disable=W,C,R

末尾の改行に関する前述のメッセージは別として、これはまさに私が必要としていたことを実行しました。

于 2017-04-20T04:37:08.777 に答える
24

はい、ファイルで指定できます# pylint: skip-fileが、ファイルのすべての警告を無効にすることはお勧めできません。

# pylint: disable=message-name特定の警告のみを無効にする場合は、ファイルの残りの部分、または少なくとも。まで、指定されたメッセージを無効にするなどのコメントを追加することで実行できます# pylint: enable=message-name

例:

# pylint: disable=no-member
class C123:
    def __init__(self):
        self.foo_x = self.bar_x
# pylint: enable=no-member

class C456:
    def __init__(self):
        self.foo_x = self.bar_x
于 2017-01-26T20:24:28.097 に答える
7

もう1つのオプションは、--ignoreコマンドラインオプションを使用して、一部のファイルの分析をスキップすることです。

于 2012-04-23T07:11:44.960 に答える
0

私のユースケースは、pylint *.py特定の1つのファイルをスキップしたい場合を除いて、ディレクトリ内のすべてのファイルを処理するために実行することです。

追加する# pylint: skip-fileと、Pylintはで失敗しましI: 8, 0: Ignoring entire file (file-ignored)た。追加# pylint: disable=file-ignoredしても修正されません。おそらく、これはファイル固有のエラーではなく、グローバルエラーです。

解決策は--disable=file-ignored、Pylintコマンドオプションに含めることでした。これを理解するには時間がかかりすぎました。file-ignoredファイルを明示的に無視してもエラーは発生しないはずです。

于 2017-06-03T02:13:22.237 に答える