Muchos de nuestros módulos comienzan con:
try:
import json
except ImportError:
from django.utils import simplejson as json # Python 2.4 fallback.
... y es la única advertencia de Pyflakes en todo el archivo:
foo/bar.py:14: redefinition of unused 'json' from line 12
¿Cómo puedo hacer que Pyflakes ignore esto?
(Normalmente iría a leer los documentos, pero el enlace está roto. Si nadie tiene una respuesta, simplemente leeré la fuente).

Respuestas:
Si puede usar flake8 en su lugar, que envuelve los copos de nieve y el verificador pep8, una línea que termina con
# NOQA(en el que el espacio es significativo: 2 espacios entre el final del código y el
#, uno entre este y elNOQAtexto) le indicarán al verificador que ignore cualquier error en esa línea.fuente
# flake8: noqale dirá a flake8 que ignore la validación de todo el archivo.# noqasolo ignora ciertas advertencias / errores, pero no todos: para solucionar esto, una solución consiste en instalar / usar el paquete en pypi.python.org/pypi/flake8-respect-noqa# noqa: F841significa ignorar solo elF841error en la línea.Sé que esto fue cuestionado hace algún tiempo y ya está respondido.
Pero quería agregar lo que suelo usar:
fuente
silence pyflakescomentario). ¡Gracias!assertdeclaración es suficiente para silenciar al corrector en este caso. Buen truco, por cierto.Sí, desafortunadamente dimod.org está abajo junto con todas las golosinas.
Al mirar el código de pyflakes, me parece que pyflakes está diseñado para que sea fácil de usar como un "verificador rápido incrustado".
Para implementar la funcionalidad de ignorar, deberá escribir una propia que llame al verificador de pyflakes.
Aquí puede encontrar una idea: http://djangosnippets.org/snippets/1762/
Tenga en cuenta que el fragmento anterior solo para los lugares de comentarios en la misma línea. Para ignorar un bloque completo, es posible que desee agregar 'pyflakes: ignore' en la cadena de documentos del bloque y en el filtro basado en node.doc.
¡Buena suerte!
Estoy usando Pocket-Lint para todo tipo de análisis de código estático. Estos son los cambios realizados en la pelusa de bolsillo para ignorar los copos de nieve: https://code.launchpad.net/~adiroiban/pocket-lint/907742/+merge/102882
fuente
Para citar el ticket de emisión de github :
fuente
_WritelnDecorator;no hace absolutamente nada, ¿verdad? Entonces, ¿puedo usar esto para hacer que pyflakes ignore las variables no utilizadas que realmente se usan dentro de las cadenas eval o numexpr al enumerar las variables en una línea separada? ¿Es incluso necesario el punto y coma?dis.dis, esto aparentemente hace unLOAD_FASTyPOP_TOPpara cada variable en una línea por sí misma (¿la coloca en la pila y luego la elimina de la pila?), Por lo que no está haciendo nada. Mejor queassert, sin embargo.Aquí hay un parche de mono para pyflakes que agrega una
# bypass_pyflakesopción de comentario.bypass_pyflakes.py
Si guarda esto como
bypass_pyflakes.py, puede invocarlo comopython bypass_pyflakes.py myfile.py.http://chase-seibert.github.com/blog/2013/01/11/bypass_pyflakes.html
fuente
text_lineno = args[0] - 1se cambie atext_lineno = args[0].lineno - 1. Recomiendo actualizar esta respuesta para reflejar esto.También puedes importar con
__import__. No es pitónico, pero pyflakes ya no te advierte. Ver documentación para__import__.fuente
from foo import barCreé un pequeño script de shell con algo de
awkmagia para ayudarme. Con estoimport typing, se excluyen todas las líneas con ,from typing importo#$(este último es un comentario especial que estoy usando aquí) ($1es el nombre del archivo del script Python):Básicamente, anota los números de línea y crea dinámicamente una expresión regular.
fuente