ビルドシステムでは、pylintを使用しています。私たちは、コードベースにPythonパッケージを用意しています。このコードでは、モジュールの警告をすべて一時的に無効にして、余分なメッセージを他の開発者に盗ませることはできません。 pylint: disable
モジュールのすべての警告に簡単な方法はありますか? Pylint < 0.25でPyLint FAQファイルのすべての警告を無効にする
から
ビルドシステムでは、pylintを使用しています。私たちは、コードベースにPythonパッケージを用意しています。このコードでは、モジュールの警告をすべて一時的に無効にして、余分なメッセージを他の開発者に盗ませることはできません。 pylint: disable
モジュールのすべての警告に簡単な方法はありますか? Pylint < 0.25でPyLint FAQファイルのすべての警告を無効にする
から
、モジュールの先頭で
# pylint: disable-all
を追加します。
Pylint 0.26.1とまでは
# pylint: skip-file
(ただし、下位互換性のために保持される最初のバージョン)にそのディレクティブの名前を変更しました。
どのモジュールが無視されているかを簡単に見つけるために、情報レベルのメッセージI0013が発行されます。最近のバージョンのPylintでは、古い構文を使用すると、追加のI0014メッセージが発行されます。
もう1つの方法は、コマンドラインオプションを使用して、一部のファイルの解析をスキップすることです。
はい、# pylint: skip-file
と指定できますが、ファイルのすべての警告を無効にすることをお勧めします。投棄コードは、pylintによって分析される枝には存在してはなりません。
あなただけの特定の警告を無効にしたい場合は、このファイルの残りの部分のための指定されたメッセージを無効にするには、このような# pylint: disable=message-name
としてコメントを追加することによって行わ、または少なくとも# pylint: enable=message-name
まですることができます。
例:
# pylint: disable=no-member
class C123(object):
def __init__(self):
self.foo_x = self.bar_x
# pylint: enable=no-member
class C456(object):
def __init__(self):
self.foo_x = self.bar_x
このように 'disable = locally-disabled'のような特定の警告が無効になっていることを避けるために、pylintrcに追加することができます。 – ColonelFazackerley
@ColonelFazackerleyはい、その時点であなたのプロジェクトに 'pylintrc'ファイルがあることは意味があります。例は[ここ](https://github.com/impredicative/pyskeleton/blob/master/pylintrc)です。 –
PyLintは(私は承知しているうち)five "categories" for messagesを持っています。
これらのカテゴリは非常に明白でしたが、番号の付いたPylintメッセージは名前に置き換えられました。たとえば、C0302
はtoo-many-lines
です。しかし、 'C'は、too-many-lines
がのコンベンションであることを私に伝えています。多くのシステム(たとえば、Syntasticなど)は、すべてを警告またはエラーのいずれかとして分類しているように見えるため、メッセージはしばしば警告として表示されるため、これは混乱します。しかし、PyLintレポートではまだこれらのカテゴリに分類されているので、引き続きサポートされています。
あなたの質問は、具体的警告を指し、すべてのPyLint 警告メッセージ名は「W」で始まります。
これを追跡するのは少し難しかったが、this answerが最終的に私を答えに導いた。 PyLintはメッセージカテゴリ全体の無効化をサポートしています。だから、すべての警告を無効にするには、あなたがどうなる:
disable=W
これは、コマンドラインで使用することができます。
$ pylint --disable=W myfile.py
それとも、あなたはpylintrcファイルにそれを置くことができます。
[MESSAGES CONTROL]
disable=W
注:rcファイルに既にdisable
オプションがある場合は、このリストに 'W'を追加する必要があります。
それとも、あなたはそれが配置される範囲のために働くあなたのコード、インラインそれを置くことができます。
# pylint: disable=W
ファイル全体のためにそれを無効にするには、それはでそれを置くのがベストですファイルの最上部。しかし、ファイルの一番上であっても、私はまだtrailing-newlines
という警告メッセージが表示されていました(技術的には警告警告ですが、私はそれに迫っています)。
私の場合、私はずっと前から誰かが書いたライブラリを持っていました。それはうまくいったので、現代のPythonのコンベンションなどを心配する必要は本当にありませんでした。私が本当に気にしたのは、私のコードを壊す可能性のあるエラーでした。
私のソリューションを無効にすることだった全ての警告、条約、この1つのファイルのリファクタリングメッセージのみ最初の行に次のPyLintコマンドを配置することによって:別に
# pylint: disable=W,C,R
前述の改行のメッセージで、これは私が必要としていたものとまったく同じでした。
私は、pylint *.py
を実行してディレクトリ内のすべてのファイルを処理することをお勧めしますが、特定のファイルをスキップしたい場合を除きます。
#pylint: skip-file
を追加すると、ファイルサイズがI: 8, 0: Ignoring entire file (file-ignored)
で失敗しました。 #pylint: disable=file-ignored
を追加してもそれは修正されません。おそらく、ファイル固有のエラーではなく、グローバルエラーです。
解決策は、pylintコマンドオプションに--disable=file-ignored
を含めることでした。これを理解するには時間がかかりすぎた。明示的にファイルを無視すると、file-ignored
エラーが発生してはなりません。
もっと理想的には、コマンドオプションではなく 'pylintrc'設定ファイルに置きます。 –
注:これにより、すべての警告と*すべてのエラー*が無効になります。 * only * warningsを無効にする方法を探しているなら、このページの私の答えを見てください。 – eatcrayons