Disabling Pylint no member- E1101 error for specific libraries

心不动则不痛 提交于 2019-11-29 05:10:19

问题


Is there anyway to hide E1101 errors for objects that are created from a specific library? Our large repository is littered with #pylint: disable=E1101 around various objects created by pandas.

For example, pylint will throw a no member error on the following code:

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":]

Will have the following errors:

E:  6,11: Instance of 'tuple' has no 'ix' member (no-member)
E:  6,11: Instance of 'TextFileReader' has no 'ix' member (no-member)

回答1:


You can mark their attributes as dynamically generated using generated-members option.

E.g. for pandas:

generated-members=pandas.*



回答2:


This failed for me trying to ignore errors in numpy, until I tried

generated-members=np.*

since, like most everybody, I do

import numpy as np

Since generated-members takes a list, one might do:

generated-members=numpy.*,np.*



回答3:


Additional information, on top of the answer from carabas:

You will find generated-members in the TYPECHECK section of .pylintrc.
Here is the default one:

[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

Note that the comment about suppressing E0201 is incomplete.
So you have to update this to:

# 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.*


来源:https://stackoverflow.com/questions/33961756/disabling-pylint-no-member-e1101-error-for-specific-libraries

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!