バグの可能性があると思われるpylintに問題がありますが、チケットを購入できるものにまとめるのが難しいので、他の人が私が経験していることを経験したかどうか、もしそうなら、それがどのように解決されたかを知りたいです。
私が働いている会社では、コードベース全体をリントするように移動しました。これは基本的に
find my_subdir -iname '*.py' | sort | xargs pylint
m_a、m_b、m_cの3つのモジュールでは、回避できないW0201の違反があり、問題のある行に次のようにマークを付けています。
#pylint:disable-msg = W0201
これは、ディレクティブが無視される最初に検出されたモジュール(m_a)を除いて機能します。(メソッド、クラス、またはモジュール全体のスコープに移動しても無視されます。)モジュールm_bおよびm_cの場合、ディレクティブが有効になります。
m_aを削除すると、代わりにm_bに「ignoredirective」効果があります(削除すると、m_cになります)。3つのモジュールはすべて、m_xなどの4番目のモジュールに依存しているため、コマンドラインから
find my_subdir -iname '*.py' | sort | grep -v 'm_x' | xargs pylint
そして今、リンティングは通過します(つまり、「ignoredirective」-効果は発生しません)。
これはすべて、Pylintには、あるモジュールのチェックから次のモジュールへと運ばれるある種の状態があることを私に示唆していますが、これに関するドキュメントは見つかりません。Pylintの既知の動作ですか?
それがバグである場合、私はそれを解決するのを手伝いたいと思います。悲しいことに、コードベースは機密で巨大なので、おそらくPylintコードベースを自分でデバッグする必要があります。ですから、どこから探し始めたらいいのか教えてくれる人がいたらいいのにと思います。
編集:pylint --versionからの出力は次のとおりです。
pylint 0.26.0,
astng 0.24.1, common 0.58.3
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3]
私は問題をより小さなスケールで再現しようとしましたが、これまでのところうまくいきません。