143 votes

Comment puis-je obtenir Pyflakes d'ignorer une déclaration?

Beaucoup de nos modules de démarrage:

try:
    import json
except ImportError:
    from django.utils import simplejson as json  # Python 2.4 fallback.

...et c'est le seul Pyflakes d'alerte dans tout le fichier:

foo/bar.py:14: redefinition of unused 'json' from line 12

Comment puis-je obtenir Pyflakes de l'ignorer?

(Normalement j'irais lire les docs mais le lien est rompu. Si personne n'a la réponse, je vais juste vous lire la source.)

230voto

yrstruly Points 534

Si vous pouvez utiliser flake8 au lieu - qui enveloppe pyflakes ainsi que la pep8 checker - une ligne contenant

# NOQA

(dans laquelle l'espace est importante) indique le vérificateur d'ignorer les erreurs sur la ligne.

55voto

mfussenegger Points 1682

Je sais que cela a été interrogé il y a quelques temps et qui est déjà une réponse.

Mais je voulais ajouter que j'ai l'habitude d'utiliser:

try:
    import json
    assert json  # silence pyflakes
except ImportError:
    from django.utils import simplejson as json  # Python 2.4 fallback.

8voto

Adi Roiban Points 398

Yep, malheureusement dimod.org est ensemble avec tous les goodies.

En regardant les pyflakes code, il me semble que pyflakes est conçu de sorte qu'il sera facile de l'utiliser comme un "embedded rapide checker".

Pour la mise en œuvre de l'ignorer fonctionnalité, vous devez écrire votre propre qui appelle la pyflakes checker.

Ici vous pouvez trouver une idée: http://djangosnippets.org/snippets/1762/

Notez que l'extrait ci-dessus uniquement pour les pour les commentaires des endroits sur la même ligne. Pour ignorer un bloc entier, vous voudrez peut-être ajouter 'pyflakes:ignore' dans le bloc docstring et filtre basé sur node.doc.

Bonne chance!


Je suis à l'aide de pocket-lint pour tous les types d'analyse de code statique. Voici les modifications apportées à pocket-lint pour ignorer pyflakes: https://code.launchpad.net/~adiroiban/pocket-lint/907742/+de fusion/102882

6voto

Daenyth Points 11297

Pour citer le github ticket:

Alors que la solution est encore à venir, c'est comment il peut être contourné, si vous vous demandez:

try:
    from unittest.runner import _WritelnDecorator
    _WritelnDecorator; # workaround for pyflakes issue #13
except ImportError:
    from unittest import _WritelnDecorator

Substitude _unittest et _WritelnDecorator avec les entités (modules, fonctions, classes), vous devez

-- deemoowoor

6voto

Chase Seibert Points 7609

Voici un singe patch pour pyflakes qui ajoute un # bypass_pylakes commentaire option.

#!/usr/bin/env python

from pyflakes.scripts import pyflakes
from pyflakes.checker import Checker


def report_with_bypass(self, messageClass, *args, **kwargs):
    text_lineno = args[0] - 1
    with open(self.filename, 'r') as code:
        if code.readlines()[text_lineno].find('bypass_pyflakes') >= 0:
            return
    self.messages.append(messageClass(self.filename, *args, **kwargs))

# monkey patch checker to support bypass
Checker.report = report_with_bypass

pyflakes.main()

Si vous enregistrez ce que bypass_pyflakes.py, alors vous pouvez l'appeler comme python bypass_pyflakes.py myfile.py.

http://chase-seibert.github.com/blog/2013/01/11/bypass_pyflakes.html

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