web-dev-qa-db-fra.com

Est-il possible d'ignorer une seule ligne spécifique avec pylint?

J'ai la ligne suivante dans mon en-tête:

import config.logging_settings

Cela change en fait mes paramètres de journalisation python, mais pylint pense qu'il s'agit d'une importation non utilisée. Je ne veux pas supprimer unused-import avertissements en général alors est-il possible d'ignorer cette ligne spécifique?

Cela ne me dérangerait pas d'avoir un .pylintrc pour ce projet, donc les réponses qui changeraient un fichier de configuration seront acceptées.

Sinon, quelque chose comme ceci sera également apprécié:

import config.logging_settings # pylint: disable-this-line-in-some-way
106
The Unfun Cat

Le contrôle des messages Pylint est documenté dans le manuel Pylint :

Est-il possible de désactiver localement un message particulier?

Oui, cette fonctionnalité a été ajoutée dans Pylint 0.11. Cela peut être fait en ajoutant
# pylint: disable=some-message,another-one
au niveau du bloc souhaité ou à la fin de la ligne de code souhaitée

Vous pouvez utiliser le code du message ou les noms symboliques.

Le manuel a aussi n exemple .

Il y a n wiki qui documente tous les messages pylint et leurs codes.

159
jomo
import config.logging_settings # pylint: disable=W0611

C'était simple et spécifique à cette ligne.

Comme le souligne gentiment sthenault, vous pouvez et devriez utiliser le formulaire plus lisible:

import config.logging_settings # pylint: disable=unused-import
42
The Unfun Cat

Je crois que ce que vous cherchez, c'est ...

import config.logging_settings  # @UnusedImport

Notez le double espace avant le commentaire pour éviter de toucher d'autres avertissements de mise en forme.

De plus, en fonction de votre IDE (si vous en utilisez un), il existe probablement une option pour ajouter la règle Ignorer correcte (par exemple, en appuyant sur Eclipse Ctrl1 lorsque le curseur est au-dessus, l'avertissement propose automatiquement @UnusedImport

5
Basic

Vérifiez les fichiers dans https://github.com/PyCQA/pylint/tree/master/pylint/checkers . Je n'ai pas trouvé de meilleur moyen d'obtenir le nom de l'erreur à partir d'un message que ce soit avec Ctrl + F-ing ces fichiers ou en utilisant la fonctionnalité de recherche Github:

Si le message est "Pas de nom ... dans le module ...", utilisez la recherche:

No name %r in module %r repo:PyCQA/pylint/tree/master path:/pylint/checkers

Ou, pour obtenir moins de résultats:

"No name %r in module %r" repo:PyCQA/pylint/tree/master path:/pylint/checkers

Github va vous montrer:

"E0611": (
    "No name %r in module %r",
    "no-name-in-module",
    "Used when a name cannot be found in a module.",

Vous pouvez alors faire:

from collections import Sequence # pylint: disable=no-name-in-module
3
loxaxs