450 votes

Comment désactiver un avertissement PyLint?

Je suis en train de désactiver l'avertissement C0321 ("plus d'une instruction sur une seule ligne" -- j'ai souvent mis if des énoncés à court d'une seule ligne, les résultats sur la même ligne), dans PyLint 0.21.1 (si c'est important: astng 0.20.1, commune 0.50.3, Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56)).

J'ai essayé d'ajouter disable=C0321 dans le PyLint fichier de configuration, mais PyLint insiste sur les rapports de toute façon. Variations sur la ligne (comme disable=0321 ou disable=C321) sont marquées comme des erreurs, de sorte PyLint ne reconnaître l'option correctement, c'est juste de l'ignorer.

Est-ce un PyLint bug, ou suis-je en train de faire quelque chose de mal? Est-il un moyen de contourner cela? J'aimerais vraiment me débarrasser d'une partie de ce bruit.

284voto

imolit Points 155

À partir de Pylint v. 0.25.3, vous pouvez utiliser les noms symboliques pour les messages au lieu de vous rappeler tous ces numéros de code . Par exemple:

 # pylint: disable=fixme, line-too-long
 

Plus pratique, à mon humble avis, d’autant plus que les nouvelles versions de Pylint n’indiquent que le nom symbolique, pas le code d’erreur.

243voto

Chris Morgan Points 22285

pylint --generate-rcfile montre comme ceci:

 [MESSAGES CONTROL]

# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
# multiple time.
#enable=

# Disable the message, report, category or checker with the given id(s). You
# can either give multiple identifier separated by comma (,) or put this option
# multiple time (only on the command line, not in the configuration file where
# it should appear only once).
#disable=
 

Il semble donc que votre ~/.pylintrc devrait avoir les disable= lignes / s à l'intérieur d'une section [MESSAGES CONTROL] .

206voto

Remi Points 4223

J'ai eu ce problème en utilisant Eclipse et résolu comme suit:

dans le pylint dossier (par ex. C:\Python26\Lib\site-packages\pylint), maintenez la touche maj enfoncée, cliquez-droit et choisissez ouvrir les fenêtres de commande dans ce dossier. Type:

lint.py --generate-rcfile > standard.rc

Cela crée le " standard.la rc fichier de configuration. L'ouvrir dans le bloc-notes et sous '[MESSAGES]', décommentez 'disable=" et d'ajouter " l'ID de message que vous souhaitez désactiver, par exemple:

disable=W0511, C0321

Enregistrez le fichier, et dans Eclipse->fenêtre->préférences->PyDev->pylint, dans les arguments de la zone, tapez:

--rcfile=C:\Python26\Lib\site-packages\pylint\standard.rc

Maintenant, il doit travailler ...


Vous pouvez également ajouter un commentaire dans le haut de votre code qui sera interprété par pylint:

# pylint: disable=C0321

lien vers toutes les pylint les codes de message


L'ajout par exemple, --disable-ids=C0321 dans la zone arguments ne fonctionne pas. Tous disponibles pylint les messages sont stockés dans le dictionnaire '_messages", un attribut d'une instance de l' pylint.utils.MessagesHandlerMixIn classe. Lors de l'exécution de pylint avec l'argument --disable-ids=... (au moins sans un fichier de config), ce dictionnaire est initialement vide, élever un KeyError exception au sein de pylint (pylint.utils.MessagesHandlerMixIn.check_message_id(). Dans Eclipse, vous pouvez voir ce message d'erreur dans la Pylint Console (windows - afficher affichage de la Console, sélectionnez Pylint console à partir de la console d'options en plus de l'icône de la console.)

116voto

thakis Points 775

Pour désactiver un avertissement localement dans un bloc, ajoutez

 # pylint: disable=C0321
 

à ce bloc.

32voto

aboo Points 49

Vous pouvez également utiliser la commande suivante:

 pylint --disable=C0321  test.py
 

Ma version pylint est 0.25.1.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X