Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Disabling Pylint no member- E1101 error for specific libraries

Tags:

pandas

pylint

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)
like image 980
Michael WS Avatar asked Nov 27 '15 16:11

Michael WS


3 Answers

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

E.g. for pandas:

generated-members=pandas.*
like image 106
carabas Avatar answered Nov 19 '22 02:11

carabas


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.*
like image 31
user10261978 Avatar answered Nov 19 '22 03:11

user10261978


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.*
like image 5
Xavier Lamorlette Avatar answered Nov 19 '22 03:11

Xavier Lamorlette