web-dev-qa-db-fra.com

Désactivation de Pylint no member - Erreur E1101 pour des bibliothèques spécifiques

Y a-t-il de toute façon à cacher E1101 des erreurs pour les objets créés à partir d'une bibliothèque spécifique? Notre grand référentiel est jonché de #pylint: disable=E1101 autour de divers objets créés par des pandas.

Par exemple, pylint générera une erreur sans membre sur le code suivant:

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

Aura les erreurs suivantes:

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

Vous pouvez marquer leurs attributs comme générés dynamiquement à l'aide de generated-members option.

Par exemple. pour les pandas:

generated-members=pandas.*
23
carabas

Cela a échoué pour moi en essayant d'ignorer les erreurs dans numpy, jusqu'à ce que j'essaie

generated-members=np.*

puisque, comme presque tout le monde, je fais

import numpy as np

Puisque les membres générés prennent une liste, on pourrait faire:

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

Informations supplémentaires, en plus de la réponse de carabas:

Tu trouveras generated-members dans la section TYPECHECK de .pylintrc.
Voici celui par défaut:

[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

Notez que le commentaire sur la suppression de E0201 est incomplet.
Vous devez donc mettre à jour ceci pour:

# 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
Xavier Lamorlette