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 elNOQA
texto) le indicarán al verificador que ignore cualquier error en esa línea.fuente
# flake8: noqa
le dirá a flake8 que ignore la validación de todo el archivo.# noqa
solo 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: F841
significa ignorar solo elF841
error 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 pyflakes
comentario). ¡Gracias!assert
declaració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_FAST
yPOP_TOP
para 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_pyflakes
opció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] - 1
se 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 bar
Creé un pequeño script de shell con algo de
awk
magia para ayudarme. Con estoimport typing
, se excluyen todas las líneas con ,from typing import
o#$
(este último es un comentario especial que estoy usando aquí) ($1
es 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