web-dev-qa-db-ja.com

Pylint no member-特定のライブラリのE1101エラーを無効にする

とにかく特定のライブラリから作成されたオブジェクトのE1101エラーを非表示にする方法はありますか?私たちの大きなリポジトリには、パンダによって作成されたさまざまなオブジェクトの周りに#pylint: disable=E1101が散らばっています。

たとえば、pylintは次のコードでno memberエラーをスローします。

import pandas.io.data
import pandas as pd
spy = pandas.io.data.DataReader("SPY", "yahoo")
spy.to_csv("test.csv")
spy = pd.read_csv("test.csv")
close_px = spy.ix["2012":]

次のエラーが発生します。

E:  6,11: Instance of 'Tuple' has no 'ix' member (no-member)
E:  6,11: Instance of 'TextFileReader' has no 'ix' member (no-member)
25
Michael WS

generated-membersオプションを使用して、属性を動的に生成されたものとしてマークできます。

例えば。パンダの場合:

generated-members=pandas.*
23
carabas

私が試したまで、これはnumpyのエラーを無視しようとして失敗しました

generated-members=np.*

なぜなら、ほとんどの人と同じように、私は

import numpy as np

生成されたメンバーはリストを取得するため、次のようにすることができます。

generated-members=numpy.*,np.*
4
user10261978

追加情報、carabasからの回答の上に:

generated-membersTYPECHECKセクションに.pylintrcがあります。
デフォルトは次のとおりです。

[TYPECHECK]
…
# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E0201 when accessed.
generated-members=REQUEST,acl_users,aq_parent

E0201の抑制に関するコメントは不完全であることに注意してください。
したがって、これを更新する必要があります:

# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E0201 or E1101 when accessed.
generated-members=REQUEST,acl_users,aq_parent,pandas.*
2