Beaucoup de nos modules commencent par:
try:
import json
except ImportError:
from django.utils import simplejson as json # Python 2.4 fallback.
... et c'est le seul avertissement Pyflakes dans tout le fichier:
foo/bar.py:14: redefinition of unused 'json' from line 12
Comment puis-je faire en sorte que Pyflakes ignore cela?
(Normalement, j'irais lire la documentation mais le lien est cassé. Si personne n'a de réponse, je vais simplement lire la source.)
Réponses:
Si vous pouvez utiliser flake8 à la place - qui enveloppe les pyflakes ainsi que le vérificateur pep8 - une ligne se terminant par
# NOQA
(dans lequel l'espace est significatif - 2 espaces entre la fin du code et le
#
, un entre celui-ci et leNOQA
texte) indiquera au vérificateur d'ignorer toute erreur sur cette ligne.la source
# flake8: noqa
indiquera à flake8 d'ignorer la validation pour l'ensemble du fichier.# noqa
ignore uniquement certains avertissements / erreurs, mais pas tous - pour résoudre ce problème, une solution de contournement consiste à installer / utiliser le package à l' adresse pypi.python.org/pypi/flake8-respect-noqa# noqa: F841
signifie ignorer uniquement l'F841
erreur sur la ligne.Je sais que cela a été remis en question il y a quelque temps et qu'on y répond déjà.
Mais je voulais ajouter ce que j'utilise habituellement:
la source
silence pyflakes
commentaire.) Merci!assert
déclaration est suffisante pour faire taire le vérificateur dans ce cas. Belle astuce, au fait.Oui, malheureusement dimod.org est en panne avec tous les goodies.
En regardant le code de pyflakes, il me semble que pyflakes est conçu pour qu'il soit facile de l'utiliser comme un "vérificateur rapide intégré".
Pour implémenter la fonctionnalité Ignorer, vous devrez écrire le vôtre qui appelle le vérificateur pyflakes.
Ici vous pouvez trouver une idée: http://djangosnippets.org/snippets/1762/
Notez que l'extrait ci-dessus uniquement pour les commentaires est placé 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!
J'utilise pocket-lint pour tout type d'analyse de code statique. Voici les modifications apportées à pocket-lint pour ignorer les pyflakes: https://code.launchpad.net/~adiroiban/pocket-lint/907742/+merge/102882
la source
Pour citer le ticket d'émission github :
la source
_WritelnDecorator;
ne fait absolument rien, non? Je peux donc l'utiliser pour que les pyflakes ignorent les variables inutilisées qui sont réellement utilisées dans les chaînes eval ou numexpr en listant les variables sur une ligne séparée? Le point-virgule est-il même nécessaire?dis.dis
, cela fait apparemment unLOAD_FAST
etPOP_TOP
pour chaque variable sur une ligne par lui-même (le met sur la pile puis le supprime de la pile?), Donc ça ne fait rien. Mieux queassert
, cependant.Voici un patch de singe pour pyflakes qui ajoute une
# bypass_pyflakes
option de commentaire.bypass_pyflakes.py
Si vous enregistrez cela sous
bypass_pyflakes.py
, vous pouvez l'invoquer en tant quepython bypass_pyflakes.py myfile.py
.http://chase-seibert.github.com/blog/2013/01/11/bypass_pyflakes.html
la source
text_lineno = args[0] - 1
soit changé entext_lineno = args[0].lineno - 1
. Je recommande de mettre à jour cette réponse pour refléter cela.Vous pouvez également importer avec
__import__
. Ce n'est pas pythonique, mais pyflakes ne vous prévient plus. Consultez la documentation pour__import__
.la source
from foo import bar
J'ai créé un petit script shell avec un peu de
awk
magie pour m'aider. Avec cela, toutes les lignes avecimport typing
,from typing import
ou#$
(ce dernier est un commentaire spécial que j'utilise ici) sont exclues ($1
est le nom de fichier du script Python):Fondamentalement, il note les numéros de ligne et crée dynamiquement une expression régulière.
la source